06 2015 档案
摘要:☆ 应用程序中使用 __attribute__ ((constructor))在main()函数之前被执行,__attribute__ ((destructor))在main()退出时执行。 参考:http://blog.sina.com.cn/s/blog_88b60ea001017bc9.h...
阅读全文
摘要:来自博客 : SDL入门教程(一):1、一切从零开始SDL入门教程(一):2、Visual C++ 下的安装与设置SDL入门教程(一):3、MinGW 下的安装与设置SDL入门教程(二):1、SDL的装载,位标(flags)
阅读全文
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 11 struct mylist_random { 12...
阅读全文
摘要:dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.UDisks /org/freedesktop/UDisks org.freedesktop.UDisks.EnumerateDevicesdbus-...
阅读全文
摘要:linux 2.6.13 开始,devfs不存在,udev取代devfs.udev(mdev)存在应用层,可以实现设备文件的自动创建和删除。过程:驱动代码调用class_create创建一个class,再为每个设备调用class_create创建对应的设备。※ 自动创建设备文件需要udev的支持st...
阅读全文
摘要:Poll 与系统select调用相对应 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)Poll设备方法完成流程...
阅读全文
摘要:为什么阻塞?在阻塞方式下,写没有足够的空间或读时候没有数据。※ 阻塞方式是文件读写的默认方式。没有空间或者读时没有数据返回错误。※残留问题:驱动程序中全局变量 在不同进程间是共享的吗?阻塞型设备驱动程序 驱动代码: 1 #ifndef _MEMDEV_H_ 2 #define _MEMDEV_H_...
阅读全文
摘要:定义和初期化定义等待队列wait_queue_head_t myqueue;初始化等待队列init_waitqueue_head(&myqueue)定义并初始化等待队列DECLARE_WAIT_QUEUE_HEAD(myqueue)睡眠条件睡眠当condition为真时,立即执行;wait_even...
阅读全文
摘要:驱动内容: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 1...
阅读全文
摘要:ioctl控制设备除了读写设备之外,其他功能的实现需要ioctl。如串口的波特率的设定。用户空间:ioctl的应用apiint ioctl(int fd, unsigned long cmd, ...)fd 文件描述符cmd 发送的命令...依赖cmd命令内核空间api int (*ioctl)(...
阅读全文
摘要:并发与竞态处理并发的机制(信号量和自旋锁)信号量1.定义信号量#include struct semaphore sem;2.初始化信号量void sema_init(struct semaphore *sem, int val)val 为非正数 表明有任务等待信号量3.锁int down_inte...
阅读全文
摘要:调试技术打印调试(log)调试器(kgdb)查询调试(proc文件查询)打印调试(log)文件追加PLOG()打印Log#ifdef PDEBUG#define PLOG(fmt,args..) printk(KERNEL_DEBUG"scull:"fmt"",##args)#else#defi...
阅读全文
浙公网安备 33010602011771号