随笔分类 -  Linux驱动

摘要:前言 当课程过长时,把课程分为几小节学习,一小节一结束一练习,可减轻学习难度加快进程。最近总感觉困顿,是因为学而不思则罔,练习太少,知识反复练习犯错而咀嚼太少,知识掌握程度太低。本课TS加大练习量! 目录壹、编程步骤第一步:编写出可以打印“pen down” "pen up"状态的代码; 1.inp 阅读全文
posted @ 2019-01-01 11:07 大秦长剑 阅读(1057) 评论(0) 推荐(0)
摘要:开发环境 主 机:VMWare--Ubuntu-16.04.2-x64-100ask开发板:Mini2440--256M NandFlash, 2M NorFlash, 64M SDRAM, LCD-TD35; bootlorder:u-boot1.16, Kernel:2.6.22.6;编译器:a 阅读全文
posted @ 2018-12-21 20:10 大秦长剑 阅读(876) 评论(0) 推荐(0)
摘要:开发环境主 机:VMWare--Ubuntu-16.04.2-x64-100ask开发板:Mini2440--256M NandFlash, 2M NorFlash, 64M SDRAM, LCD-TD35; bootlorder:u-boot1.16, Kernel:2.6.22.6;编译器:ar 阅读全文
posted @ 2018-12-21 19:54 大秦长剑 阅读(234) 评论(0) 推荐(0)
摘要:目录:一、笔记 1、原字符驱动拆解 2、原按键字符驱动和现输入子系统驱动的区别 3、buttons.c 驱动 二、测试 1、input_keys1.c驱动测试 2、input_keys2.c驱动测试 三、复习 一、笔记1、问题:原本的字符驱动框架被拆分为两部分,在本例的 buttons.c 驱动中, 阅读全文
posted @ 2018-12-10 22:59 大秦长剑 阅读(185) 评论(0) 推荐(0)
摘要:字符设备驱动复习:1、问题:构建用于驱动开发环境的最小根文件系统时,动态链接了C函数库,但是驱动程序用的是内核导出的函数,而测试程序是在服务器编译的,用的是服务器的编译工具和C函数库,所以,最小根文件系统的动态C函数库有什么作用呢?什么时候使用呢? 2、fops结构的成员.release代表的(?) 阅读全文
posted @ 2018-12-07 14:52 大秦长剑 阅读(293) 评论(0) 推荐(0)
摘要:节一、字符设备驱动程序之概念介绍 1、模块(即某单一驱动)是如何构建的?答:构建一个最基本的驱动模块,只需要4函数+1头文件:模块装载函数xx_init(), 模块卸载函数xx_exit(), module_init(), module_exit(), <linux/init.h, module.h 阅读全文
posted @ 2018-11-26 18:15 大秦长剑 阅读(450) 评论(0) 推荐(0)
摘要:链接:https://blog.csdn.net/jidonghui/article/details/7449546 LINUX内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 <linux/timer.h> 和 kernel/timer.c 文件 阅读全文
posted @ 2018-11-21 18:30 大秦长剑 阅读(673) 评论(0) 推荐(0)
摘要:转自:http://blog.csdn.net/xiaocaichonga/article/details/7837567 Ssize_t 与size_t 跟踪linux源码得到以下宏: #ifndef _SIZE_T #define _SIZE_T typedef __kernel_size_t 阅读全文
posted @ 2018-10-31 20:16 大秦长剑 阅读(883) 评论(0) 推荐(0)
摘要:这三个结构体均在文件linux-2.6.22.6>include>linux>fs.h中定义,大部分驱动程序操作都涉及三个重要的内核数据结构,分别是file_operations,file,inode。第一个是文件操作,file_operations结构就是用来连接驱动程序操作连接到我们前面给自己保 阅读全文
posted @ 2018-10-31 15:31 大秦长剑 阅读(4946) 评论(0) 推荐(0)
摘要:第一部分 最近学习到了Linux驱动章节的课程,对设备的对应驱动的注册有些困惑,看了下发现是把设备的所有操作方法封装到结构体 file_operations 中,这个结构体为所有的设备文件都提供了统一的操作函数接口。然后把这个结构体连同设备的主设备号、名字(没啥用)一起,通过函数 register_ 阅读全文
posted @ 2018-10-27 18:24 大秦长剑 阅读(591) 评论(0) 推荐(0)
摘要:时间:2017-01-05作者:华清远见 先看一下代码 ifeq ($(KERNELRELEASE),) KERNELDIR ?= /home/linux/linux-2.6.22.6 PWD := $(shell pwd)modules: $(MAKE) -C $(KERNELDIR) M=$(P 阅读全文
posted @ 2018-10-27 15:56 大秦长剑 阅读(603) 评论(0) 推荐(0)