其他分享
首页 > 其他分享> > ARM中断和异常向量表20220911

ARM中断和异常向量表20220911

作者:互联网

1、ARM中的异常与中断总共有7种

按响应优先级从高到低

按中断向量表顺序

复位

复位

数据中止

未定义指令中断

FIQ

SWI

IRQ

预取指令中止

预取指令中止

数据中止异常

未定义指令、SWI

IRQ

 

FIQ

   

   ARM要求中断向量表必须放置在从0地址开始,连续8×4字节的空间内(ARM720T和ARM9、ARM10也支持从0xFFFF0000开始的高地址向量表),各异常和中断向量在向量表中的位置如下:

地址

中断

0x00

Reset

0x04

Undef

0x08

SWI

0x0C

Prefetch Abort

0x10

Data Abort

0x14

(Reserved)

0x18

IRQ

0x2C

FIQ

 

当中断产生时ARM处理器强制把PC指针置为中断向量表中相对应的向量地址。因为每个中断向量在向量表中只有一个字节的存储空间,只能存放一条指令,所以通常存放跳转指令,使程序跳转到存储器的其他地方,再执行中断处理。--这个是处理器硬件完成,软件仅参与开启关闭设置相关。

中断向量表的实现程序通常如下

AREA Boot,CODE,READONLY

ENTRY

B Reset_Handler ; Reset_Handler is a label

B Undef_Handler

B SWI_Handler

B PreAbort_Handler

B DataAbort_Handler

B ;for reserved interrupt, stop here

B IRQ_Handler

B FIQ_Handler
————————————————
版权声明:本文为CSDN博主「hudieping」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hudieping/article/details/5202243

 

      其中的关键字ENTRY是指定编译器保留这段代码,因为编译器可能会认为这段代码是冗余代码,将其优化。链接的时候要确保这段代码被连接到0地址处,并且作为整个程序的入口点(ENTRY并非总是用来设置程序的入口点的,所以通常需要在链接选项里面显式的设置程序入口点)。

标签:SWI,FIQ,中断向量,20220911,Handler,IRQ,ARM,向量
来源: https://www.cnblogs.com/icaowu/p/16683410.html