gcc----属性(中断(irq)))
我从arm的设备驱动程序开始。。。在这里,我看到每个处理程序都提到--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处理程序提供一些启动代码&编译器将在中断处理程序的启动代码中调用我们的例程。。。。。我说的对吗 来自中断属性: 当此属性存在时,编译器
\uuuuu属性(中断(irq))
。我不知道这个属性如何调用我们的驱动程序例程
arm的IRQ有以下向量地址---0x00000018(或0xFFFF0018)
因为同一行上可能有许多中断处理程序。假设我们有4个设备驱动程序,每个驱动程序都有自己的IRQ需要重新发送
意味着GCC编译器将为IRQ处理程序提供一些启动代码&编译器将在中断处理程序的启动代码中调用我们的例程。。。。。我说的对吗 来自中断属性:
当此属性存在时,编译器生成适合在中断处理程序中使用的函数进入和退出序列
您可以使用
objdump
轻松查看该属性如何更改二进制文件,这将更好地说明情况。该属性只能由操作系统的中断处理程序使用,而不能由特定驱动程序的中断处理程序使用。操作系统将读取IRQ向量/编号,并调用相应的驱动程序函数来服务IRQ。您只需要向操作系统注册驱动程序/ISR。如果您想询问gcc是否以某种方式生成代码来自动安装您的中断例程-不,情况并非如此。