这个世界是由概率学统治的,所以每一个成功的人,都应该心怀疚歉和感恩,致敬和他们一样野心聪明勤奋坚持,却没有得到概率女神青睐的人们。
零、写在前面的话
停更的这段时间,一直在快马加鞭的干毕设论文,初稿最近刚完成,还需要再完善。毕业前的最后一岗,希望自己依然可以站的完美。停更的期间,博客访问量也在下降,不知道能不能实现毕业前100w的愿望了。
在上一节,我们详细学习了《Linux开发中的中断》,这一节我们我们就来实际操练一下!
在实际开发中,对于GPIO按键,我们并不需要去写驱动程序,使用内核自带的驱动程序
drivers/input/keyboard/gpio_keys.c
就可以,实际需要做的只是修改设备树指定引脚及键值。
但是学习还是要从头写按键驱动,特别是如何使用中断。因为中断是引入其他基础知识的前提,后面的内容都离不开中断:休眠-唤醒、 POLL 机制、异步通知、定时器、中断的线程化处理。这些基础知识是更复杂的驱动程序的基础要素,以后的复杂驱动也就是对硬件操作的封装彼此不同,但是用到的基础编程知识是一样的。
一、按键驱动框架
1.1 LED驱动回顾
对于 LED, APP 调用 open 函数导致驱动程序的