最近在搞STM32 IAP
引导程序写好了, IAP一个裸机程序 没有任何问题,直接就更新了,
可是换个FreeRTOS的程序就运行不起来,
找了很多原因,终于解决了
说到底,我感觉这应该是编译器的BUG或者FREERTOS 设计时没考虑到这里
IAP的程序 中断向量表会整体偏移
虽然keil中有设置中断向量表的地方,可是使用freertos后 就不行了
最后 解决办法是
给main函数第一句话加上设置中断向量表的地址,就能跳转成功了
int main(void)
{
SCB->VTOR = FLASH_BASE | 偏移地址;
...
}