Как включить библиотеки Arduino с помощью AVR-gcc без IDE?
Я пишу свой собственный код для Arduino Uno. Я компилирую свой код с помощью AVR-gcc, а затем загружаю его с помощью AVRdude. Я не использую программное обеспечение Arduino, но оно установлено и работает на моем ПК. Я хочу включить в свой проект некоторые библиотеки Arduino, например Wire.h.
Я понимаю, что могу либо скопировать исходный файл в мой текущий рабочий каталог, либо включить весь путь, например: #include "/usr/share/arduino/libraries/Wire/Wire.h"
но проблема в том, что Wire.h
включает в себя Stream.h
, который включает в себя Print.h
, который включает... вы поняли идею. Эти разные библиотеки также не хранятся в одном месте. Мне пришлось бы искать цепочки файлов, копировать их, а затем использовать локально. Мне это не кажется хорошим вариантом.
Включение их, как обычно при использовании IDE, вообще не работает, что неудивительно.
Итак, как я могу использовать эти библиотеки в своем проекте, не мучаясь поиском их вручную?
@, 👍1
Обсуждение1 ответ
Поскольку в конечном итоге вы будете использовать значительную часть ядра Arduino
библиотеку, самый простой путь — это принять идею, что вы сейчас пишете
«Наброски Arduino», а не простой код C++. Не сопротивляйся, будь
ассимилированы, запустите IDE и напишите setup()
и loop()
. ;-)
Как только у вас что-то заработает, следующим шагом будет избавление от IDE, что, согласитесь, не очень приятно. Несколько способов сделать это:
- Используйте Arduino Builder, инструмент командной строки для сборки Скетчи Ардуино. Внутреннее устройство такое же, как и у Arduino IDE, но работает в командной строке.
- Используйте Makefile, например Arduino-Makefile Судара Муту. Этот это общий Makefile для создания программ Arduino. это не 100% совместим с IDE или Aduino Builder, так как не добавляет функции декларации для вас, но это может подойти вам лучше, если вы привыкли к более стандартный набор инструментов (это просто make + avr-gcc + avrdude).
- avr/io.h ошибка "No such file or directory" при компиляции с использованием avr-gcc
- AVRdude неправильно считывает значения байтов предохранителя
- Чередовать дизассемблирование + исходник с avr-objdump
- неопределенная ссылка на `PPMintIn::PPMintIn(int)'
- программирование ардуино на чистом с
- AVR-GCC не может вызвать функцию, расположенную по фиксированному адресу
- Как создать и загрузить программу на C++ без библиотеки Arduino или IDE?
- avr-gcc -D игнорируется
«ядро» не зависит от IDE https://github.com/arduino/ArduinoCore-avr, @Juraj
Комментарий Юрая остается в силе. Вы можете включить и скомпилировать ядро Arduino AVR, даже не устанавливая и не открывая Arduino IDE. Это просто заголовочные файлы C/C++ и файлы реализации. Просто удалите те, которые вам не нужны, и добавьте их в свой путь включения. Наконец, просто добавьте папку в свою систему сборки в качестве внешней библиотеки и свяжите ее с вашим окончательным исполняемым файлом. Если вы не хотите добавлять весь дополнительный код для печати и потоковой передачи, вам придется изменить или переписать библиотеку Wire самостоятельно., @tttapa
@ Jǝssǝ Вы можете взглянуть на сборку командной строки Cosa (https://github.com/mikaelpatel/Cosa/tree/master/build). Это модификация Arduino-Makefile с несколькими оболочками скриптов для упрощения использования (например, нет необходимости писать make-файлы). Он поддерживает сборку, загрузку, последовательный мониторинг и т. д., @Mikael Patel