做遠程升級時,需要在單片機啟動前運行一個boo程序,在boot程序中跳轉到應用程序,這就涉及到了重新設置中斷向量表
1. STM32標准庫設置中斷向量表:
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0ffset);
2. STM32HAL庫設置中斷向量表:
SCB->VTOR = FLASH_BASE | offset;
重點注意:在重新設置中斷向量表位置時,一定要注意關總中斷,設置完成后,在打開總中斷
/* close interruption*/
__set_FAULTMASK(1);
/* set vector table*/
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0xffset);
/* open interruption*/
__set_FAULTMASK(0);
程序中重定向完向量表地址后,需要在Keil中設置程序的下載位置

