TI中文支持网
TI专业的中文技术问题搜集分享网站

AM335x gpio 中断号

我知道了 gpio 口 ,怎么计算这个 io 口对应的中断号 ,例如 gpio(55) 他的中断号是多少??有计算公式吗?

tony2:

一般是建立一个表。bsp里面都搞好了,你用就可以,参考一下别的中断

leo chen:

回复 tony2:

好像没这种对应关系吧,有系统自己完成的

leo chen:

回复 leo chen:

GPIO 引脚号转换为中断号:  irq_num = gpio_to_irq(gpio_pin);设置中断出发方式为下降沿触发    irq_set_irq_type(irq_num, IRQF_TRIGGER_FALLING);申请中断:   request_irq(irq_num, irq_proc, IRQF_DISABLED, GPIO_DEVICE_NAME, NULL);

kooking:

这个应该对你有帮助:

http://processors.wiki.ti.com/index.php/GPIO_Driver_Guide

Yaoming Qin:

这个您可以查看下technical reference manual中的interrupt和GPI那两章,对于每一个gpiobank来说,中断号是一个,而且是固定的,不是可编程的

Yonghui Lin:

linux/arch/arm/mach-omap2/board-am335xevm.c 文件中有计算公式:

先获得GPIO的pin number:

/* Convert GPIO signal to GPIO pin number */#define GPIO_TO_PIN(bank, gpio) (32 * (bank) + (gpio))

然后获得irq中断号:

irq = OMAP_GPIO_IRQ(pin_num)

其中pin_num=GPIO_TO_PIN(bank,gpio),比如GPIO1_7,pin_num=32*1+7=39, irq=160+39=199

leo chen:

回复 Yonghui Lin:

实际操作一下就好了,上面说的还是非常细致的

xiong shaoyi:

你好  我也使用了335x    我使用gpio_to_irq这个函数获取中断号,但是gpio_to_irq在内核里面很多,请问到底是哪个?

有pin_num=GPIO_TO_PIN(bank,gpio) = bank*32+gpio+32

pin_num=GPIO_TO_PIN(bank,gpio) = bank*32+gpio+160

pin_num=GPIO_TO_PIN(bank,gpio) = bank*32+gpio+96

到底哪个正确呢?谢谢

hongzheng liu:

回复 Yaoming Qin:

我想在中断中 给我的应用程序发送数据,让我的应用程序立即响应中断,不知道有没有什么好的建议?

jiew:

回复 hongzheng liu:

你可以透過在中斷中發送訊號通知應用程序,但應該沒辦法立即響應..

中斷發送訊號後,之後回到User Space 還須經過調度演算法,等調度到你的應用程序執行時可能已經經過了30u~40us了

赞(0)
未经允许不得转载:TI中文支持网 » AM335x gpio 中断号
分享到: 更多 (0)