需要帮助调试不稳定的程序

时间:2016-11-06 07:32:54

标签: debugging stability

经过一些更改后,我的Arduino草图变得不稳定,只运行了1-2个小时并且崩溃了。现在是一个月,我试图理解,但没有取得明显的进展:主要的困难是最轻微的变化使它显然在几天内“运行”......

该程序长约1500行

有人可以建议如何进步吗?

提前感谢您的时间

1 个答案:

答案 0 :(得分:0)

嗯,嵌入式系统因为持续对抗宇宙的第四个维度而闻名:时间。众所周知,必须在代码中添加一些延迟 - 这并不意味着总是使用系统延迟例程 - 只是操作顺序可以解决很多问题。 调试具有此类问题的系统很困难。可以使用一些技术:

a)侵入性的:在软件的不同位置标记(即使用一些printf语句),进入或退出某些例程或其他重要步骤并再次运行 - 当应用程序崩溃时,您必须记下最后看到的消息和结论是崩溃发生在printf标记的软件步骤之后。

b)侵入性较小:使用可用的GPIO引脚作为输出,并在某个例程的入口处设置为高电平,在出口处设置为低电平;擦除点会使引脚保持高电平或低电平。如果可用,您可以使用多个引脚,并使用示波器观察活动。

c)非侵入性 - 使用JTAG或SWD调试 - 这是最好的 - 如果你的微支持调试错误,那么你有找到错误的方法。