IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    techbulo发表于 2015-12-02 23:24:28
    love 0

    前几天在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啊!!!太可怕了,下一节会使用中断的方式重新做这个实验,对比一下效率。



沪ICP备19023445号-2号
友情链接