ARM 中断的基本过程
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 利用共同定义的中断向量地址表完成挂钩。
tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!