ARM cortex-m3中断向量表重映射

项目开发过程中,有时我们向把中断向量表重映射到RAM中,本文介绍ARM cortex-m3如何将中断向量表重新映射到RAM制定的地址。

1.程序在RAM,中断向量表重映射到RAM

这种情况发生在我们将程序直接下载到RAM中去调试,执行,要想中断得以执行需要将中断向量表基地址修改为RAM中中断向量表的地址。

SCB->VTOR  = SRAM_BASE | VECT_TAB_OFFSET;

注意:中断向量表的地址必须是0x100(256)的整数倍。

2.程序在Flash,中断向量表重映射到RAM

SCB->VTOR  = SRAM_BASE | VECT_TAB_OFFSET;
memcpy(SRAM_BASE | VECT_TAB_OFFSET, 0x08000000, n * 4);

这里的n为该芯片所有的中断向量的个数,可以在startup.s中查看,这里,同样要求,中断向量表的地址必须是0x100(256)的整数倍。

你可能感兴趣的:(MCU,mcu)