文章目录
1 编译驱动程序
2 编译应用测试程序
3 运行测试

1 编译驱动程序

和前面章节中驱动测试程序一样需要一个Makefile文件,只是将obj-m的值改为key_irq.o,Makefile文件内容如下:

首先我们在终端输入两个命令(设置两个环境变量):

然后执行“make”命令编译模块,编译完成生成key_irq.ko模块文件。

2 编译应用测试程序

输入如下命令编译应用测试程序:

arm-linux-gnueabihf-gcc -o key_irq_test key_irq_test.c

编译完成后,会生成key_irq_test可执行文件。

3 运行测试

启动开发板,将编译好的key_irq.ko模块文件和key_irq_test应用测试程序拷贝到/lib/modules/4.1.15目录下(检查开发板根文件系统中有没有“/lib/modules/4.1.15”这个目录,如果没有的话需要自行创建一下。开发板中使用的是光盘资料里面提供的busybox文件系统,光盘资料的“i.MX6UL终结者光盘资料\08_开发板系统镜像\03_文件系统镜像\01_Busybox文件系统”目录下)。输入下面命令加载模块:

驱动加载成功以后可以通过查看/proc/interrupts 文件来检查一下对应的中断有没有被注册上,输入如下命令:
cat /proc/interrupts
结果如图 3.1所示:

可以看到KEY0 中断已经存在了,触发方式为跳边沿(Edge),中断号为 49。
然后使用应用测试程序测试一下,使用下面的命令:
./key_irq_test /dev/imx6uirq &
“&”表示后台运行。然后按下开发板上的KEY0按键,终端会有信息打印,如图 3.2所示:

按键值获取成功,并且不会有按键抖动导致的误判发生,说明按键消抖工作正常。

在卸载驱动之前需要先关闭key_irq_test应用程序,使用“ps”命令查看key_irq_test进程的PID号,然后使用“kill xxx”杀死key_irq_test进程。

卸载驱动模块文件命令:

rmmod key_irq

迅为i.MX6ULL终结者Linux中断实验运行测试相关推荐

  1. 北京迅为i.mx6ull终结者开发板使用手册+嵌入式Linux开发指南+裸机手册下载地址

    i.MX6ULL终结者三大手册,加速学习和开发速度,一秒化无形! <嵌入式Linux开发指南>+<开发板使用手册>+<裸机使用手册> 详细手册点击链接下载:http ...

  2. Linux 中断实验

    目录 Linux 中断简介 Linux 中断API 函数 上半部与下半部 设备树中断信息节点 获取中断号 硬件原理图分析 实验程序编写 修改设备树文件 按键中断驱动程序编写 编写测试APP 运行测试 ...

  3. 迅为I.MX6ULL终结者开发板支持JTAG调试

    因为有很多小伙伴是从单片机转过来的,对JTAG非常熟悉.想用JTAG来调试裸机代码,而且一直用卡拷贝经常会出现虚拟机连接不上TF卡的情况. I.MX6ULL本身是支持JTAG的,但是由于关于这个资料真 ...

  4. 迅为i.MX6ULL终结者开发板免费获取资料链接

    关注VX公众号:迅为电子 , 回复 :终结者,免费获取产品资料 i.MX6ULL终结者手册下载链接  https://pan.baidu.com/s/171NHz6_sVMGIQ3g7GcCqOQ   ...

  5. i.MX6ULL终结者Linux异步通知实验编写实验程序

    文章目录 1 驱动程序编写 2 应用测试程序 3 运行测试 1 驱动程序编写 本实验例程路径:i.MX6UL终结者光盘资料/06_Linux驱动例程/13_key_signal 驱动程序在key_po ...

  6. i.MX6ULL终结者Linux阻塞和非阻塞IO实验非阻塞IO实验

    文章目录 1 编写驱动程序 2 编写应用测试程序 3 运行测试 1 编写驱动程序 本实验例程路径:i.MX6UL终结者光盘资料/06_Linux驱动例程/12_key_poll 创建key_poll. ...

  7. i.MX6ULL终结者Linux RS232/485驱动实验i.MX6UL UART驱动分析

    文章目录 1 uart的platform驱动框架 2 uart_driver初始化 3 uart_port初始化和注册 4 imx_pops结构体 1 uart的platform驱动框架 首先看一下在 ...

  8. i.MX6ULL终结者Linux 电容触摸屏实验硬件原理图

    在本实验中使用迅为的7寸屏为例,使用的是FT5426触摸芯片. 图 1 从原理图中得知,7寸屏使用I2C2,触摸屏复位引脚为SNVS_TAMPER9,中断引脚为GPIO_9.

  9. i.MX6ULL终结者Linux I2C驱动实验IMX6ULL的I2C总线驱动分析

    在上一节中我们了解了I2C框架分为I2C核心.I2C总线驱动和I2C设备驱动三部分.其中I2C总线驱动就是SOC的I2C控制器驱动,一般来说都是SOC厂家实现好的.而I2C设备驱动是用户根据自己不同的 ...

最新文章

  1. java中的io系统详解(转)
  2. JVM在JDK1.8的变化
  3. linux haproxy 脚本,haproxy部署脚本
  4. vue适配移动端px自动转化为rem
  5. java pdf合并_Java 合并、拆分PDF文档
  6. JS数组 团里添加新成员(向数组增加一个新元素)只需使用下一个未用的索引,任何时刻可以不断向数组增加新元素。myarray[5]=88;...
  7. Atitit 提升开发效率使用内嵌Tomcat 内嵌webserver 于单元测试
  8. 扩展欧几里得算法(求逆元)总结
  9. html5拾色器功能,html5 学习简单的拾色器
  10. Java Files.walk示例
  11. python 爬取《时间的形状》微信公号
  12. PSIFT:Pore Scale-invariant feature transform;毛孔尺度不变特征点
  13. rxjava面试题,android教程零基础入门
  14. MongoDB学习记录10-分片-副本集(mongodb3.2版本以前)
  15. vi 从第几行到第几行 替换_vi命令加行号查找替换等命令
  16. yoyo鹿鸣lumi动态壁纸人工桌面(软件篇)
  17. 计算机网络桂电北海期末题,2078电大《网络信息制作与发布》试题和答案200407...
  18. 盖茨被逐出微软董事会真相曝光:长期跟员工搞地下情,27年婚姻中出轨不断,人设已崩...
  19. 如何给老婆解释什么是微服务?
  20. PYTHON爱心代码

热门文章

  1. 前端React项目部署
  2. 调焦距离S远近与景深之关系
  3. MySQL六大数据类型
  4. 为什么 zookeeper 节点数是奇数
  5. 深入浅出MySQL-学习笔记by CZF
  6. 【蓝桥杯】历届试题 对局匹配(C++)
  7. HTML小游戏12 —— 汽车赛道飙车游戏(附完整源码)
  8. 怎么压缩视频?教你几个把视频压缩变小的操作
  9. 联通雁飞格物云平台,单片机连接MQTT服务器
  10. Nginx面试题(史上最全 + 持续更新)