linux --- 一切皆文件
发布时间:2013-10-14 14:42:45
1:首先input_allocate_device()申请一个input_dev结构体2:struct input_dev{const char *name; 设置input设备的名称unsigned long evbit[BITS_TO_LONGS(EV_CNT)];设置input事件的类型,基于数组bitmap表unsigned long keybit[BITS_TO_LONGS(KEY_CNT)];设置这个类型的行为,基于数组的bitmap表};初始化struct.........【阅读全文】
发布时间:2013-10-13 17:31:20
中断下班部有三种方法实现:1:软中断2:tasklet,tasklet软中断执行的一个链表,是由中断实现的3:workqueue,工作队列是由内核线程实现的总体来说,tasklet的效率比workqueue高,因为tasklet工作的中断上下文,但是不能有睡眠而workqueue则是工作在进程上下文,可以存在睡眠操作。1:软中断 一般不推荐使用需要咋.........【阅读全文】
发布时间:2013-10-13 00:20:41
atomic_t原子操作spinlock_t自旋锁mutex_t互斥量semaphore信号量*临界区(critical region)访问要保护的变量的代码段,称为临界区。临界区中同一时间只能一个人进入。临界区的代码可能分散在不同的函数中。如果要对临界区加锁,则必须保证在临界区的所有部分都加锁。如果有遗漏,则加锁是不可靠的。*同.........【阅读全文】
发布时间:2013-10-12 22:00:08
内核时间:1:tick:1 tick = 1/HZ秒HZ是在make menuconfig里配置的,.config中的CONFIG_HZ,6410设置的是200,其他取值一般为:100,200,250,300,1000,范围是100-10002:相对时间jiffiesjiffies记录着从开机到当前所经过的tick时间,在硬件定时器中断处理函数中对jiffies进行++jiffies是 unsigned long 类型.........【阅读全文】