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

被折叠的 条评论
为什么被折叠?



