1. 程式人生 > >STM32 IAP韌體更新,bootloader起始地址偏移後,程式碼中還需設定中斷向量的偏移。

STM32 IAP韌體更新,bootloader起始地址偏移後,程式碼中還需設定中斷向量的偏移。

在 stm32f10x_flash.icf 中設定ROM的起始結束地址

/*-Specials-*/ define symbol __ICFEDIT_intvec_start__ = 0x08004000; /*-Memory Regions-*/ define symbol __ICFEDIT_region_ROM_start__ = 0x08004000 ;

以上兩行是用於給編譯器看的,用於將程式碼生成可燒錄檔案後,程式碼儲存位置偏移到相應的位置。

程式程式碼中需要執行以下程式碼行:

NVIC_SetVectorTable(NVIC_VectTab_FLASH,NVIC_VECTOR_TABLE_OFFSET);

此行程式碼用於程式中將中斷向量表設定在偏移處,當發生中斷時才可以找到中斷向量處理函式。

所以需要修改巨集 NVIC_VECTOR_TABLE_OFFSET 的值跟上面的偏移地址一致!