有没有办法在将程序烧录到板上之前模拟程序运行?

电器工程 Arduino 软件
2022-01-20 23:32:26

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

3个回答

那里有一些 Arduino 模拟器项目。

也许更成熟的一个是用于 Arduino 的 Virtronics 模拟器这里是 YouTube 视频

Virtronics Arduino 模拟器

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

考虑到 Arduino 引起的兴趣,那里可能会有更多这样的模拟器,所以没有必要在此处将它们全部列出。

值得注意的是,还有一个Arduino Simulator iPhone 应用程序:这不是推荐的,还没有看到它在运行中。


附带说明:

Arduino 本身就是一个原型/实验板。它非常适合对实验代码进行编程、调试、修改然后重新刷新新代码,几乎可以根据自己的喜好进行多次如果代码挂起,请重置并重新刷新任何更改。

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

如果关注 Arduino 的成本,有几个选项可供选择:

  • eBay 上廉价的 Arduino Nano 克隆 - 我有几个Meduino Nano 增强板,它们工作得很好,并且价格低于 10 美元,包括全球运费: Meduino 纳米增强
  • 制作您自己的 Arduino - Arduino 网站将引导您在面包板上制作一个,甚至不需要您焊接任何东西!

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

在此处输入图像描述

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

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

在此处输入图像描述

否则,您的外部代码可能无法像在创建测试代码时牢记实际代码那样对程序进行尽可能好的测试,这可能会使您忽略边界情况或问题区域(在进行白盒测试时观察到这种情况发生是替代方案)。