首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gcc -__attribute__((中断( irq )

gcc -__attribute__((中断( irq )
EN

Stack Overflow用户
提问于 2012-12-09 18:21:50
回答 2查看 7.9K关注 0票数 2

我从arm的设备驱动程序开始...在那里,我看到了提到的每个处理程序- __attribute__((interrupt( irq ))) -.I对此属性如何调用我们的驱动程序例程感到困惑。??

arm的IRQ具有以下矢量地址- 0x00000018 (或0xFFFF0018),因为同一线路上可以有多个中断处理程序。假设我们有4个设备驱动程序,每个驱动程序都有自己的IRQ。

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

EN

回答 2

Stack Overflow用户

发布于 2012-12-09 18:43:16

中断属性的GCC docs

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

您可以很容易地使用objdump来查看此属性如何更改您的二进制文件,这应该会更好地为您阐明情况。

票数 1
EN

Stack Overflow用户

发布于 2012-12-29 17:18:17

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13786605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档