摘要: linux应用层的函数默认是阻塞型的,但是要想真正实现阻塞,还需要驱动的支持才行。 例:open()、scanf()、fgets()、read()、accept() 等 1、默认情形,驱动层不实现阻塞和非阻塞 这种情况下,应用层的 read 会一直不停的读按键值,使用 top 指令查看,发现 cpu 阅读全文
posted @ 2017-10-26 14:30 LeeAaron 阅读(1267) 评论(0) 推荐(1) 编辑
摘要: 为什么使用中断下半部? 中断执行的原则是要以最快的速度执行完,而且期间不能延时和休眠! 可是现实中,中断中可能没办法很快的处理完需要做的事,或者必须用到延时和休眠,因此引入了中断下半部。 中断中处理紧急事务,其余的交给中断下半部处理。 怎样将代码合理有效的分配给中断和中断下半部?(以后发现新的再添加 阅读全文
posted @ 2017-10-26 11:05 LeeAaron 阅读(975) 评论(0) 推荐(0) 编辑
摘要: 中断处理程序中不能延时、休眠之类的,一定要最快速、高效的执行完。 // 功能:申请中断 // 参数1:中断号码,通过宏 IRA_EINT(x) 获取 // 参数2:中断的处理函数,填函数名 // 参数3:中断的出发方式(下面的宏在不同内核中是不同的) #define IRQF_TRIGGER_NON 阅读全文
posted @ 2017-10-26 10:14 LeeAaron 阅读(1772) 评论(0) 推荐(0) 编辑