ARM体系结构中的中断服务路由

ARM体系结构中的中断服务路由,arm,isr,Arm,Isr,在arm体系结构中,注册以将ISR地址更新到程序计数器。 在GIC或供应商IC(如Ti、NxP)中,是否存在向程序计数器提供ISR指令地址的硬件逻辑?ARM CPU使用所谓的向量表。它是内存中包含所有异常处理程序(也称ISR)的开始地址的区域 因此,如果向量表从0x08000000开始,并且发生Systick异常,CPU将中断当前工作,并将Systick ISR开始地址加载到程序计数器(PC)中。可以在0x08000000+4*15处找到它(因为Systick有异常编号15) 在加载PC之前,几

在arm体系结构中,注册以将ISR地址更新到程序计数器。 在GIC或供应商IC(如Ti、NxP)中,是否存在向程序计数器提供ISR指令地址的硬件逻辑?

ARM CPU使用所谓的向量表。它是内存中包含所有异常处理程序(也称ISR)的开始地址的区域

因此,如果向量表从0x08000000开始,并且发生Systick异常,CPU将中断当前工作,并将Systick ISR开始地址加载到程序计数器(PC)中。可以在0x08000000+4*15处找到它(因为Systick有异常编号15)

在加载PC之前,几个寄存器(包括PC)保存在堆栈上

向量表的地址通过VTOR寄存器配置

例外情况0到15由ARM体系结构给出,并且对于所有CPU和MCU都是相同的。例外数字16及以上取决于供应商,通常用于硬件相关事件,如UART、SPI、DMA事件