335x按键中断驱动
来源:互联网 发布:大仲马小仲马知乎 编辑:程序博客网 时间:2024/05/21 20:25
拿到一个新板子玩了段时间,既然点灯大法OK了,那试试按键中断大法咯。
大体上和2440的驱动一致,不过有细微差别:
2440的注册中断函数
request_irq(IRQ_EINT4, buttons_irq, IRQT_BOTHEDGE, "LGF-S2", 99);
335x的注册中断函数
request_irq(gpio_to_irq(32+12),buttons_irq, IRQ_TYPE_LEVEL_LOW,"LGF-S2",99);//注册中断函数GPIO1_12
为什么会导致这样的区别呢,查看内核irqs-33xx.h(来自于TRM Table 6-1. ARM Cortex-A8 Interrupts)中有中断向量,但是发现关于GPIO的中断向量非常少。
猜测:由于335x资源丰富,管脚复用模式很多(0-7),它将模式7的GPIO中断向量单独列出去,所以在注册GPIO中断时需要转化(gpio_to_irq)。
至于gpio_to_irq()下次在做具体分析。
测试:中断被调用了313次。
/root/key_interrupt # cat /proc/interrupts CPU0 4: 0 INTC omap2_elm 12: 162 INTC edma 14: 0 INTC edma_error 16: 0 INTC tsc, tiadc 17: 0 INTC cppi41_dma 18: 0 INTC musb-hdrc.0 19: 1 INTC musb-hdrc.1 36: 41122 INTC da8xx_lcdc 40: 0 INTC cpsw 43: 0 INTC cpsw 64: 538 INTC mmc0 68: 6552 INTC gp timer 70: 31 INTC omap_i2c 72: 680 INTC OMAP UART0 75: 0 INTC rtc0 76: 0 INTC rtc0 77: 0 INTC wkup_m3 78: 1 INTC wkup_m3_txev 93: 0 INTC cpsw 94: 0 INTC cpsw109: 84 INTC omap4-sham166: 0 GPIO mmc0208: 313 GPIO LGF-S2Err: 0
0 0
- 335x按键中断驱动
- 外部中断按键驱动
- fl2440按键中断驱动
- 按键中断驱动实例
- s3c6410中断按键驱动
- s5pc100中断按键驱动
- TQ2440 中断按键驱动
- OK6410 按键中断驱动
- 按键中断驱动
- 按键中断驱动
- 按键中断驱动
- mtk 按键中断驱动
- 中断按键驱动
- 驱动-按键-中断模式
- linux驱动之按键中断
- S3C6410按键驱动--中断方式
- 中断处理(按键驱动)
- tq2440 按键驱动 中断方式
- 细说struts2中一些相关的知识
- Qt在打开XCode命令及环境变量设置
- Objective-C语法之static关键字
- 双系统硬盘安装Centos
- 随机访问文件RandomAccessFile 与 内存映射文件MappedByteBuffer
- 335x按键中断驱动
- Android R.java文件丢失的问题
- leetcode 第20-21题 Valid Parentheses & Generate Parentheses
- SQL MSSQL 常用代码大全
- Snooker 2060
- 22、TCP 报文的格式,字段的意义
- RMI简单实例与Spring集成RMI
- vnc远程连接CentOS6.4
- boost::serialization(1)基础