主题 : mini2440中断程序的返回 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 36466
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
综合积分: 8 分
注册时间: 2011-01-16
最后登录: 2012-09-15
楼主  发表于: 2011-03-12 18:31

 mini2440中断程序的返回

在认真分析了2440test里的中断部分之后,从外部中断发生跳转到用C语言写的中断处理函数过程比较清楚了,但是在经过
IsrIRQ
...
ldmfd     sp!,{r8-r9,pc}
跳转到处理函数
static void __irq Key_ISR(void)
{...}
之后发现函数里并没有关于返回中断前的代码,请问是怎么返回的呀?
另外,在汇编中调用C之后,C函数执行完不是要回到汇编代码中继续执行吗?"ldmfd     sp!,{r8-r9,pc} "这条指令后面已经没有指令了, static void __irq Key_ISR(void) 执行完之后该返回哪里呀?
是不是跟 函数定义中的 __irq 有关系?
级别: 新手上路
UID: 44652
精华: 0
发帖: 1
金钱: 5 两
威望: 1 点
综合积分: 2 分
注册时间: 2011-04-27
最后登录: 2011-05-26
1楼  发表于: 2011-04-30 00:28