打印
[经验分享]

单片机程序又跑飞?

[复制链接]
楼主: mikewalpole
手机看帖
扫描二维码
随时随地手机跟帖
101
lzmm| | 2025-1-9 20:22 | 只看该作者 回帖奖励 |倒序浏览
接收的数据超过了缓冲区长度,或者数组操作时下标溢出,都可能导致数据被篡改。

使用特权

评论回复
102
alvpeg| | 2025-1-9 22:22 | 只看该作者
时钟配置错误导致系统时钟不稳定。

使用特权

评论回复
103
uiint| | 2025-1-11 17:35 | 只看该作者
减少局部变量的使用量和占用空间。如果局部变量占用的空间过大,可以考虑将其定义为全局变量或者采用动态分配内存的方式。同时,要注意不同函数之间的局部变量布局,避免相互干扰导致堆栈溢出。

使用特权

评论回复
104
流星flash| | 2025-1-11 19:45 | 只看该作者
仔细检查函数中调用的数组是否越界(溢出),以确保数组在其定义内使用。

使用特权

评论回复
105
LLGTR| | 2025-1-13 21:52 | 只看该作者
询问数组时,请确保索引值没有超出数组的边界。

使用特权

评论回复
106
单芯多芯| | 2025-1-14 11:58 | 只看该作者
设计一个健壮的异常处理机制,以确保出错时安全退出或复位。

使用特权

评论回复
107
loutin| | 2025-1-17 14:25 | 只看该作者
中断处理程序(ISR)设计不合理,导致中断处理时间过长或中断嵌套过多。

使用特权

评论回复
108
未来AI| | 2025-1-17 15:27 | 只看该作者
i/o、不正确的端口配置或外部设备故障。,MCU硬件故障。

使用特权

评论回复
109
mattlincoln| | 2025-1-17 15:54 | 只看该作者
内存越界访问、野指针等导致内存损坏。

使用特权

评论回复
110
jkl21| | 2025-1-17 16:08 | 只看该作者
仔细检查数组、指针等的使用情况,避免下标越界。

使用特权

评论回复
111
mnynt121| | 2025-1-17 19:36 | 只看该作者
在设计程序时,要合理控制函数的调用深度,特别是对于递归函数,要确保有正确的递归终止条件。可以通过分析程序的逻辑和功能需求,预估函数调用的最大深度,避免堆栈溢出。

使用特权

评论回复
112
beacherblack| | 2025-1-17 20:08 | 只看该作者
如果程序中开启了中断但没有对应的中断服务程序,当中断发生时,程序可能会跑飞。

使用特权

评论回复
113
fengm| | 2025-1-17 21:30 | 只看该作者
逻辑错误、死循环、无限递归等软件错误。

使用特权

评论回复
114
pl202| | 2025-1-18 21:08 | 只看该作者
堆栈空间不足,导致堆栈溢出。              

使用特权

评论回复
115
updownq| | 2025-1-20 10:49 | 只看该作者
硬件故障,如引脚短路、电源问题等。

使用特权

评论回复
116
usysm| | 2025-1-20 13:25 | 只看该作者
单片机在运行中可能会受到各种电磁干扰,使程序执行出错,导致跑飞。

使用特权

评论回复
117
cemaj| | 2025-1-20 18:36 | 只看该作者
未初始化或野指针可能导致数据被篡改,进而影响程序的正常执行。

使用特权

评论回复
118
pentruman| | 2025-1-20 19:01 | 只看该作者
在堆栈空间较小的单片机上,频繁的中断或函数调用可能导致堆栈溢出,从而改写正常数据。

使用特权

评论回复
119
earlmax| | 2025-1-21 18:36 | 只看该作者
数组越界(数组溢出),函数中定义的数组元素的个数小于程序中实际使用的数组元素的个数

使用特权

评论回复
120
jdqdan| | 2025-2-6 12:32 | 只看该作者
程序总是一边运行一边跑偏。,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则