关于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 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
1a2b3c
2020-01-14 07:20
个人认为更多的是设计问题。的确有芯片所谓抗干扰的能力差异,但是如果比如都按照不抗干扰的方式设计电路以及软件,我估计99%的芯片都能寿终正寝。 si的8051十多年前就用在某军火上面,到现在也没有听说过有这样那样的干扰方面的问题,当然只是作为一个例子,并不表示这个ic就一定是很好的玩意。就如2、30年前的单片机一类的,几乎那些国营大单位几乎清一 {MOD}的8051系列芯片,用到航空航天各种场合,也是正确的执行着每条指令。这里的原因有待深思。就如楼上所述的一些基本硬件处理措施还是必要的

一周热门 更多>