常见的问题解决方法在搜索引擎有:
1、boot引脚的未配置正确:
解决:检查电路图和硬件设备
2、时钟初始化函数执行后,但是时钟还没有配置完成,就进行外设的初始化,故导致上电后不运行程序
解决:在时钟初始化函数后添加延时函数
3、我遇到的情况:
原本的项目,貌似保留了IAP升级功能,给bootloader留了空间,使用
SCB->VTOR = FLASH_BASE | 0x8000; /* Vector Table Relocation in Internal FLASH */
对中断向量表进行了重定向
在更换新的mcu(stm32F4更换GD32F4)的时候,在新的链接文件中也对region_ROM_start__添加了偏移量。
但是这就导致我在新的mcu下,程序在jlink仿真中能正常执行,断点后,程序就“消失“一般。(暂时未检查程序是死掉了还是未能正常加载,大概率是未能正常从flash加载吧)
将偏移量删除,程序能正常自flash加载了。
由于目前项目不需要IAP功能,删除也就没什么问题了。
但是确实不太清楚为什么会出现这种情况