【发布时间】:2012-12-09 10:21:49
【问题描述】:
我从 arm 的设备驱动程序开始...我看到每个处理程序都提到 ---__attribute__((interrupt( irq ))) -。我很困惑这个属性将如何调用我们的驱动程序例程 ..??
arm 的 IRQ 有以下向量地址--- 0x00000018 (或 0xFFFF0018) 因为同一行上可以有许多中断处理程序。假设我们有 4 个设备驱动程序,每个设备驱动程序都有自己的 IRQ 需要重新注册。
意味着 GCC 编译器将为 IRQ 处理程序提供一些启动代码,并且编译器将在中断处理程序的启动代码中调用我们的例程.....我说的对吗...?
【问题讨论】:
-
如果您想询问 gcc 是否以某种方式生成代码以自动安装您的中断例程 - 不,不是这种情况。
标签: gcc arm linux-device-driver embedded-linux