---GD32F103---使用ST库开发IAP运行在GD32上,APP无法正常运行

问题描述:

使用GD103系列,使用GD的bootloader例程和IAP 的USB在线升级工具,对app程序进行升级,app程序使用ST的标准库进行编写,app不加偏移地址时可以正常运行,但是加载偏移地址后,由bootloader进行跳入后程序跑飞或串口打印信息不对
原因:
ST的RCC_CFGR寄存器和RCU_CFG0寄存器有差异,如图5-1,ST的1821位最大倍频系数为9,而且第28位为保留位。GD的1821位最大分频系数为32,而且和第27位有关,GD的从29位起才是保留位,所以配置时要注意其它位的配置。客户使用GD的bootloader例程中系统时钟是96MHZ,即倍频系数为24Mhz,此时会将第27位置1,所以当跳转到app时,app使用的是ST的库,初始化系统时钟的时钟不能将这个位进行清楚,导致了后面的时钟配置倍频系数不是想要的,出现串口打印乱码或程序跑飞的现象;而直接运行app可行,是因为第27位默认为0.
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

解决方案:

首先在进入APP程序时先将第27位进行清0.
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值