arm的中断向量表是怎么作用的?请教

[复制链接]
5238|2
 楼主| uuuren 发表于 2008-9-13 10:48 | 显示全部楼层 |阅读模式
请教个有关arm的中断问题,我们知道中断向量表放在从0x00000000开始的地址空间里,中断向量存放的是相应中断服务程序的地址。可在中断控制器的有关内容中有:<br />VICVectCntl0&nbsp;=&nbsp;0x2F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;分配EINT1中断到向量中断0<br />VICVectAddr0&nbsp;=&nbsp;(int)IRQ_Eint1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置中断服务程序地址<br /><br />响应中断时VICVectAddr寄存器将返回VICVectAddr0的内容,即得到中断服务程序的地址,并跳转到地址执行。<br />这整个响应过程跟放在首地址的中断向量表有什么关系啊,好像没关系啊。<br /><br />请教各位,谢谢!
小飞鼠 发表于 2008-9-13 15:26 | 显示全部楼层

这要你对ARM的中断过程的了解了,

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;外部硬件中断是通过IRQ或者FIQ进入ARM内核,系统的中断控制器只是用来把外部多个中断和这两个中断连接起来的。<br />&nbsp;&nbsp;&nbsp;&nbsp;当发生普通的外部中断时,跳入中断入口地址&nbsp;(IRQ:0X18)进行中断处理,处理的首要步骤就是确定中断源地址,就是要查询中断控制器,得到确定的中断源后,通过计算得到真正的中断入口地址。<br />&nbsp;&nbsp;&nbsp;&nbsp;你所提到的问题,那只是设置中断地址而已,但当发生这个中断后,处理器是不会直接跳到那个地址的,必须都通过软件计算程序,才能跳转到那里执行。
 楼主| uuuren 发表于 2008-10-21 17:16 | 显示全部楼层

谢谢,

还是有点不太明白啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

74

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部