начало программирования платы Arduino на языке C/embedded c

Я хочу отойти от Arduino IDE и начать работать напрямую с avrdude. Может ли кто-нибудь подсказать мне ресурсы и советы по началу и продвижению вперед с использованием C/embedded C для доступа к большему функционалу. Буду признателен за помощь.

, 👍1


1 ответ


2

Это не исчерпывающий ответ, но одним из шагов было бы понимание того, что Arduino IDE делает за кулисами, прежде чем передать ваш исходный код в avr-gcc.

Из https://github.com/arduino/arduino/wiki/build-process#pre-processing

Среда Arduino выполняет несколько преобразований вашего эскиза. перед передачей его компилятору avr-gcc:

  • Все файлы .ino в папке эскиза (отображаются в IDE как вкладки без расширения) объединяются вместе, начиная с файл, который соответствует имени папки, за которым следуют остальные в алфавитном порядке, и расширение .cpp добавляется к имя файла.

  • Если еще нет, #include <Arduino.h> добавляется в скетч. Этот файл заголовка (находится в папке core для выбранная в данный момент доска) включает в себя все определения, необходимые для стандартное ядро Arduino.

  • Прототипы генерируются для всех определений функций в файлах .ino, которые еще не имеют прототипов. В некоторых редких случаях Генерация прототипа может завершиться неудачей для некоторых функций. Чтобы обойти это при этом вы можете предоставить свои собственные прототипы для этих функций.

  • Директивы #line добавляются для того, чтобы предупреждения или сообщения об ошибках отражали исходную компоновку эскиза.

Файлы в эскизе с любым расширением не подвергаются предварительной обработке. кроме .ino. Кроме того, файлы .h в эскизе не автоматически #included из основного файла эскиза. Далее, если вы хотите вызвать функции, определенные в файле .c, из файла .cpp (например, один, сгенерированный из вашего эскиза), вам нужно будет обернуть его объявления в блоке extern "C" {}, который определен только внутри файлов C++.

Это полезно знать, если вы пытаетесь перенести эскизы Arduino на чистый avr-gcc.

Вам также понадобятся файлы заголовков, определяющие все различные регистры, специфичные для ATMega328p, который является сердцем нескольких плат Arduino. Их можно загрузить как часть Atmel Studio 7, которая также включает avr-gcc и различные другие необходимые утилиты и скрипты toolchain.

Вам также понадобится справочное руководство или таблица данных процессора. В настоящее время таблица данных доступна по адресу https://www.microchip.com/wwwproducts/en/ATmega328P на вкладке "Документы". Там будет изложено все, что вам когда-либо нужно знать о том, как использовать процессор, настраивать периферийные устройства, правила порядка команд, названия всех регистров и т. д.

,