首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Atmel Studio 7如何编译和调试Arduino代码?

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

Stack Overflow用户
提问于 2016-01-14 17:38:34
回答 2查看 4.5K关注 0票数 2

Atmel在其网站上指出:

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

我想知道它是怎么工作的?这仅仅是一个插件(视觉-微),意味着我们仍然需要安装Arduino软件?或者他们有自己的编译器和调试器?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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是什么:

  • Atmega328芯片驱动的“面包板”
  • 库(原名为Program.hIIRC的#include <Arduino.h>导入API)
  • 一个IDE,它完成所有编辑器和"makefile“的工作

让我们打开堆栈:

首先,您可以使用自己的编辑器和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 (或者添加一些头包含,就像我们手工所做的那样),将其编译为一个本机项目。

注意到,插入一些现有的文件,特别是整个现有的目录是一个痛苦的过程。

票数 1
EN

Stack Overflow用户

发布于 2016-01-14 18:29:17

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

区别在于,在Arduino IDE中,没有看到所有的代码。例如,main()是隐藏并在幕后编译的。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34796164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档