ctll080610 发表于 2020-6-23 17:27:49

STM32F429IGT6采用4G联网升级程序,软件重启时丢失BootLoader。

请教各位大神:万分感谢!
背景:单片机STM32F429IGT6,板子上有WIFI模块 和4G模块,可以联网远程升级程序。4G部分和单片机电源是分开的,分别由两个开关电源芯片LM2576供电;且在启动过程中,4G部分电源是关闭,需要单片机运行正常后才会打开;
问题:采用WIFI联网升级时,正常;采用4G联网升级时,升级包下载完成,软件重启准备利用BootLoader完成升级时, 偶尔会出现丢失BootLoader的启动不了的情况,重新下载BootLoader,就能接着利用已经下载好的升级包 完成升级。

已经进行的实验:
1、 开始怀疑时4G干扰,就在升级包下载完成后,软件重启升级前,先关断4G模块的电源几秒,再软件重启。结果还是出现上述现象;
2、怀疑4G电流太大,影响电源,加大供电能、单片机电源加大电容。再软件重启。结果还是出现上述现象;
3、怀疑4G空间辐射影响,两块板,一块用WIFI,一块用4G,用4G这块去影响(贴近)WIFI那块,WIFI那块正常,4G那块还是偶尔不正常;
继续:
现在确定不是软件重启过程中BootLoader坏了,而是在4G通信过程中,BootLoader就坏了。 现在的临时补救措施是,开辟空间备份BootLoader程序,在程序运行过程中,间隔检测BootLoader,如果发现出现问题就重新写入备份的BootLoader程序。

陌路夕颜 发表于 2020-6-23 22:44:45

可能4G电流太大导致单片机出问题,可以尝试给4G模块单独供电,不要与单片机共电源

深山明月 发表于 2020-6-24 07:20:12

还有这种问题,长点见识

ctll080610 发表于 2020-6-24 09:10:20

陌路夕颜 发表于 2020-6-23 22:44
可能4G电流太大导致单片机出问题,可以尝试给4G模块单独供电,不要与单片机共电源 ...

首先非常感谢你的回复;
4G部分和单片机电源是分开的,分别由两个开关电源芯片LM2576供电;且在启动过程中,4G部分电源是关闭,需要单片机运行正常后才会打开;

butterflyspring 发表于 2020-6-29 17:50:34

芯片FLASH存贮单元改变是要很严格的条件的,所以由外部影响到的概率很小很小。 一般做升级程序都会有改写FLASH的功能,为了避免误改写,最简单的办法就是讲BOOTLOADER 部分加上写保护功能。本身升级程序bootloader也是要保证任何条件下不要出错被改动的。
页: [1]
查看完整版本: STM32F429IGT6采用4G联网升级程序,软件重启时丢失BootLoader。