最近在搞STM32 IAP
引導程序寫好了, IAP一個裸機程序 沒有任何問題,直接就更新了,
可是換個FreeRTOS的程序就運行不起來,
找了很多原因,終於解決了
說到底,我感覺這應該是編譯器的BUG或者FREERTOS 設計時沒考慮到這裏
IAP的程序 中斷向量表會整體偏移
雖然keil中有設置中斷向量表的地方,可是使用freertos後 就不行了
最後 解決辦法是
給main函數第一句話加上設置中斷向量表的地址,就能跳轉成功了
int main(void)
{
SCB->VTOR = FLASH_BASE | 偏移地址;
...
}