您的位置 首页 培训

MCU_S3C2410之中止操控

功能分析支持56个中断寄存器分析SRCPNDINTMODINTMSKINTSUBMSKEXTINTEINTPENDINTPND代码分析__irq的使用__irq为一个标识,用来表示一个函数…

功用剖析

支撑56个中止

寄存器剖析

SRCPND

INTMOD

INTMSK

INTSUBMSK

EXTINT

EINTPEND

INTPND

代码剖析

__irq的运用

__irq为一个标识,用来表明一个函数是否为中止函数。关于不同的编译器,__irq在函数名中的方位不相同,例如:
ADS编译器中: void __irq IRQ_Eint0(void);
Keil编译器中: void IRQ_Eint0(void) __irq;
可是其含义相同,它所完结的使命是标识该函数为中止函数,在编译器编译是调用此函数时,先维护函数进口现场,然后履行中止函数,

函数履行结束,康复中止现场,这整个进程不需要用户从头编写代码来完结,由编译器主动完结。因此这也给不具备中止嵌套功用的ARM体系带来

了问题,若运用 __irq 时有中止嵌套发生,这现场维护就会紊乱。在前一篇日志“LPC2000系列中止嵌套处理”中,自己编写中止进口现场维护代

码,并不运用 __irq 标识符号,便是这个原因。
总结如下:
1、若不想自己编写中止进口现场维护代码,并且运用中无中止嵌套,在中止函数顶用 __irq 来标识咱们的中止函数,不然犯错;
2、若程序中要运用中止嵌套,关于无中止嵌套功用的ARM来说,一定要自己编写中止进口现场维护代码,并且不能用 __irq 标识咱们的

中止函数,不然犯错。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/275056.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部