按键驱动的恩恩怨怨之概述

       转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/23946487

       研究按键驱动已经有几天了,虽然是初级的驱动,但是其中包含的知识确实不少。接下来的几篇文章我会分别从浅入深的分析按键驱动。希望能对大家有所帮助。由于屌丝博主也是初学,其中出现错误在所难免,希望大家批评指正。一起交流。

        按键驱动属于字符型设备驱动,至于具体什么是字符型设备驱动和基础知识云云的我就不详细介绍了,大家也可以看我之前写的LED驱动那篇介绍的比较详细一点。

         这里主要说下接下来几篇要将的内容:

          1.按键驱动的恩恩怨怨之查询方式

                     查询法不用多说,当年玩单片机的时候最常用的一种方法。话说当年用的还挺顺手(亲还记得当年那个大while(1)循环吗?),但是当你用查询法写驱动的时候你会发现,资源浪费。CPU资源严重浪费。

          2.按键驱动的恩恩怨怨之中断方式

                      相比于中断方式的按键驱动,要比查询法好的多。因为在CPU没有检测到按键的时候CPU会进入休眠状态(嘛叫休眠?为啥休眠?不休眠行不行?)很多问题将在这节里面解答。

          3.按键驱动的恩恩怨怨之poll方式

                      poll方式又是一种新的方式,他的目的就是一句话:指定时间查询是否有按键,没有就返回。刚接触概念机制又一大堆。没关系这节我们将从内核中寻找答案。

          4.按键驱动的恩恩怨怨之异步通知

                      说起异步通知,简单点的理解就是:以前都是应用程序主动看按键是否按下云云的。。。这回应用程序架子大了。说老子才不去呢。把任务给了驱动。然后驱动发现按键按下,屁颠屁颠的去通知应用程序。

           5.按键驱动的恩恩怨怨之同步互斥阻塞

                       这篇里面涉及的新的概念可能有点多,一时半会可能消化不了,没关系慢慢来。举个例子,当你打开一个文件的时候,还有另一个人要打开文件。并且你没打开完。由于内核是抢占式的,所以将先服务另一个人,然后再服务你。你感觉很不爽。明明老子先要打开的,你凭啥服务后来的那个小子。所以就引出了本篇的原子操作与信号量。本篇还将介绍阻塞操作。

            6.按键驱动的恩恩怨怨之防抖动

                        防抖动这个词,对于玩过单片机的小伙伴们并不陌生。当年第一次写单片机的时候可定会发生这种情况。你明明按下去一次,可是却像是按下去了好多次。当年的解决防抖动的办法就是延时。现在玩嵌入式了也一样。只不过更加高级了。我们用的是定时器延时操作,具体怎么解决详细分析见文章。

             结尾:这个系列和韦东山的第一期视频目录吻合。其中部分也有些参考。本系列还参考了LDD3。和互联网上的其他的一些资料。具体参考我会在结尾进行注明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若云流风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值