Questions tagged «compile»

编译就是将草图的代码转换成可上传到Arduino的机器可读文件。该标签主要用于上传到Arduino的文件的空间和占用空间。

2
为什么我不能在Arduino IDE的另一个选项卡中声明一个类?
我想将我的一些代码移到Arduino IDE的第二个选项卡中,以使事情井井有条。刚开始,我只是尝试移动一个函数,它似乎运行良好。我可以从setup()主选项卡中的函数调用该函数,并且编译或上传都没有问题。 但是,我尝试将整个课程放到第二个选项卡中,突然它不再起作用。例如: 标签1: TestClass obj; void setup() { obj.init(); } void loop() { //... } 标签2: class TestClass { public: void init() { //... } }; 当我尝试对此进行编译时,它给了我以下错误: tab1:1: error: 'TestClass' does not name a type tab1.ino: In function 'void setup()': tab1:5: error: 'obj' was not declared in this scope …

5
如何通过Linux命令行进行编译,上传和监视?
在Fedora 21下,可以将Arduino Uno(上传等)与Arduino IDE(使用Fedora软件包)连接。 但是我宁愿使用vim + make + vim-quickfix-mode等。 我怎样才能做到这一点? 最好通过Fedora存储库中可用的工具。 我假设IDE调用外部命令行工具进行上传等。 与IDE的串行监视器等效的可能是将终端仿真器(例如screen)连接到/dev/ttyACM0,对吗? 也许有一个很好的示例项目可以看一下makefile?
19 compile 

2
使用VS代码验证草图时发出警告
我使用Visual Studio Code开发用于arduino的程序,该程序使用Arduino Studio安装的文件并需要安装才能工作。这很好。 令人讨厌的是,在验证草图时,它比Arduino IDE中花费的时间更长。我怀疑出现以下警告: [警告]未指定输出路径。无法重用以前编译的文件。验证可能很慢。请参阅自述文件。 我想摆脱警告,我搜索了arduino安装文件夹中的所有自述文件,还搜索了google,但没有找到它的含义以及如何解决。自述文件中没有提到它,或者我忽略了它。 是否有有关如何在任何地方修复此问题的文档?
17 compile  ide 

1
Arduino IDE #ifdef
我使用Arduino IDE将我的草图上传到Arduino或ATTiny或ATmega328。如您所知,每个设备可以具有不同的引脚排列。Arduino编译器是否支持ifdef,取决于我所连接的电路板? 例如 #ifdef Attiny85 a=0; b=1; c=2; #else // arduino a=9; b=10; c=11; #endif

1
是否有用于内存大小的预处理器常数
我希望我的编译器根据可用的闪存/程序空间排除一些代码。在我支持的库的演示代码中使用。而我当前的解决方案是使用#ifdef处理器类型。但我想更笼统一点,不必指定所有各种芯片。相反,如果有一个预处理程序常量声明可用大小,那将是很好的。 在gcc和avr-gcc不够流利的地方,我可能会期望找到一些类似于定义堆开始和结束的常量。 在案例中。是UNO和Leo都具有32K的Flash。但是Leo的核心库使用4K来支持USB,因此只有28K可用。我的图书馆的演示在UNO上已接近极限,我想根据可用的程序空间自动进行裁剪。

4
为什么草图要占用这么多空间和内存?
当我为Yún编译此草图时: int led = 7; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); } 我得到: Sketch使用了5,098字节(17%)的程序存储空间。 最大为28,672字节。全局变量使用153字节(5%)的动态内存,剩余2407字节用于局部变量。最大为2560字节。 即使当我编译BareMinimum草图时: void setup() { // setup } void loop() { // loop } 我得到: Sketch使用4,548字节(15%)的程序存储空间。 最大为28,672字节。全局变量使用151字节(5%)的动态内存,剩余2409字节用于局部变量。最大为2560字节。 为什么最少的草图要占用分配的程序存储空间的15%?为什么一个非常简单的草图会占据程序存储空间的17%?根据Arduino网站: 通过在程序中包含很多字符串,可以轻松使用所有内容。例如,这样的声明:char message[] = "I support the Cape Wind project.";将33个字节放入SRAM(每个字符占用一个字节,加上'\ 0'终止符)。 但是,在这些草图中都没有声明任何字符串。 似乎它们可能会导入或使用我未指定的其他库/类。也许它会导入系统默认库?或者是别的什么?

2
.ino Arduino Sketch是否可以直接在GCC-AVR上编译?
好的,我们都在网上看到了诸如Arduino vs C ++之类的问题,或者其他类似的问题。除通过抽象信息外,绝大多数答案甚至都不会涉及编译差异。 我的问题旨在解决在将重命名为.cpp文件或c ++的其他类似文件扩展名的.ino文件如何使用GCC-AVR进行编译时的实际差异(而非首选项)。我知道您至少必须包括Arduino头文件,但除此之外,如果使用例如GCC-AVR将.ino编译为.cpp文件,会导致编译错误。为简单起见,让我们使用经典的眨眼示例来说明差异。或者,如果您要使用更好的代码段,请务必在回答中包含该代码段,并彻底解释差异。 请不要就哪种是更好的使用方式或工具发表意见。 仅供参考。我使用Platformio进行开发,并且发现在编译过程中幕后发生了转换过程。我试图了解那里实际发生的情况,因此,当我在Arduino中编写代码时,我也理解“纯” C ++版本。 感谢您提前对我的问题进行周到的回答。

1
将Timer3设置为CTC模式-与伺服库冲突
我想设置一个计时器,以便每秒调用一个函数800次。我正在使用预分频器为1024的Arduino Mega和Timer3。为选择预分频器,我考虑了以下步骤: CPU频率:16MHz 计时器分辨率:65536(16位) 16x10 ^ 6 /:由所选择的预分频CPU频率1024 = 15625 将其余部分除以所需的频率62500/800 = 19。 将结果+1放入OCR3寄存器。 我已使用下表设置TCCR3B的寄存器: 错误 不可能编译代码。这是编译器返回的错误: Servo \ Servo.cpp.o:在功能'__vector_32'中:C:\ Program Files(x86)\ Arduino \ libraries \ Servo / Servo.cpp:110:'__vector_32'AccelPart1_35.cpp.o:C:\的多个定义程序文件(x86)\ Arduino / AccelPart1_35.ino:457:首先在这里定义c:/程序文件(x86)/ arduino / hardware / tools / avr / bin /../ lib / gcc / avr / 4.3.2 /。 …

3
曼彻斯特图书馆不会针对Attiny85进行编译
我正在使用Attiny85创建无线传感器。我想将数据发送到arduino uno,所以我从Spark Fun购买了315mhz rf链接套件。由于Attiny85没有TX,因此我决定使用曼彻斯特库,但是它不会在Attiny85上编译。 我遵循了此博客中的步骤:http : //mchr3k-arduino.blogspot.mx/2012/01/wireless-sensor-node-part-2.html?showComment=1338749638806#c853067277980266192 这是我正在使用的代码: #include <WProgram.h> //otherwise it says it can't find Arduino.h #include <Manchester.h> //include the library to comunicate #define TxPin 2 //the pin that is used to send data int sensorPin = 4; int ledPin = 3; int count = 50; void setup(){ pinMode …

2
AVR-GCC的基本Makefile
我想制作一个用于为arduino编译c程序的makefile。我对make有点熟悉,但从未将其与avr-gcc一起使用。将命令放在makefile中的最简单方法是什么? $ avr-gcc -Os -DF_CPU=16000000UL -mmcu=atmega328p -c -o led.o led.c $ avr-gcc -mmcu=atmega328p led.o -o led $ avr-objcopy -O ihex -R .eeprom led led.hex $ avrdude -F -V -c arduino -p ATMEGA328P -P /dev/ttyACM0 -b 115200 -U flash:w:led.hex
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.