I2C子系统驱动框架: 应用程序层(app层) ——————————————————————————————————– i2c driver层: 从设备驱动层(TS Sensor等) 1. 需要和应用层交互(fops cdev) 2. 封装数据,但是不知道数据如何写入到硬件,需要调用adapter层 ...
分类:
其他好文 时间:
2017-10-25 16:43:00
阅读次数:
194
drivers/input/input.c: input_init > err = register_chrdev(INPUT_MAJOR, "input", &input_fops); static const struct file_operations input_fops = { .owne ...
分类:
其他好文 时间:
2017-10-12 00:52:57
阅读次数:
205
Linux的输入子系统不仅支持鼠标、键盘等常规的输入设备,而且还支持蜂鸣器、触摸屏等设备 输入子系统又叫input子系统。其构建非常灵活,只需要调用一些简单的函数,就可以将一个输入设备的功能呈现给应用程序 #define EV_SYN 0x00 //表示设备支持所有事件#define EV_KEY ...
分类:
其他好文 时间:
2017-07-16 11:16:40
阅读次数:
262
设备号: 1、自己主动分配 major = register_chrdev(0,"first_drv",&first_sdv_fops);//注冊 注冊设备时给设备号写0,则内核会自己主动分配一个主设备号返回。 2、手动指定 到 proc/devices 文件下查找都有哪些主设备号。假设没有被使用的 ...
分类:
系统相关 时间:
2017-07-05 13:34:03
阅读次数:
264
POLL操作 1、POLL运行过程: poll是一个系统调用,其内核入口函数为sys_poll,sys_poll差点儿不做不论什么处理直接调用do_sys_poll,do_sys_poll的运行过程能够分为三个部分: 1,将用户传入的pollfd数组复制到内核空间,由于拷贝操作和数组长度相关。时间上 ...
分类:
系统相关 时间:
2017-06-28 17:10:16
阅读次数:
240
led驱动 #include <linux/kernel.h>#include <linux/module.h>#include <linux/fs.h>#include <asm/uaccess.h>#include <asm/io.h> static unsigned int led_major ...
分类:
其他好文 时间:
2017-05-31 14:29:22
阅读次数:
232
从開始了解内核開始就一直在疑惑 unsigned long copy_to_user(void __user *to, const void *from, unsigned long n); 这里面的from指针是什么?从用户空间的read到内核空间fops中的read函数过来后,这个值是否经过了转 ...
分类:
其他好文 时间:
2017-05-10 21:19:13
阅读次数:
135
近期工作在调试usb虚拟串口,让其作为kernel启动的调试串口,以及user空间的输入输出控制台。利用这个机会,学习下printk怎样选择往哪个console输出以及user空间下控制台怎样选择。记录与此。与大家共享,也方便自己以后翻阅。Kernel版本号号:3.4.55按照我的思路(还是时间顺序 ...
分类:
系统相关 时间:
2017-04-14 09:32:21
阅读次数:
298
1.字符设备文件 通过字符设备文件,应用程序可以使用相应的字符设备驱动程序来控制字符设备。创建字符设备文件的方法: mknod /dev/文件名 c 主设备号 次设备号 使用函数在驱动程序中创建 2.设备描述结构 字符设备在内核中使用struct cdev来描述。 struct cdev { str ...
分类:
其他好文 时间:
2017-04-04 12:44:21
阅读次数:
358