05 2018 档案
摘要:最近项目中遇到keil中使用sscanf时,采取类正则表达
阅读全文
摘要:linux输入子系统(linux input subsystem)从上到下由三层实现,分别为:输入子系统事件处理层(EventHandler)、输入子系统核心层(InputCore)和输入子系统设备驱动层。 对于输入子系统设备驱动层而言,主要实现对硬件设备的读写访问,中断设置,并把硬件产生的事件转换
阅读全文
摘要:之前我们的按键程序没有考虑抖动的情况。 按键按下的会有尖峰脉冲,常见的两种消抖方式: 第一:硬件消抖 并联一个电容,利用电容的充放电过程消抖。 第二:软件消抖 一般的用法就是一个延时,在不是us、ns必争的的场合,延时个几毫秒(一般5-10ms)再读取按键值就可以消除抖动了。 韦老师的方法是在按键中
阅读全文
摘要:1. 原子操作 原子操作指的是在执行过程中不会被别的代码路径所中断的操作。常用原子操作函数举例:atomic_t v = ATOMIC_INIT(0); //定义原子变量v并初始化为0atomic_read(atomic_t *v); //返回原子变量的值void atomic_inc(atomic
阅读全文
摘要:为了使设备支持异步通知机制,驱动程序中涉及以下 3 项工作:1. 支持 F_SETOWN 命令,能在这个控制命令处理中设置 filp->f_owner 为对应进程 ID。不过此项工作已由内核完成,设备驱动无须处理。2. 支持 F_SETFL 命令的处理,每当 FASYNC 标志改变时,驱动程序中的
阅读全文