Предупреждение, многословное объяснение не за горами. Я хотел бы прояснить некоторые заблуждения, которые, я думаю, у вас есть.
Arduino действительно две вещи.
- Коллекция библиотек C / C ++, скомпилированных с помощью avr-gcc и
- Небольшая программа прошивки загрузчика, которая ранее была запрограммирована на чипе с завода.
Да, в Arduino IDE в основном используется avr-gcc - компилятор AVR C. Ваши проекты, или "эскизы", включают в себя упомянутые библиотеки Arduino и скомпилированы с avr-gcc. Тем не менее, это не имеет ничего общего с тем, как что-либо записывается на доску. Как эти эскизы развернуты, немного отличается от обычного.
IDE Arduino связывается с вашим Arduino через микросхему usb-to-serial на плате и инициализирует режим программирования, который понимает загрузчик, и отправляет вашу новую программу на чип, где загрузчик поместит ее в какое-то известное место, а затем запустит ее , Не существует «библиотеки avr, которая выполняет фактическую запись» - это просто среда IDE Arduino, открывающая последовательный порт и общающаяся с загрузчиком - именно так ваши отладочные сообщения печатаются в среду IDE также во время выполнения.
Любая альтернативная среда разработки должна иметь возможность осуществлять эту же последовательную связь с загрузчиком. Arduino легок благодаря всем библиотекам, которые они вам уже предоставляют, и программирование в одно касание из IDE. Я, честно говоря, не думаю, что это становится легче или более удобным для пользователя. Они отобрали все детали микроконтроллера AVR и процесса сборки / развертывания.
Альтернативой может быть что-то вроде avr-studio (которая также использует avr-gcc для своего компилятора) и ICSP-программист (который является дополнительным оборудованием, которое вы должны купить). Вам не предоставляется ничего, кроме некоторых заголовочных файлов определения регистра и некоторых полезных макросов. Вам также не предоставляется какой-либо загрузчик на вашем чипе AVR, это просто чистый лист. Что бы вы ни хотели сделать с микроконтроллером, вам нужно будет углубиться в изучение его периферийных устройств и регистров, а также переместить байты в C. Хотите напечатать отладочное сообщение обратно на ПК? Сначала напишите процедуру UART для print () и откройте терминал на своем компьютере.
На шаг ниже этого вы пишете код в текстовом редакторе и вызываете avr-gcc и avr-dude (инструмент командной строки программирования) из Makefile или командной строки.
На шаг ниже, вы пишете ассемблер в текстовом редакторе и вызываете avr-ассемблер и avr-dude.
Я не уверен , куда я иду с этим, я просто думаю , что существующий IDE и Arduino абсолютно гений и идеально подходит для начинающих - их претензии к славе является дружественным к пользователю-Несс. Может быть, не тот ответ, который вы ищете, изучите рабочий процесс и сделайте что-нибудь классное с ним.