2

Atmel 在其网站上表示:

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

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

4

2 回答 2

1

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

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

在 Arduino 草图中,只有setup()loop()是可见的,但它们是从隐藏的main()loop()重复调用)中调用的。

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

于 2016-01-14T18:29:17.717 回答
1

要完成 Danny_ds 答案:

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

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

要了解如何在 Atmel Studio 中导入 Arduino 草图,最好了解 arduino 是什么:

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

让我们弹出堆栈:

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

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

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

此外,除了 Arduino 之外,很可能还有(免费)库来推动这些工作。

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

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

请注意,插入一些现有文件,特别是整个现有目录对于 Studio 来说是一件很痛苦的事情。

于 2016-01-14T20:45:34.417 回答