gcc----属性(中断(irq)))

gcc----属性(中断(irq))),gcc,arm,linux-device-driver,embedded-linux,Gcc,Arm,Linux Device Driver,Embedded Linux,我从arm的设备驱动程序开始。。。在这里,我看到每个处理程序都提到--\uuuuu属性(中断(irq))。我不知道这个属性如何调用我们的驱动程序例程 arm的IRQ有以下向量地址---0x00000018(或0xFFFF0018) 因为同一行上可能有许多中断处理程序。假设我们有4个设备驱动程序,每个驱动程序都有自己的IRQ需要重新发送 意味着GCC编译器将为IRQ处理程序提供一些启动代码&编译器将在中断处理程序的启动代码中调用我们的例程。。。。。我说的对吗 来自中断属性: 当此属性存在时,编译器

我从arm的设备驱动程序开始。。。在这里,我看到每个处理程序都提到--
\uuuuu属性(中断(irq))
。我不知道这个属性如何调用我们的驱动程序例程

arm的IRQ有以下向量地址---0x00000018(或0xFFFF0018) 因为同一行上可能有许多中断处理程序。假设我们有4个设备驱动程序,每个驱动程序都有自己的IRQ需要重新发送

意味着GCC编译器将为IRQ处理程序提供一些启动代码&编译器将在中断处理程序的启动代码中调用我们的例程。。。。。我说的对吗

来自中断属性:

当此属性存在时,编译器生成适合在中断处理程序中使用的函数进入和退出序列


您可以使用
objdump
轻松查看该属性如何更改二进制文件,这将更好地说明情况。

该属性只能由操作系统的中断处理程序使用,而不能由特定驱动程序的中断处理程序使用。操作系统将读取IRQ向量/编号,并调用相应的驱动程序函数来服务IRQ。您只需要向操作系统注册驱动程序/ISR。

如果您想询问gcc是否以某种方式生成代码来自动安装您的中断例程-不,情况并非如此。