有没有一种方式可以设置源代码级别的断点,在实际硬件上运行代码,并能够检查变量并继续执行?
Visual Micro插件适用于免费的Microsoft Visual Studio 2015社区版,提供了一个针对Arduino的USB调试器。它允许你像你所描述的那样做。(不要忘记在IDE安装期间点击安装C++。)
该调试器支持串口、RF、蓝牙和一些Wi-Fi。它使得变量的值可以在Arduino运行时被监视或更新。图表和数据/引脚可视化以及监视、跟踪、断点等功能都包含在内。
新闻:2016年1月还发布了针对Arduino Zero的GDB调试器版本。与串行/蓝牙调试器一样,GDB版本支持ino/cpp源代码,并且还支持对Arduino核心和库进行调试。它支持许多功能,例如:单步跳过、单步跳出、单步指令或源代码行、内存、寄存器、本地变量、实时表达式和堆栈跟踪。
在Arduino上设置"源代码断点"的方法是添加串行输出,将你想要查看的值发送到串行监视器。
当您准备好后,下一步是转移到WinAVR、AVR Studio以及Atmel JTAG Mark II或Atmel Dragon。
这些程序和设备将允许您创建C代码并逐个步骤地执行代码并监视变量和寄存器。JTAG设备可以单步执行您的C代码或编译器创建的汇编代码。
请注意,高级嵌入式C编程仍与机器非常接近,您必须小心地逐个步骤执行中断例程、定时器例程和其他低级例程,因为很多时候会防止代码正常运行。
我通常将变量打印到串行监视器中以进行检查。这是我目前正在处理的一个示例:
# Setup
Serial.begin(9600);
# Loop
Serial.println(String(index) + " : " + String(total) + " : " + String(average));