Recentemente, iniciei um novo projeto usando meu Arduino, que está coletando poeira há um tempo. Juntamente com a placa física que coleta poeira, minha cópia do avr-gcc e das bibliotecas do Arduino também. Posso gerenciar a atualização do avr-gcc, mas não me lembro como compilei as bibliotecas do Arduino. Com a fonte do Arduino, há arquivos de origem listados e tal, mas nenhum makefile (que eu possa ver) para realmente criar a biblioteca. Não me importo com a criação do IDE, apenas quero a biblioteca em formato binário e os arquivos de cabeçalho necessários. Existe alguma documentação ou tal para fazer isso?
Não quero usar o Arduino IDE, prefiro usar meu próprio editor de texto e um makefile.
Respostas:
Criei um pequeno projeto com um sistema de compilação personalizado (usando Ruby) que facilita bastante isso sem a necessidade de instalar o Arduino IDE. Basicamente, ele usa um Makefile de modelo e um script ruby para facilitar a compilação das bibliotecas do Arduino. Você pode vê-lo em https://github.com/Earlz/make-wiring
No entanto, estou deixando aqui a resposta antiga para obter informações sobre como criar sua própria. É bastante complicado e irritante:
Instruções:
hardware/arduino/cores/arduino
para um novo diretório que chamarei de arduino_buildpins_arduino.h
arquivo de qualquer variante do Arduinohardware/arduino/variants
(verifique boards.txt se você não tiver certeza) para arduino_build.
E então apenas corra
E então, para fazer uso das bibliotecas compiladas, você pode usar um makefile simples como este:
Além disso, se você tentar compilar as bibliotecas,
libraries/
você receberá um erro de vinculador se não fizer as coisas na ordem certa. Por exemplo, eu tive que fazer isso para usar o SoftwareSerial:O
-larduino
deve ser a última biblioteca na linha de comandoEnfim, essa foi uma maneira muito fácil de compilar para mim. À medida que as versões futuras do Ardunio forem lançadas, esse makefile deve ser bastante à prova de futuro, exigindo apenas algumas modificações no OBJS e no HDRS. Além disso, esse makefile deve funcionar tanto com o BSD make quanto com o GNU make
Veja também uma versão ligeiramente modificada desta resposta no meu blog com um binário já compilado da biblioteca (compilado usando o pins_arduino.h "padrão").
** EDIT **
Descobri que a adição dos seguintes sinalizadores de otimização do compilador ao Makefile de construção da biblioteca e a cada projeto individual do Makefile reduz bastante o tamanho do binário final compilado. Isso torna o tamanho binário final comparável ao do IDE.
.
Portanto, para a biblioteca construa makefile:
e, para cada makefile do projeto:
.
Ref: http://arduino.cc/forum/index.php?topic=153186.0
fonte
Se você deseja usar o Arduino IDE uma vez (ou uma vez por tipo de dispositivo), é a maneira mais fácil de criar uma biblioteca estática, bem como obter as fontes da biblioteca. Depois disso, você pode usar as ferramentas de desenvolvimento que mais lhe convierem.
Este artigo do Arduino (escrito para usuários que estão migrando para o IDE Eclipse) descreve a construção da biblioteca do Arduino, compilando um esboço com o IDE do Arduino e recuperando a biblioteca do diretório temporário do Arduino. Role cerca de 1/4 da página para a seção
fonte
Se você só precisa de um sistema de compilação que também possa pilotar seu programador de microcontroladores, platformio é seu amigo.
fonte