从linux了解世界
发布时间:2016-03-03 23:00:42
先来看一个问题抛砖引玉(mini2440开发板,mdk开发工具):int haha=0xdeadbeaf;int main(){ if(haha==0xdeadbeaf) 执行A else .........【阅读全文】
发布时间:2016-01-24 22:21:55
C语言预定义宏:__FUNCTION__当前函数名,__FILE__ 当前文件名,__LINE__当前行号(不考虑执行顺序,只考虑该执行代码在文件中第几行)printf(“filename is%s,functionname is %s,linenumber is %d",__FILE__,__FUNCTION__,__LINE__); Gcc不能主动和c++库链接,gcc–lstdc++就和g++一样了Gcc –E.........【阅读全文】
发布时间:2016-01-20 22:30:31
前几天编写字符设备驱动点亮led的程序中,核心代码只有一个函数register_chrdev(),想理解字符设备驱动的工作流程,只要展开这个函数就可以:static inline int register_chrdev(unsigned int major, const char *name, const struct file_operations *fops) return __registe.........【阅读全文】
发布时间:2016-01-20 12:41:37
在用户空间中用到的poll()函数其实就是起到一个把当前进程睡眠,通过轮询等待唤醒的作用。好处是在用户态就可以让进程睡眠,而不必在写驱动不同函数时在内核态重复的实现进程的挂起和唤醒。 驱动中poll原型:unsigned poll(struct file *file, poll_table *wait) .........【阅读全文】
发布时间:2016-01-14 09:46:57
和字符驱动程序一样,先学习驱动框架,再研究构成框架的这些注册函数在内核是怎么工作的。mini2440的6个按键连接在gpg0,3,5,6,7,11上,中断号是8,11,13,14,15,19共用一个中断eint8-23,在irqs.h中有所有中断号的宏定义。在interrupt.h中有中断触发方式的宏定义。int devid=1;static struct class *seconddrv_class;stat.........【阅读全文】