我正在尝试在 uboot 中配置一个 GPIO 中断,这是为了在没有任何操作系统干预(裸机)的情况下测试中断响应时间。我能够配置引脚复用,并成功地使用 GPIO 引脚设置中断。
我的问题是关于中断服务程序的注册。我看到我平台的中断向量表位于地址 0xFFFF0000 (我阅读了系统控制寄存器以找出这一点)。GPIO 的中断 ID 是 56,我刚刚计算了我的中断服务例程应该驻留的地址,并尝试用指向我的 ISR 例程的指针写入地址。这是正确的做法吗?还是我必须自己处理所有其他事情,例如上下文保存等?
注意:我使用的是 ARM Cortex A-9。
编辑 :
根据我浏览代码的答案,我有以下问题。的定义
我的架构(arm v7)的 do_irq 没有做太多,CONFIG_USE_IRQ 对我不起作用,因为没有为我定义像 arch_interrupt_init 这样的函数。所以我可以得出结论,我的架构不支持中断。现在,如果我必须自己定义它,我需要实现哪些功能才能使其正常工作?由于这是我项目的一小部分,我想看看我是否可以做到这一点是否可行。我只想知道这是否需要几行代码或需要一些努力来实现这种中断支持。