一、字符设备驱动程序介绍 app里面用 open、read、write等等函数出来操作底层硬件。驱动程序中也有对应的xxx_open等函数。怎么找到驱动程序中的函数依赖于驱动程序框架。 二、搭建驱动程序框架 2.1 初步框架 2.1.1 Makefile 2.1.2 jz2440_led.c 编译: ...
                            
                            
                                分类:
系统相关   时间:
2017-07-03 18:04:48   
                                阅读次数:
275
                             
                    
                        
                            
                            
                                <一>.主设备号和次设备号 对字符设备的訪问时通过文件系统内的设备名称进行的。那些设备名称简单称之为文件系统树的节点,它们通常位于/dev文件夹。字符设备驱动程序的设备文件可通过ls -l命令输出的第一列中的'c'来识别。块设备相同位于/dev下,由字符'b'标识 crw-rw 1 root roo ...
                            
                            
                                分类:
系统相关   时间:
2017-07-01 20:05:51   
                                阅读次数:
356
                             
                    
                        
                            
                            
                                目的:在同一时刻,只有一个应用程序打开/dev/buttons 驱动程序: #include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/de ...
                            
                            
                                分类:
其他好文   时间:
2017-06-25 23:07:00   
                                阅读次数:
292
                             
                    
                        
                            
                            
                                读取按键的方法: (1)查询的方式:极度耗费资源 (2)中断的方式:如果没有按键按下,read函数会一直的等待 (3)poll机制的引入:可以指定超时时间 上述三种方式有一个共同点:应用程序主动的去查询。 问题:有没有一种方式当有按键按下时,驱动程序通知应用程序去读取。这就是本节所说的异步通知,该方 ...
                            
                            
                                分类:
其他好文   时间:
2017-06-25 20:22:48   
                                阅读次数:
282
                             
                    
                        
                            
                            
                                当应用程序调用poll时,会相应的调用内核空间的sys_pollsys_poll do_sys_poll poll_initwait(&table) void poll_initwait(struct poll_wqueues *pwq) init_poll_funcptr(&pwq->pt, __ ...
                            
                            
                                分类:
其他好文   时间:
2017-06-25 16:54:50   
                                阅读次数:
173
                             
                    
                        
                            
                            
                                前段时间在学习linux设备驱动的时候,看了陈学松著的《深入Linux设备驱动程序内核机制》一书。说实话。这是一本非常好的书,作者不但给出了在设备驱动程序开发过程中的所须要的知识点(如对应的函数和数据结构),还深入到linux内核里去分析了这些函数或数据结构的原理。对设备驱动开发的整个过程和原理都分 ...
                            
                            
                                分类:
系统相关   时间:
2017-06-14 19:24:04   
                                阅读次数:
322
                             
                    
                        
                            
                            
                                1.字符设备文件 通过字符设备文件,应用程序可以使用相应的字符设备驱动程序来控制字符设备。创建字符设备文件的方法: mknod /dev/文件名 c 主设备号 次设备号 使用函数在驱动程序中创建 2.设备描述结构 字符设备在内核中使用struct cdev来描述。 struct cdev { str ...
                            
                            
                                分类:
其他好文   时间:
2017-04-04 12:44:21   
                                阅读次数:
358
                             
                    
                        
                            
                            
                                    异步通知: 驱动程序的所谓异步通知,就是说并不是应用程序来对驱动程序操作的,而是驱动程序查询到有事件发生或者有数据发生变化的时候通知应用程序。角色发生了变化,应用程序由主动改为被动执行。 比如按键驱动: 1、有不断进行查询引脚状态的,CPU资源消耗非常的打; 2、有中断操作的,发生按键事件后采取执行 ...
                            
                            
                                分类:
其他好文   时间:
2017-02-16 14:20:25   
                                阅读次数:
181
                             
                    
                        
                            
                            
                                linux 系统将设备分为三种类型:字符设备、块设备和网络接口设备。 文章将先给出字符设备驱动程序,参照程序记录知识点,可能会不全,以后会慢慢加 。知识点记录完成后,会贴出字符设备驱动程序的测试程序并记录测试过程。 注释版 1 #include "linux/kernel.h" //内核头文件,含有 ...
                            
                            
                                分类:
系统相关   时间:
2016-11-24 18:21:10   
                                阅读次数:
279
                             
                    
                        
                            
                            
                                在内核中,dev_t类型用来保存设备编号——包括主设备号和次设备号。内核内部使用struct cdev结构来表示字符设备。 根据设备编号获取主设备号和次设备号: 根据主设备号和次设备号得到设备编号: 分配和释放设备编号: inode数据结构中有类型为dev_t的i_rdev字段,当inode指向的是 ...
                            
                            
                                分类:
其他好文   时间:
2016-11-14 17:39:16   
                                阅读次数:
200