经过一些更改,我的 Arduino 草图变得不稳定,它只运行 1-2 小时并崩溃。现在是我试图理解但没有取得明显进展的一个月:主要困难是最轻微的变化使它运行几天显然“正常”......
该程序长约 1500 行
有人可以建议如何进步吗?
在此先感谢您的时间
嗯,嵌入式系统以持续对抗宇宙第四维度:时间而闻名。众所周知,必须在代码中添加一些延迟 - 这并不意味着总是使用系统延迟例程 - 只是操作顺序可能会解决很多问题。调试具有此类问题的系统很困难。可以使用一些技术:
a) 侵入性的:在您的软件的各个地方标记(即使用一些 printf 语句),一些例程或其他重要步骤的进入或退出并再次运行 - 当应用程序崩溃时,您必须注意最后看到的消息并结束崩溃在 printf 标记的那个软件步骤之后。
b) 侵入性较小:使用可用的 GPIO 引脚作为输出,并在某些例程的入口处将其设置为高,在出口处将其设置为低;拐点将使引脚处于高电平或低电平。如果可用,您可以使用多个引脚并使用示波器观察活动。
c) 非侵入式 - 使用 JTAG 或 SWD 调试 - 这是最好的 - 如果你的微支持故障调试,那么你有方法来定位错误。