单片机/MCU论坛
直播中

张鹏

7年用户 1184经验值
私信 关注
[问答]

stm32中断向量地址为什么是放在rom开始地址?

STM32中断向量地址为什么是放在rom开始地址,能不能放其他地址

回帖(1)

王荣

2023-9-20 17:13:52
ST公司重定位向量表的库函数:

void NVIC_SetVectorTable(uint32_t NVIC_VectTab uint32_t Offset){

  assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));

  assert_param(IS_NVIC_OFFSET(Offset));     

  SCB->VTOR = NVIC_VectTab | (Offset   (uint32_t)0x1FFFFF80);

}
运用库函数时,可以在main()函数开头,加上

  NVIC_SetVectorTable(NVIC_VectTab_FLASH0x5000);__ASM("CPSIE  I"); 命令实现地址偏移

NVIC_VectTab_FLASH 和 FLASH_base 都为 0x08000000
举报

更多回帖

发帖
×
20
完善资料,
赚取积分