第18篇:Linux设备驱动程序入门<五>
Q:如何编写内核模块驱动程序响应按键中断,以实现计数器功能?
A:在之前的入门<一>里介绍过设备驱动提供了DE1-SoC硬件设备接口的软件程序,有两种类型设备驱动程序,一是与Linux Kernel一起预编译并分发,另一种是创建为module可以在运行时添加到Kernel。 以下是第二种创建module,用DE1-SoC Computer的KEY并行端口产生的中断,基本结构与Hello World驱动程序类似:添加头文件、定义模块加载和卸载函数、模块代码遵循GPL规范。程序功能实现为KEY产生中断,每按任意KEY一次,LEDR表示的值增加1。
可以查看Using Linux on DE-Series Boards文档的3.4 Device Drivers 这一节了解改内核模块的详细说明。启动DE1-SoC-UP Linux系统,在对应的文件夹目录下执行make命令编译生成模块文件,然后加载模块,可观察到DE1-SoC开发板最左侧的LEDR9常亮,每按一次KEY0~KEY3其中任意一个,LEDR表示的值增加1。