Atmel Studio 7如何编译和调试Arduino代码?

时间:2016-01-14 17:38:35

标签: c++ debugging arduino atmelstudio

Atmel在他们的网站上说:

  

Atmel Studio 7具有无缝一键导入Arduino开发环境中创建的项目的功能。您的草图(包括它引用的任何库)将作为C ++项目导入Studio 7。导入后,您可以利用Studio 7的全部功能来微调和调试您的设计。 Atmel Studio 7完全支持Arduino Zero板上功能强大的嵌入式调试器。对于其他Arduino板,可提供暴露调试连接器的屏蔽适配器,或切换到许多可用的Xplained-Mini / PRO板之一,以充分利用Atmel HW生态系统。无论你选择什么,你一定会做出惊人的事情。

我想知道它是如何工作的?它只是一个插件(visual-micro)意味着我们还需要安装Arduino软件吗?或者他们有自己的编译器和调试器?

2 个答案:

答案 0 :(得分:1)

Arduino代码只是简单的C ++代码(包括一些C ++库)。

不同之处在于,在Arduino IDE中,您看不到所有代码。例如,setup() 隐藏并在幕后编译。

在Arduino草图中,只有loop()main()可见,但这些是从隐藏的loop()(重复调用button.layer.borderColor = UIColor.grayColor().CGColor button.layer.borderWidth = 1 button.layer.cornerRadius = 8 )调用的。

因此,Atmel C ++编译器编译在Arduino IDE中创建的草图应该没有问题,因为它已经是一个完整的C ++项目。

答案 1 :(得分:1)

完成Danny_ds的回答:

Arduino(和8位AVR)的“标准”Atmel编译器现在是avr-gcc,GCC代表GNU编译器集合(因此,这是一个免费的软件工具)。

它是Arduino IDE以及Atmel Studio使用的工具链。请注意,Atmel Studio是可配置的,它可以使用另一个工具链/编译器(有人告诉我它至少存在8个AVR编译器)。

要了解如何在Atmel Studio中导入Arduino sketche,更好地了解arduino是什么:

  • 由Atmega328芯片驱动的“面包板”
  • 一个库(#include <Arduino.h>以前是Program.h IIRC导入的API)
  • 一个IDE,用于执行所有编辑器和“makefile”作业

让我们弹出堆栈:

首先,您可以使用自己的编辑器和makefile清除Arduino IDE。请参阅Arduino Makefile on github以便轻松切换到此。 这样做,您可能需要在草图中添加Arduino.h包含。但是您可以完全控制源树处理。这是我的动机,在早期退出Arduino IDE时,因为到那个时候不可能在同一个草图中使用2个库,Arduino-Makefile允许。

其次,如果您不打算使用Serial类(驱动UART / USB接口与 Duino 进行控制台文本通信),那么就很有可能会删除依赖...我尝试了,我得出结论,重写函数如setMode()digitalRead()和写等等......只是 THE 显而易见:只是用您的代码并排打开PDF数据表并相应地设置位。

ADC转换,定时器/计数器管理,eeprom读/写甚至UART连接驱动都比较棘手,因为它们意味着直接驱动AVR I / O寄存器,并了解您正在与之交互的子系统......但并非不可能!!

此外,除了Arduino之外,很可能有(免费)图书馆可用于推动这些工作。

在此步骤之后,您的源代码树可以在Studio中导入,并且(假设您的编译器仍在GCC上设置,Atmel Studio知道您的依赖项),它将无缝编译。

因此,Atmel Studio只需要在项目中导入Arduino库(并且可能需要手动添加一些包含头文件)以将其编译为本机项目。

注意插入一些现有文件和特定整个现有目录对于Studio来说是一个痛苦的事。