关于C8051F040单片机FLASH数据被篡改的问题求助!

2020-01-12 17:20发布


我单位有一款用C8051F040做核心的板子,通过CAN总线驱动A,E两个电机。经常出现某个电机无法驱动的故障,回来重新刷程序就正常了。
过程如下:
1.在实验室测试,加电,板子上报“驱动总线异常”;
2.读取板子F040FLASH上0x0000~0xFFFF数据,存为err.hex文件;
3.重新烧录程序,后板子工作正常。0x0000~0xffff程序存为normal.hex.
4.将err.hex烧录,板子工作又不正常。
5.将normal烧录,板子工作又正常。
6.检查程序中没有对FLASH写操作命令。
问题:
1.为何程序段FLASH被改写?
2.为何改写后其他功能正常,唯独CAN总线不能通信,多次实验都是如此?
3.看F040手册,写明如果从0写1,必须整页清除后再重写,但实际并非如此。
4.为何还会发生数据往后面错一个BYTE的情况?

附件为图 IMG_20190912_110451.jpg (1.5 MB, 下载次数: 0) 下载附件 2019-9-12 12:46 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
lnskngdc
1楼-- · 2020-01-12 17:41
建议看看复位电路的问题
marshallemon
2楼-- · 2020-01-12 18:20
之前看到过有人说C8051有该问题,但一般是电源,复位,C2接口没有处理好所造成
yelong98
3楼-- · 2020-01-12 22:40
 精彩回答 2  元偷偷看……
zhouqw1979
4楼-- · 2020-01-12 23:59
看看每次出错,出错代码是否相同
wye11083
5楼-- · 2020-01-13 00:12
你程序里面应该有写flash,字节出错一般是读写时序不完全对,仔细查代码吧。
kebaojun305
6楼-- · 2020-01-13 05:19
我还遇到过 电机改写过 STM8S003的 flash。

一周热门 更多>