在将程序刻录到板上之前,是否有任何方法可以模拟程序运行?


24

程序有时可能会出现运行时错误。这些有时很难找到,很容易被遗漏。在实际将程序刻录到板上之前,有什么方法可以对其进行测试?




您可能有一个问题,即错误仅在物理Arduino上发生(不过我无法提供示例)。
2013年

@Polar就程序逻辑而言,我无法想象如何。您可以发表任何例子吗?
asheeshr 2013年

Answers:


19

那里有一些Arduino Simulator项目。

也许更成熟的软件之一是用于ArduinoVirtronics Simulator这里是YouTube视频

Virtronics Arduino模拟器

上面链接的Virtronics页面还列出了其他一些Arduino模拟器,包括免费和付费的。

鉴于Arduino引起的兴趣,那里可能会有更多这样的模拟器,因此没有必要在此处列出所有答案。

值得注意的是,还有一个Arduino Simulator iPhone应用程序:这不是推荐,尚未见过。


附带说明:

Arduino本身就是一个原型/实验板。它是编程实验代码,对其进行调试,修改然后重新刷新新代码的理想选择,几乎是一个人喜欢的次数。如果代码挂起,请重置并重新闪烁任何更改。

因此,使用模拟器永远无法完美地模拟各种现实世界中的时序或应用程序可能面临的其他问题的优点值得怀疑。

如果您担心Arduino的成本,则有两个选择可供选择:

  • eBay上廉价的Arduino Nano克隆产品-我有几块Meduino Nano Enhancement板,它们工作出色,价格在10美元以下,包括全球范围的运费: Meduino纳米增强
  • 制作自己的Arduino-Arduino站点指导您在面包板上制作一个,甚至不需要焊接任何东西!

感谢您共享到Virtronics Simulator的链接!
powtac

是的,调试和刷新非常容易。ATMega328闪存的额定重写周期为10000次,因此即使您每天对其进行10次重写,您也有两年以上的乐趣:-)对于业余爱好者而言,这是很多乐趣。如果您只想了解更多信息,则可以使用较新的板子进行调试,当它们开始磨损时(例如经过5000次循环?),您可以将其用于稳定的应用程序,然后购买新的板子进行调试。
洛伦佐·多纳蒂

8

如果您可以在连接Arduino的情况下手动单步执行程序并进行调试(将代码下载至Arduino之后),则可以找到运行时错误。尽管它需要Visual Studio,但在Visual Micro中可用。您可以设置断点,评估变量和更改变量值。您还可以随着时间的推移获得内存的可视化:

在此处输入图片说明


非常整洁。这个项目的成熟程度如何?或者,根据您的经验,这个IDE是否运行顺利?
boardbite 2013年

我没有使用它进行性能分析,只是简要使用了它,但是它集成得很好,并且对我来说运行良好。我非常感谢无需借助Serial.print即可进行调试的功能

4

一种方法是为实际代码创建一个包装程序,该程序根据实际环境模拟所有输入并接受输出(从而创建一个反馈循环)。根据程序的类型,测试的程度和输入的数量,这将花费可变的精力。

请记住,在编写包装程序时,应遵循黑盒 方法。

在此处输入图片说明

否则,你的外码可能无法测试程序,以及尽可能牢记实际的代码,而创建的测试代码可能偏向你忽略边界情况或问题的地方(这已被观察到,而这样做的情况发生白盒测试这是替代方法)。


您知道任何例子吗?我见过的大多数Arduino代码甚至对于不需要输入/输出的部件也缺乏适当的单元测试。
2013年

@Jakob我通常会编写自己的代码进行测试。这对于小型项目是实用的。
asheeshr 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.