随笔分类 -  国嵌视频

摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 11 struct mylist_random { 12... 阅读全文
posted @ 2015-06-04 23:23 renhl 阅读(275) 评论(0) 推荐(0)
摘要:linux 2.6.13 开始,devfs不存在,udev取代devfs.udev(mdev)存在应用层,可以实现设备文件的自动创建和删除。过程:驱动代码调用class_create创建一个class,再为每个设备调用class_create创建对应的设备。※ 自动创建设备文件需要udev的支持st... 阅读全文
posted @ 2015-06-04 00:56 renhl 阅读(197) 评论(0) 推荐(0)
摘要:Poll 与系统select调用相对应 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)Poll设备方法完成流程... 阅读全文
posted @ 2015-06-04 00:41 renhl 阅读(239) 评论(0) 推荐(0)
摘要:为什么阻塞?在阻塞方式下,写没有足够的空间或读时候没有数据。※ 阻塞方式是文件读写的默认方式。没有空间或者读时没有数据返回错误。※残留问题:驱动程序中全局变量 在不同进程间是共享的吗?阻塞型设备驱动程序 驱动代码: 1 #ifndef _MEMDEV_H_ 2 #define _MEMDEV_H_... 阅读全文
posted @ 2015-06-03 23:53 renhl 阅读(233) 评论(0) 推荐(0)
摘要:定义和初期化定义等待队列wait_queue_head_t myqueue;初始化等待队列init_waitqueue_head(&myqueue)定义并初始化等待队列DECLARE_WAIT_QUEUE_HEAD(myqueue)睡眠条件睡眠当condition为真时,立即执行;wait_even... 阅读全文
posted @ 2015-06-03 23:14 renhl 阅读(152) 评论(0) 推荐(0)
摘要:驱动内容: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 1... 阅读全文
posted @ 2015-06-03 00:36 renhl 阅读(279) 评论(0) 推荐(0)
摘要:ioctl控制设备除了读写设备之外,其他功能的实现需要ioctl。如串口的波特率的设定。用户空间:ioctl的应用apiint ioctl(int fd, unsigned long cmd, ...)fd 文件描述符cmd 发送的命令...依赖cmd命令内核空间api int (*ioctl)(... 阅读全文
posted @ 2015-06-02 23:46 renhl 阅读(237) 评论(0) 推荐(0)
摘要:并发与竞态处理并发的机制(信号量和自旋锁)信号量1.定义信号量#include struct semaphore sem;2.初始化信号量void sema_init(struct semaphore *sem, int val)val 为非正数 表明有任务等待信号量3.锁int down_inte... 阅读全文
posted @ 2015-06-02 22:42 renhl 阅读(171) 评论(0) 推荐(0)
摘要:调试技术打印调试(log)调试器(kgdb)查询调试(proc文件查询)打印调试(log)文件追加PLOG()打印Log#ifdef PDEBUG#define PLOG(fmt,args..) printk(KERNEL_DEBUG"scull:"fmt"",##args)#else#defi... 阅读全文
posted @ 2015-06-02 22:13 renhl 阅读(132) 评论(0) 推荐(0)