Компиляция кода через терминал
Как я могу скомпилировать свой код через терминал? Я работаю над приложением Chrome, которое позволяет вам писать, компилировать и загружать код в Arduino, и мне нужно это знать, чтобы я мог использовать компилятор командной строки на своем сервере Linux. Терминал Mac или Linux, не имеет значения.
@Jordan Baron, 👍2
Обсуждение3 ответа
Посмотрите на platformio.org, это лучшее решение для компиляции из командной строки.
См. мой ответ на связанный вопрос для примера сеанса CLI PlatformIO., @maxschlepzig
Предполагая, что Arduino на основе AVR, вам понадобится компилятор avr-gcc, avr-libc и библиотеки Arduino. Также avrdude, если вы хотите загрузить. Единственная проблема заключается в том, что команды, используемые для процесса сборки, довольно длинный (много вариантов). Вы можете увидеть их, включив подробную компиляцию в IDE. Таким образом, вы, вероятно, захотите каким-то образом автоматизировать всю вещь.
Для этого есть несколько вариантов. Наиболее простым кажется инструмент командной строки arduino-builder. это часть ардуино проекта и должен обеспечивать максимальную совместимость. В противном случае вы могли бы использовать простой старый Makefile. Лично я использую Makefile Sudar Muthu'. Он может быть установленным в дистрибутиве Linux на основе Debian:
sudo apt install arduino-mk
Он не полностью совместим с классическим процессом сборки Arduino.
однако: он действительно автоматически включает <Arduino.h>
в ваш скетч,
но он не добавляет предварительные объявления. Некоторые предпочитают именно так, т.к.
автоматическое включение предварительных объявлений несколько глючит и
не работает с некоторыми функциями C++.
Существует Arduino CLI (интерфейс командной строки):
https://github.com/arduino/arduino-cli
Вы используете такие команды, как для доступа к функциям Arduino IDE:
компиляция arduino-cli --fqbn arduino:avr:скетч leonardo
и
загрузка arduino-cli -pCOM14 --fqbn arduino:avr:скетч Леонардо
(очевидно, в Linux порт будет другим)
- Будет ли .ino-скетч ардуино компилироваться непосредственно на GCC-AVR?
- Установка timer3 в режиме CTC - конфликт с сервобиблиотекой
- неопределенная ссылка на `PPMintIn::PPMintIn(int)'
- Ошибка компиляции с использованием arduino-mk в Arch Linux (неопределенная ссылка на __dso_handle)
- Есть ли константа препроцессора для размера памяти
- avr-gcc -D игнорируется
- Беспричинное создание `Serial`, почему?
- Как компилировать, загружать и контролировать через командную строку Linux?
Я не совсем уверен, что именно вам нужно, но для компиляции в командной строке вам нужно что-то вроде
avr-gcc
., @Kwasmich