笔者在在单片机系统开发过程中,总会遇到一些比较棘手的问题,比如,当批量生产的产品,概率性出现死机情况,该如何解决。
死机问题,一般出现的问题有很多,软件硬件都有可能。本篇文章,笔者以前的实际项目出发,总结一些解决问题思路与关键点,进行说明。
硬件方面:
抗干扰方面,一般需要考虑静电,可以使用静电枪进行试验,可以使用10台设备,8KV静电 分别多次操作,如果其中有一台出现死机,则可以考虑硬件抗静电部分需要强化,如usb等外部接口,需要在IO口进行防静电的电路,可以参考如下电路,或使用专用保护芯片。
抗辐射方面,如果系统中射频等无线电路,则需要考虑天线对单片机的影响。需要对天线位置,射频电路整个系统,不好的天线会对系统的电源稳定性,以及单片机的晶振有影响,造成单片机死机。
软件方面
1考虑堆栈,编译器默认启动文件中,有堆栈设置的代码,需要调整大小。
2 检查代码,是否有不合理死循环,检查是否有定义的数组溢出,造成程序跑飞。
3 是否有使用内部flash存储,当不合理的flash内存操作时,也会造成死机。
经过批量试产,机器死机问题得到解决。保证产品正常生产。