移植新mcu时,jlink下载调试时运行正常,断电重新上电后程序丢失

常见的问题解决方法在搜索引擎有:

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功能,删除也就没什么问题了。

但是确实不太清楚为什么会出现这种情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值