微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM中断的基本过程

ARM中断的基本过程

时间:11-11 来源:互联网 点击:
ARM中断基本过程

在IRQ0脚给个上升沿后,过程是这样的(比较通用的过程)。
1)如果你没有打开该中断的使能寄存器,没有任何反应。
2)如果你打开了使能寄存器,但在对应的屏蔽寄存器中屏蔽了该中断,也没有任何反应。
3)上述两个寄存器都设置正确了,中断产生了,CPU保存当前程序运行环境,跳到中断入口,ARM芯片一般是0x?地址处。
4)如果你没有设置中断向量,即0x?处不是你的代码,程序就会飞掉,当然也可能正常运行,这种情况一般发生在正好飞到正常代码处。
5)设置好中断向量了,中断向量一般是个跳转语句,跳到你的正式的中断处理过程,在这里你可以关闭所有中断,清中断,处理等等,然后退出。记住某些处理器一定要清中断,否则下次再给个上升沿就没有反应了。

中断路径

如果是irq中断

产生irq异常中断 转到 0x18 1 跳 中断跳

如果启用向量中断模式

自动转向对应向量地址 每地址对应一条跳转指令 2 跳

跳转到中断处理程序

如果使用汇编编写中断处理程序

在该处即可编写处理程序

如果使用c语言编写中断处理程序

需要添加与c语言接口程序 3 跳

方法:1 汇编编写

在内存空间定义一向量表,用来存放各中断c语言中断处理程序入口地址[即函数入口地址],

在上述程序跳转到处编写 将c语言处理程序入口地址放入pc (即跳转到c函数处)。

2 c编写

在内存空间定义指针表[与汇编向量表对应],用来存放各中断汇编转向c函数入口地址,

编写中断处理函数,将对应中断指针内容放入函数入口地址。

如果不启用中断向量模式

从0x18直接转向中断处理程序即可

小结: 上述1 跳为向量中断模式自动完成,可加快寻找中断源。

2 跳为与c语言相结合,汇编和c利用共同定义的中断向量地址表完成挂钩。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top