f1c100s跳转卡死问题
各位大佬好,我这边碰到一个问题,就是boot跳转会卡死,
具体情况:
boot0跳转到boot1,boot1跳转到app
unsigned int executeAddr=0x81800000;// B00T1程序执行地址 24MB
unsigned int spireadAddr=0x6000;// BOOT1 地址
fw_func = (void(*)(void))(executeAddr);
fw_func();
1、现在经常出现跳转卡死,等到看门狗复位再重启的情况
2、把开关机按键按下不松,会从boot0->boot1->app->关机->boot0这样循环,
但达到一定次数之后,就会出现boot0跳转到boot1卡死,然后看门狗复位重新进boot0,但出现过这种情况之后,就再也不会成功跳转到boot1
请问大家,这个是什么情况?要怎么排查和解决
boot0:
LR_IROM1 0x00000020 0x2000000 { ; load region size_region
ER_IROM1 0x00000020 0x2000000 { ; load address = execution address
*.o (F1C100S_INIT, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_RAM1 +0 { ; RW_RAM1 start address is after ER_ROM1
.ANY (+RW +ZI)
}
}
boot1:
LR_IROM1 0x81800000 0x800000 { ; load region size_region
ER_IROM1 0x81800000 0x800000 { ; load address = execution address
*.o (F1C100S_INIT, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_RAM1 +0 { ; RW_RAM1 start address is after ER_ROM1
.ANY (+RW +ZI)
}
}
离线