Atmel在其网站上指出:
Atmel Studio 7提供了在Arduino开发环境中创建的项目的无缝一击导入功能。您的草图(包括它引用的任何库)将作为C++项目导入Studio 7。导入之后,您可以利用Studio 7的全部功能来微调和调试您的设计。Atmel Studio 7完全支持Arduino Zero板上强大的嵌入式调试器。对于其他Arduino板,公开调试连接器的屏蔽适配器是可用的,或者切换到许多可用的Xplained/PRO板之一,以充分利用Atmel HW生态系统。不管你选择什么,你一定会做出令人惊奇的事情。
我想知道它是怎么工作的?这仅仅是一个插件(视觉-微),意味着我们仍然需要安装Arduino软件?或者他们有自己的编译器和调试器?
发布于 2016-01-14 20:45:34
要完成Danny_ds的回答:
Arduino (和8位AVR)的“标准”Atmel编译器是现在的avr-gcc,GCC代表(所以,一个自由软件工具)。
它是Arduino IDE和Atmel Studio使用的工具链。注意Atmel Studio是可配置的,它可以使用另一个工具链/编译器(有人告诉我它至少存在8个AVR编译器)。
要了解如何在Atmel Studio中导入Arduino草图,更好地理解arduino是什么:
#include <Arduino.h>导入API)让我们打开堆栈:
首先,您可以使用自己的编辑器和makefile消除Arduino IDE。请参阅基于github的Arduino Makefile以方便切换到此。为此,您可能必须将Arduino.h包含在您的草图中。但是您可以完全控制源树处理。这就是我的动机,在早期退出Arduino IDE时,因为在同一草图中不可能使用两个库,这是Arduino-Makefile所允许的。
其次,如果您不打算使用Serial类(驱动UART/USB接口与Duino进行控制台文本通信),那么就会有一种消除依赖关系的诱惑.我进行了尝试,并得出结论:重写函数如setMode()、digitalRead()和write等。就是,显而易见:只需与代码并排打开PDF数据表,并相应地设置位。
ADC转换,计时器/计数器管理,eeprom读/写,甚至UART连接驱动,都是比较棘手的,因为它们意味着直接驱动AVR I/O寄存器,并理解您正在与之交互的子系统。但也不是不可能!
此外,除了Arduino之外,更有可能提供(免费)库来驱动这些工作。
在这一步之后,您的源树可以像IT在Studio中一样导入,并且(假设您的编译器仍然设置在GCC上,并且Atmel Studio知道您的依赖项),它将无缝编译。
因此Atmel Studio只需导入项目中的Arduino Library (或者添加一些头包含,就像我们手工所做的那样),将其编译为一个本机项目。
注意到,插入一些现有的文件,特别是整个现有的目录是一个痛苦的过程。
发布于 2016-01-14 18:29:17
Arduino代码只是普通的C++代码(包括一些C++库)。
区别在于,在Arduino IDE中,没有看到所有的代码。例如,main()是隐藏并在幕后编译的。
在Arduino草图中,只有setup()和loop()是可见的,但它们是从隐藏的main() (重复调用loop() )中调用的。
因此,对于Atmel C++编译器来说,编译在Arduino IDE中创建的草图应该没有问题,因为它已经是一个完整的C++项目。
https://stackoverflow.com/questions/34796164
复制相似问题