jz2440:第二个驱动程序,按键驱动(5)

万事开头难,有了上一篇LED的基础,这次就可以仿照LED的驱动来实现按键驱动。。。可以说是一模一样。。所以写的很简单,有需要可理解上一篇,在来参照代码理解。

【本文默认使用交叉编译:arm-linux-gcc-3.4.5-glibc-2.3.6  和 linux-2.6.22.6内核】

其实思路都是一模一样的:注册dev --> 通过虚拟地址调用物理地址(ioremap)--> 读取按键对应寄存器的值并得到某一位的值-->取消注册。。

代码:https://github.com/zion6135/CPP-study/tree/develop/2.Linux/button

需要实现read,open,init,exit等四个相关的函数

static struct file_operations button_drv_fops = {
    .owner  =   THIS_MODULE,   
    .open   =   button_drv_open,     
	.read	=	button_drv_read,	   
};
module_init(button_drv_init);
module_exit(button_drv_exit);

执行步骤:

  • 执行compile.sh生成button_drv.ko和可执行文件button
  • insmod button_drv.ko
  • button
  • 按下按键可看到相关信息 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值