在嵌入式系统中,经常会用到gpio外部中断来获取外部事件,比如按键、传感器、网络通信等等。一般中断都会绑定一个中断回调函数,来执行产生中断后的一些任务。Linux的中断是操作系统管理的资源,需要在内核层配置中断以及绑定回调函数。
内核编程可以直接修改内核源码,也可以使用Linux提供的模块编程方式。使用模块很方便,编译很快而且可以很方便的插入和移除。当然插入和移除操作需要管理员权限,与模块相关的命令有lsmod、insmod和rmmod。
详细的模块编程的方法网上和书上一大堆,很容易找到。
主要结构
1、init函数
2、exit函数
3、module_init和module_exit
4、作者、版权声明等。
注意:模块的编译需要用到源码,就是安装一个以headers结尾的东西。
![60bcdd65ace06c41ac24ee79303f5f89.png](https://i-blog.csdnimg.cn/blog_migrate/f8f7ba68eec8da09b9203c13bdcc53ff.jpeg)
在/usr/src下会有对应的目录,使用uname -r看看版本是否一致,如果不一样一般是当前系统的要比较旧,可以使用apt-get upgrade升级系统。不同的版本编译的模块不能加载,会提示格式无法识别之类的错误。