Список препроцессоров доски Arduino #defines

Когда вы выбираете плату внутри Arduino IDE, в один из заглавных файлов добавляется определение препроцессора.

После многого охоты и некоторой удачи я обнаружил, что формат этого определения:

#define ARDUINO_<PROCESSOR-DESCRIPTOR>_<BOARDNAME>

Некоторые из них легко угадать (например, ARDUINO_AVR_UNO), но другие - менее. У Pro Micro есть «16» или «8», добавленные к определению в зависимости от скорости. Я не знаю, отличается ли определение для 5V или 3.3V. Мне не удалось угадать определение для Mega2560, но это не что-то очевидное.

Вопрос 1 : существует ли список возможных определений?

Вопрос 2 . Существует ли какое-либо различие в отношении компиляции и участия препроцессора между BoardX -5V и BoardX -3.3 V, и как определяется это различие?

9 голосов | спросил CharlieHanson 23 Jpm1000000pmSat, 23 Jan 2016 20:03:42 +030016 2016, 20:03:42

3 ответа


9

Список символов платы может быть сгенерирован этой командой оболочки:

$ grep board= boards.txt | cut -f2 -d= | sort -u
AVR_ADK
AVR_BT
AVR_DUEMILANOVE
AVR_ESPLORA
AVR_ETHERNET
AVR_FIO
AVR_GEMMA
AVR_LEONARDO
AVR_LILYPAD
AVR_LILYPAD_USB
AVR_MEGA
AVR_MEGA2560
AVR_MICRO
AVR_MINI
AVR_NANO
AVR_NG
AVR_PRO
AVR_ROBOT_CONTROL
AVR_ROBOT_MOTOR
AVR_UNO
AVR_YUN

Платы определяются свойством «build.board» в платах .txt .

mini.build.board=AVR_MINI

Это свойство используется при создании рецепта вместе с префиксом ARDUINO_.

-DARDUINO_{build.board} 

Ура!

ответил Mikael Patel 23 Jpm1000000pmSat, 23 Jan 2016 20:40:01 +030016 2016, 20:40:01
3

Первым пустым является платформа . Это «AVR» ​​для AVR, «SAM» для Arduinos на базе SAM и т. Д. Это происходит из каталога платформы, содержащего ядро.

Второй пустым является панель . Это происходит из записи в boards.txt в самом ядре и является идентификатором до первого периода.

Нет никакой разницы между процессами компиляции в отношении напряжений; любая разность скоростей указана в F_CPU, и сама плата не должна быть проверена для этого.

Таким образом, нет окончательного списка, поскольку список имеет произвольный размер из-за его источника.

ответил Ignacio Vazquez-Abrams 23 Jpm1000000pmSat, 23 Jan 2016 20:16:41 +030016 2016, 20:16:41
2

Mikael имеет правильный ответ, но есть несколько файлов boards.txt в зависимости от установленных плат с менеджером платы, изменение команды:

grep board= `find . -name boards.txt` | cut -f2 -d= | sort -u

и запуская его из вашего базового каталога Arduino, собирает весь набор.

ответил bill 24 PMpMon, 24 Apr 2017 13:30:20 +030030Monday 2017, 13:30:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132