MDK 调试默认加载的是MCU的首地址,当APP地址不一样时初始化跳转会失败。
MDK提供了调试时初始化脚本函数,通过配置脚本可以达成自动跳转的目的
脚本语法位于help文件 uVision User‘s Guide/Debugging/Debug Scripting目录下
通过设置Debug选项来调用脚本
脚本示例:
FUNC void Setup (void) {
SP= _RDWORD(0x08000000 + 0x4000);
PC= _RDWORD(0x08000000 + 0x4004);
}
Setup();
0x0800_4000 是APP的起始地址,0x0800_4004 是SP的地址
The _RDWORD debugger function reads the unsigned long integer value at address.
进入调试模式后不运行,查看SP和PC的值和flash的值时一致的代表脚本无误
PC的值最后一位与thumb模式有关