[国产单片机] 请教关于单片机运行异常擦除flash数据的问题

[复制链接]
266|5
手机看帖
扫描二维码
随时随地手机跟帖
xcljlong|  楼主 | 2022-6-14 21:26 | 显示全部楼层 |阅读模式
一个项目采用32F103系列单片机,程序具有远程更新功能,通过串口(此串口同时收发其它采集数据)接收更新程序,执行flash擦写指令,把串口收到的缓存数据写到指定内存地址;
现在存在问题是设备使用环境可能有电磁干扰,造成flash擦写指令把串口缓存的其它采集数据写到了程序更新区域,造成程序损坏,无法正常运行;
请问此种情况有无程序保护的措施?软件层面程序擦写指针都有可能异常跳转;硬件层面增加硬件看门狗是否也有可能单片机定时器异常,造成喂狗失败?

使用特权

评论回复
ayb_ice| | 2022-6-15 10:04 | 显示全部楼层
先接收所有数据,缓存到某个地方(一般是FLASH里),然后检验接收是否完全正确,正确再更新程序

使用特权

评论回复
xcljlong|  楼主 | 2022-6-15 15:43 | 显示全部楼层
ayb_ice 发表于 2022-6-15 10:04
先接收所有数据,缓存到某个地方(一般是FLASH里),然后检验接收是否完全正确,正确再更新程序 ...

如果是指针异常,跳过了判断检验程序,直接对flash进行擦写,前置条件都没有作用。。。

使用特权

评论回复
ayb_ice| | 2022-6-15 15:50 | 显示全部楼层
xcljlong 发表于 2022-6-15 15:43
如果是指针异常,跳过了判断检验程序,直接对flash进行擦写,前置条件都没有作用。。。 ...

一个完整的升级过程需要N多步骤,如果失败只会升级失败,不会造成其它影响,再升级一次就可以了,就像下载一个文件,下载完成后需要检查校验,检验失败再下载一次,这很正常,但不会破坏其它功能

使用特权

评论回复
ayb_ice| | 2022-6-15 15:54 | 显示全部楼层
如果一个程序经跑飞只有两种可能,一是程序逻辑错了,二是强烈干扰,这都需要分开应对,各是各的处理

使用特权

评论回复
吾要单片机| | 2022-6-15 17:59 | 显示全部楼层
看看电源纹波大不大

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则