深入理解Linux内核编程:GPIO驱动与kobject接口
1. 中断号与GPIO号
在进行内核编程时,需要注意中断号和GPIO号是不同的概念。以按钮为例,其GPIO号为27,但中断号并非27。从相关的中断信息中可以看到数字27,这是因为它与pinctrl - bcm2835模块相关联。同时,这个GPIO号会被导出供GPIO函数使用,当加载的内核模块(LKM)卸载时,GPIO会自动取消导出。以下是查看导出GPIO的命令示例:
pi@erpi /sys/class/gpio $ ls -l gpio*
lrwxrwxrwx 1 root gpio 0 Nov 8 17:21 gpio17 -> ...
lrwxrwxrwx 1 root gpio 0 Nov 8 17:21 gpio27 -> ...
当卸载模块时,内核日志会输出相应信息,例如:
pi@erpi ~/exploringrpi/chp16/gpio $ sudo rmmod gpio_test
pi@erpi ~/exploringrpi/chp16/gpio $ sudo tail /var/log/kern.log
... erpi kernel: [321054.037902] GPIO_TEST: button value is currently: 0
... erpi kernel: [321054.037968] GPIO_TEST: pressed 8 times
... erpi kernel: [321054
超级会员免费看
订阅专栏 解锁全文
1358

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



