上一节字符驱动不足: (1)在注册设备号的时候,我们是指定一个特定的主设备号,如果设备号已经注册了就会出现注册失败的情况。 改善:采用动态注册,让Linux内核自动分配一个未使用的设备号。 (2)每次加载完模块后,必须手动创建设备节点,很麻烦。 改善:注册完设备后,让Linux系统自动在/dev目录 ...
分类:
其他好文 时间:
2016-12-01 01:57:39
阅读次数:
190
llseek:-EINVAL非法(无效)参数当前位置file->f_posSEEK_ENDpcdevp->data_len定义的位置要在你的位置范围内唔怎么处理:最后要做个保存file->f_pos=...怎么驱动LED灯:看原理图,如果想让LED灯亮就收早相应的端口上输出相应的电平如果是led灯别一端接地,那就使其这..
分类:
其他好文 时间:
2016-11-30 18:04:34
阅读次数:
212
Android驱动开发之Hello实例: 驱动部分 modified: kernel/arch/arm/configs/msm8909-1gb_w100_hd720p-perf_defconfig modified: kernel/arch/arm/configs/msm8909-1gb_w100_ ...
分类:
移动开发 时间:
2016-11-30 02:51:10
阅读次数:
407
Open-(“/dev/tcdev”)c2480->调用sys_open->do_sys_open->调用do_file_open->调用的do_last->调用nameidata_to_filp->执行__dentry_open(里面open(inode,f)其中用到了chrdev_open你打开字符类设备节点时那么这个函数就会被调用到->filp->f_op->ope..
分类:
其他好文 时间:
2016-11-29 23:56:23
阅读次数:
401
字符设备(顺序读写,不带缓冲)块设备(读写顺序不固定,带读写缓冲)常用sync命令(强行写入硬件)同步数据使数据真正写进磁盘不然可能还在缓冲区网络设备:这家伙破坏了linux一切皆文件规则。字符设备框架:硬件上有个字符设备,内核中就有个cdev结构与之对应structcdev{str..
分类:
其他好文 时间:
2016-11-28 01:29:42
阅读次数:
254
一、字符设备驱动函数接口 1.初始化cdev结构体void cdev_init(struct cdev * cdev, const struct file_operations * fops)功能:初始化cdev结构体参数:@cdev cdev结构体 @fops 操作函数的结构体 2.申请设备号in ...
分类:
其他好文 时间:
2016-11-27 07:49:59
阅读次数:
200
一、Linux 支持的设备类型 (1) 字符设备 : 每次按字节访问 (2) 块设备 : 每次按块访问(需要文件系统) (3) 网络设备 : 支持网络通信 注意: 字符设备和块设备在/dev/目录有对应的设备文件与他们的驱动程序对应 网络设备在Linux系统中,其驱动程序对应的网络接口(ifconf ...
分类:
系统相关 时间:
2016-11-27 07:23:35
阅读次数:
154
一 模块化编程 1.入口 module_init(xxx_init); 2.出口 module_exit(xxx_exit); 3.头文件#include <linux/init.h>#include <linux/module.h> 4.声明许可MODULE_LICENSE("GPL");MODU ...
分类:
其他好文 时间:
2016-11-25 00:52:49
阅读次数:
218
linux 系统将设备分为三种类型:字符设备、块设备和网络接口设备。 文章将先给出字符设备驱动程序,参照程序记录知识点,可能会不全,以后会慢慢加 。知识点记录完成后,会贴出字符设备驱动程序的测试程序并记录测试过程。 注释版 1 #include "linux/kernel.h" //内核头文件,含有 ...
分类:
系统相关 时间:
2016-11-24 18:21:10
阅读次数:
279
简介 所有的io设备都可以被分为流设备和块设备,块设备指的是把数据打包成块进行传输,传输基本单位为块,传输过程中需要缓冲区(buffer)支持,当然,读写也是以块作为基本单位.对于流设备(也称为字符设备),传输过程是以字节流形式进行的,这样的设备是不需要缓冲机制的. 块和流 区别: 在操作系统和应用 ...
分类:
其他好文 时间:
2016-11-20 13:55:48
阅读次数:
243