请问如何添加gpio中断的的callout?

我的网卡中断挂在PD4口上,但是BSP没有级连到中断PIO口上的callout,请问现在要加一个callout_interrupt_gpio,我应该如何做呢?

参照了一个相关的callout_interrupt_mx51_gpio.s,它在/startup/lib/arm里,是不是如果我要加一个我自己修改的callout_interrupt_9263_gpio.s,也放在这个目录里就可以了?那在startup哪些地方作些修改,才能当pio上的中断发生时,调用级连中断呢?请问这个过程是怎么发生的,比如PD4口上的中断来了,是怎么调用到callout的呢?
在帮助文档里看了些关于callout的介绍,可是总还是没懂,能不能详细解释一下,谢谢 :laughing:

手头没有源码,只能按记得的说说。

应该是在startup/board/xxx/ 里,有个初始化中断的函数(init_intr.c?),这个里面有个表,列出了不同的中断号该怎么处理。

当中断发生时,内核会先调用那个 interrupt_id 的 callout,这个callout返回实际的id(或者叫 interrupt level)。

然后,内核用收到的这个id,去中断表里查。然后进行相应处理。

有级连时,应该是在那个id对照表里,有一个id对应了级连中断。这样,当级连中断发生时,interrupt_id 返回级连id,内核会查找并发现这是个级连,然后调用相应的级连中断callout。

我想像你除了写一个自己的callout_interrupt_9263_gpio.s以外,还要改那个中断表,告诉内核哪个id是级连的…