Как включить библиотеки 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

Обсуждение

«ядро» не зависит от 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


1 ответ


2

Поскольку в конечном итоге вы будете использовать значительную часть ядра Arduino библиотеку, самый простой путь — это принять идею, что вы сейчас пишете «Наброски Arduino», а не простой код C++. Не сопротивляйся, будь ассимилированы, запустите IDE и напишите setup() и loop(). ;-)

Как только у вас что-то заработает, следующим шагом будет избавление от IDE, что, согласитесь, не очень приятно. Несколько способов сделать это:

  • Используйте Arduino Builder, инструмент командной строки для сборки Скетчи Ардуино. Внутреннее устройство такое же, как и у Arduino IDE, но работает в командной строке.
  • Используйте Makefile, например Arduino-Makefile Судара Муту. Этот это общий Makefile для создания программ Arduino. это не 100% совместим с IDE или Aduino Builder, так как не добавляет функции декларации для вас, но это может подойти вам лучше, если вы привыкли к более стандартный набор инструментов (это просто make + avr-gcc + avrdude).
,