linux字符驱动
Jay丶ke
这个作者很懒,什么都没留下…
展开
-
字符设备驱动程序之异步通知
异步通知: 驱动程序的所谓异步通知,指的是应用程序不是主动对驱动程序进行操作,而是驱动程序查询到有事件发生或者有数据发生变化的时候通知应用程序。角色发生了变化,应用程序由主动改为被动执行。 比如按键驱动: 1、要不断进行查询引脚状态的,CPU资源消耗非常的大; 2、有中断操作的,发生按键事件后采取执行相关事件处理函数,需要应用程序不断执行read函数,使得不能去干其它事情; ...原创 2018-11-25 20:11:45 · 1156 阅读 · 0 评论 -
linux驱动编写之poll机制
linux驱动编写之poll机制 1. poll情景描述: 以按键驱动为例进行说明,用阻塞的方式打开按键驱动文件/dev/buttons, 应用程序使用read()函数来读取按键的键值。这样做的效果是:如果有按键按下 了,调用该read()函数的进程,就成功读取到数据,应用程序得到继续执行;倘 若没有按键按下,则要一直处于休眠状态,等待这有按键按...原创 2018-11-25 21:21:23 · 361 阅读 · 0 评论 -
字符设备驱动程序之定时器防抖动
当按键按得比较快的时候,这里出现了两次中断值,也即产生了抖动。 这里产生了“抖动”,按键是机械开关,按下松开时里面的金属弹片可能抖动了好几次。这种抖动产生了多次“脉冲”导致多次中断。 方法: 使用定时器来防抖动。 定时器有两个概念: ① 超时时间: ② 时间到了之后的“处理函数”。 可以在中断处理中,如定时 10ms 后处理确定按键值上报。 之后再产生中断: 在中断中加定...原创 2018-11-26 09:30:13 · 237 阅读 · 0 评论 -
Linux异常处理结构、中断处理结构
LINUX 的异常向量在哪里:0xffff0000(可通过配置某个寄存器来配置) 1、ARM异常向量表 void __init trap_init(void) //将0x00000000异常向量 复制到 0xffff0000 处 arch/arm/kernel/entry-armv.S .globl __vectors_start __vectors_start...原创 2018-11-27 15:11:38 · 498 阅读 · 0 评论