来源:本站整理 作者:佚名 2024-12-26 09:10:35
6、更换MCU,做ABA验证。
初步故障分析结论:
芯片U1- BAT32G137的P30端口无法维持高电平,导致LIN通讯丢失,外置驱动功能失效。
最终分析:
故障件故障复现后:
1、用仿真器读取芯片P30寄存器,读取值为0,说明目前软件运行的状态就是要输出低电平;
2、程序处于运行状态,输入暂停程序指令,执行单步运行程序,程序卡在015FB8地址;
3、通过程序仿真找到015FB8地址对应的代码,代码为while(1),程序运行在此状态,说明if(user -app==1)条件成立;
4、user -app的值是从SRAM中读取的不定值,目前我们使用的8位长度值(0-255);
5、且if(user -app==1)程序中没有复位程序。
MCU上电后,MCU会给SRAM随机赋值,当赋值为1时软件程序卡滞,造成功能失效。
优化对策版本:
1、SRAM中读取的不定值:将8位长度值改为32为长度值,且值由1改为55AA1234,降低随机出现定义值的概率;
2、在if(user -app==55AA1234)中增加复位程序:当条件偶发成立进入此程序后,可以复位重新给user -app赋值为0。
改善对策:
措施
1、SRAM中读取的不定值:将8位长度值改为32为长度值,且值由1改为55AA1234,降低随机出现定义值的概率;
2、在if(user -app==55AA1234)中增加复位程序:当条件偶发成立进入此程序后,可以复位重新给user -app赋值为0。
上一页 [1] [2]