一、输入子系统 针对输入设备设计:触摸屏、键盘、按键、传感器、鼠标...... 二、每种设备都属于字符设备驱动,程序的写法步骤也相同 1、实现入口函数 xxx_init() 和卸载函数 xxx_exit() 2、申请设备号 register_chrdev() 与内核相关 3、创建设备文件(节点) c ...
分类:
系统相关 时间:
2017-11-02 15:55:49
阅读次数:
261
之前写字符设备驱动,都是使用register_chrdev向内核注册驱动程序中构建的file_operations结构体,之后创建的设备文件,只要是主设备号相同(次设备号不同),则绑定的都是同一个file_operations结构体,应用程序使用的也都是这一个结构体中注册的函数。这就会出现这样的一个 ...
分类:
其他好文 时间:
2017-10-25 18:09:49
阅读次数:
187
Linux系统/proc目录下存放着当前系统运行的各项状态信息,以文件形式保存,例如CPU信息文件cpuinfo,内存信息文件meminfo,磁盘信息文件diskstats。其中diskstats中每一列的含义对照如下:10sda50523528461742121962596252397331380453949818500258855990612239332152888设备号..
分类:
系统相关 时间:
2017-10-25 14:19:48
阅读次数:
460
磁盘设备文件属性中有主设备号和次设备号,主设备号标识设备类型,次设备号标识同一种类型中不同的设备,b开头的是按块为单位,随机访问的设备,c开头的是按字符为单位,线性设备,利用mknod命令可以创建设备文件 硬盘设备在linux中的命令为:#表示a,b,c。。。等等来区别同一种类型下的不同设备IDE, ...
分类:
其他好文 时间:
2017-10-22 21:48:47
阅读次数:
240
.1 杂项设备驱动的引入 字符设备指那些必须以串行顺序依次进行访问,且没有经过系统快速缓冲的设备,了解了Linux内核中驱动的框架和组成,以及编写的步骤等。但是,当我们写的驱动程序多了之后,就会发现:部分硬件并不符合预先定义的字符设备的范畴,而且普通字符设备的主设备号不管是静态分配还是动态分配,都会 ...
分类:
系统相关 时间:
2017-09-27 19:00:15
阅读次数:
215
一.驱动框架 初始化:insmod 加载 1.确定主设备号: 分为静态和动态分配,其中LED_GPIO_SIZE 表示支持的次设备号数目,一般默认为1. 相关实现代码如下: [cpp] view plain copy int result; dev_t dev; /*分配主设备号*/ if (scu ...
分类:
系统相关 时间:
2017-09-20 20:55:13
阅读次数:
234
在上一节中已经将驱动程序框架搭建好了 接下来开始写硬件的操作(控制LED): (1)看原理图,确定引脚 (2)看2440手册 (3)写代码(需要使用ioremap()函数映射虚拟地址,在linux中只能使用虚拟地址) (4)修改上一节的测试程序 (5)使用次设备号来控制设备下不同的灯 1.看led引 ...
分类:
其他好文 时间:
2017-09-11 19:46:40
阅读次数:
202
FHS:Linux /boot:系统启动相关的文件,如内核,initrd,以及grub(bootloader) /dev :设备文件: 块设备:随机访问,数据块 字符设备,线性访问,按字符为单位 设备号:主设备号(major)和次设备号(minor) /etc配置文件 /home家目录 :通常为/h ...
分类:
系统相关 时间:
2017-08-06 19:28:16
阅读次数:
186
对屏幕进行抓屏 cp /dev/fb0 myfile.png 帧缓冲设备的主设备号29,次设备号0-31,也就是dev/fb0 -dev/fb31 填充一个fbinfo结构。用register_framebuffer(fbinfo*)将fbinfo结构注冊到内核,对于fbinfo结构,最基本的是fs ...
分类:
其他好文 时间:
2017-07-22 18:25:59
阅读次数:
111
/boot:系统启动相关的文件,如:内核,initrd,以及grub(bootloader)/dev:设备文件设备文件:块设备:随机访问,数据块字符设备:线性访问,按字符为单位设备号:主设备号(major)和次设备号(minor)/etc:配置文件存放位置/home:用户的家目录,通常默认每一个用户的家目录..
分类:
系统相关 时间:
2017-07-09 19:48:10
阅读次数:
195