做遠程升級時,需要在單片機啟動前運行一個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中設置程序的下載位置