MCU如何查看系统有没有卡死

**前言:**在我们调试单片机的时候,经常会遇到系统非预期运行的状况。造成系统卡死的原因有很多,主要有:野指针,数组越界,死锁,还有一些while写入的一些逻辑错误。本文就如何排查这些问题,来编写此文。

一、单片机卡死如何排查

1.可以在系统调试窗口添加,总的u32类型的数据,如果对应的数据老是循环复位,则认为出现了系统卡死的问题。

2.系统初始化时,用硬件去表示

比如每次系统在刚启动时,亮一会儿绿灯,再亮一会儿黄灯,或者控制继电器,开关等等从物理上去感受有没有发生卡死

二、软件卡死

这种情况相对来说比较难排查,特别是死锁。软件能正常跑,时钟也在跟着继续跳,尤其是多线程操作。

①需要检查你的代码逻辑

1.单一线程里面不要写两个阻塞等待在里面,比如一个事件集等待,再弄一个信号量等待

2.少用while和goto,switch..case尽量少用。

3.良好的数据结构封装,和函数接口定义。

②标准化协议

比如modbus按照协议去写

三、硬件问题

①比如某个模块,需要有一个唤醒的引脚,比如先高电平,后低电平来唤醒模块。

某厂的wifi模块

②LAN模块,在tcp监听的时候,切换收发切换

③其他与收发相关的通信模块

④缓冲区不够,环形数组不够长,http报文,

⑤模块性能问题,发送500,实际接收300字节等问题

结语

单片机调试需要有耐心,pationce is the key of life.

相关推荐
H_oRIZoN_8 小时前
Linux入门DAY44 ARM 入门 Day02|ARM 汇编指令、模式切换、栈操作、汇编 C 混合编程
linux·单片机·嵌入式硬件·arm·linux应用编程
国科安芯10 小时前
卫星电源管理系统中宽温域低功耗MCU的选型与适应性分析
嵌入式硬件·mcu·抗干扰·抗辐射·宽温
老当益壮梁奶奶18 小时前
51单片机DS18B20温度传感器详解:单总线时序与C51驱动实现
笔记·stm32·单片机·嵌入式硬件·51单片机
Horn Still Sounds18 小时前
ARM嵌入式基础|内核、寄存器、架构、存储、汇编移位全面梳理
arm开发·单片机·嵌入式硬件·硬件架构
星栖与芯18 小时前
LiteOS-M 切换汇编逐行图解(2):指令·异常机制·全景表
stm32·单片机·嵌入式硬件·harmonyos·鸿蒙系统
从零开始的嵌入式之旅20 小时前
day44
arm开发·经验分享·笔记·嵌入式硬件
硬禾科技21 小时前
连接世界的工程哲学
嵌入式硬件·测试工具·自动化·硬件工程
深圳市青牛科技实业有限公司 小芋圆1 天前
GC1808:高性能、低成本的立体声音频ADC芯片
人工智能·嵌入式硬件·无人机·太阳能逆变器
fhq_fn_jgd1 天前
51单片机(串口通信)
单片机·嵌入式硬件
深圳市元恩微科技开发有限公司1 天前
兆讯恒达(北京兆讯)MH2457 系列 国产屏驱 MCU
单片机