Как программирование Arduino отличается от стандартного C?

У меня есть опыт программирования встроенных систем (TI MSP430, Atmel ATxmega). Как программирование Arduino отличается от этого? Какие знания о C я могу принять для программирования Arduino?

Ответ 1

Пока я не знаю о ATXMega, 8-битные чипы AVR, такие как ATmega328, используемые на новых Arduinos, используют компилятор AVR-GCC. Это позволяет компилировать C и даже С++ для чипа AVR. Один уровень выше AVR-GCC - это AVR Libc, библиотека C, которая делает программирование для AVR задачей более высокого уровня (больше не нужно напрямую ссылаться на регистры и т.д.).

В Arduino IDE используется библиотека AVR-GCC и AVR libc в бэкэнд. Кроме того, IDE Arduino делает доступными другими библиотеками, как хороший последовательный интерфейс.

Наконец, Arduino поставляется с загрузчиком, записанным на чипе AVR. Загрузочный загрузчик просто позволяет запрограммировать AVR с помощью последовательного соединения (с USB) вместо In-Sytem Programmer или Board Development.

Достаточно предыстория, чтобы ответить на ваш вопрос: Arduino можно запрограммировать на C и даже на С++. Доступные библиотеки написаны на C, и все будет скомпилировано с использованием AVR-GCC. IDE Arduino даже не требуется.

Edit

Похоже, что в этом вопросе есть приличная доля. Я написал сообщение в блоге, чтобы попытаться предоставить более подробные сведения о AVR, Arduino и AVR-GCC.

Ответ 2

Вы можете использовать свои существующие знания C при использовании Arduino.

Цель заключалась в том, чтобы позволить художникам/не-программистам легко начать работу с аппаратным программированием и мастерингом, поэтому "язык Arduino" просто обертка для упрощения разработки.

Это должно быть намного проще для вас, как программист C, чтобы использовать Arduino. Документация не является длительной вообще, wiki приятно и люди на forum с энтузиазмом и полезны.

Ответ 3

Arduino - C, за исключением того, что это вставляется в каждую программу:

void main() {
  setup();
  for(;;) {
    loop();
  }
}

Ответ 4

Вы можете в значительной степени использовать все свои знания в C и встроенных системах, и вы будете более чем в порядке. Это совсем не сложно. Закладка Arduino Reference, и вы будете писать материал в кратчайшие сроки.

Ответ 5

Arduino C-like и очень легко подбирается. Они отвлеклись от таких вещей, как чтение и запись в периферийные регистры для выполнения основных задач.

Посмотрите на примерный код и ссылку на Arduino, и вы скоро начнете работать, если вы действительно сделали реальный C на любой другой платформе.