现在的位置: 首页 > 技术文章 > 驱动开发 > 正文

Tiny4412 Linux驱动之按键(使用查询方式)

2015年12月03日 驱动开发 ⁄ 共 713字 ⁄ 字号 暂无评论 ⁄ 阅读 328 次

前几天在TIny4412开发板上做了LED点灯的Linux驱动,其实挺简单,GPIO驱动,今天再看一下按键的驱动,毕竟按键用的还是比较广泛的,本文使用查询的方式获取按键值,后面会有文章使用中断的方式进行操作,也算是为了对比一下这两种处理方式的效率。

按键检测的原理在前面裸机部分已经介绍的很详细了,《Tiny4412裸机程序,按键检测(轮询方式)》 ,忘了怎么操作的同学可以再查看一下。

还是一共三个文件,1驱动相关:. key_drv.c  Makefile

2.测试程序 : key_test.c

实验步骤:

驱动和应用程序都编译出来之后,首先加载驱动:

insmod key_drv.ko

按键查询方式

按键查询方式

如上图所示,加载完驱动之后,按键节点已经自动创建出来了,使用cat /pros/devices命令查看,按键设备已经有了。

下面开始测试;

输入 ./key_test

测试按键

测试按键

看到了吧,我按下了第一个按键,按键已经能检测了,但是有一个问题,用这种方式效率太低了,大家看一个图:

CPU使用率

CPU使用率

CPU使用率达到了25!!!!4412是4核的处理器,那就是整整占用了一个CPU啊!!!太可怕了,下一节会使用中断的方式重新做这个实验,对比一下效率。

给我留言

留言无头像?



×