Как запрограммировать ардуино на чистом C/C++?

c++ c

Я новичок и хочу выучить AVR C/C++. Можно ли сделать это с помощью Arduino? (Я спрашиваю об этом, потому что он у меня уже есть).

Если да, то не мог бы кто-нибудь сказать мне, используя какую IDE я могу написать код на чистом C/C++, а затем прошить его на ATmega328P на Arduino? Или вместо этого надо иметь AVR и программатор?

Я искал по всему Интернету, и меня действительно смущает вся эта терминология. Кто-нибудь может мне это объяснить?

, 👍10

Обсуждение

Поэтому для того, чтобы запрограммировать 328, я считаю, что вам нужно установить atmel studio для компиляции кода, а затем использовать команду командной строки avrdude, чтобы поместить скомпилированный код на arduino., @Treesrule14

@Treesrule14 это возможность, но не единственная, поэтому неверно говорить, что это необходимо. Если установлена Arduino IDE, то и компилятор avr-gcc, от которого это зависит, тоже установлен., @Chris Stratton

@Treesrule14 У меня установлена студия atmel. Я просто не могу найти никаких ресурсов, которые могли бы помочь мне прошить программу на чипе на arduino с помощью загрузчика (без программиста). Возможно ли это вообще?, @SeeingRed

Я считаю, что вам нужен программист. : (, @Treesrule14

Вам не нужна никакая IDE. Вы можете скомпилировать и загрузить его с помощью набора инструментов, который поставляется с Arduino. Посмотрите на Arduino.mk например., @hobbs

@Treesrule14 - опять ошибаешься, программист тебе не нужен. Avrdude будет разговаривать с загрузчиком на arduino так же легко, чтобы загрузить шестнадцатеричный файл, скомпилированный из автономной программы C, как и для загрузки файла, построенного Arduino IDE., @Chris Stratton

@ChrisStratton совершенно не видел вашего первого поста, извините за это. Вы пробовали программировать с помощью avr-gcc через usb?, @Treesrule14

avr-gcc-это компилятор, а не инструмент загрузки. Но любой, кто привык к Arduino IDE с подключенным через USB arduino, сделал это, да. И я, и многие другие сделали это с помощью простых программ на языке Си, построенных из командной строки с помощью avr-gcc и прошитых из командной строки с помощью avrdude (что, в конце концов, и делает Arduino IDE от имени своего пользователя). В Интернете есть много записей, это задача, выходящая за рамки тривиального резюме в ответе SO., @Chris Stratton


3 ответа


4

Да, вместо этого возьмите программатор AVR.

1) Вы можете прошить свою плату arduino с помощью avrdude/avr-gcc. Установите эти инструменты, найдите техническое описание atmega328 (google it), используйте распиновку платы для подключения к вашему программатору (stk500v2/ISP) и вуаля!

2) Имейте в виду, что, "вручную" прошивая atmaga на плате arduino, вы удаляете загрузчик, необходимый для загрузки ваших скетчей из ARDUINO IDE.

3) Используйте свою любимую C/C++ IDE

,

вы должны быть в состоянии найти и перепрошить загрузчик для arduino посмотрите здесь http://arduino.cc/en/Hacking/Bootloader?from=Tutorial.Загрузчик, @Treesrule14

Нет! Вам не нужен ни программист, ни для удаления загрузчика. Загрузчик Arduino не зависит от IDE или библиотек - вы так же свободно можете использовать его с автономными программами на языке Си, как и с скетчами Arduino. Это не только дешевле, но и позволяет использовать одну и ту же плату для обоих стилей разработки без каких-либо изменений конфигурации., @Chris Stratton

Автор хотел изучить AVR на чистом C. Он не спрашивал - эй, ребята, как играть с arduino IDE или что-то в этом роде. но как повторно использовать atmega на борту у него уже есть., @soerium

@ChrisStratton поскольку вы не согласны с другими ответами, отправьте ответ, пожалуйста, @Treesrule14


3

Если вы новичок, я предлагаю вам написать C в Arduino IDE. Библиотеки очень полезны, и я думаю, что среда Arduino/проводки/обработки покроет все ваши потребности.

Посмотрите на Светло-голубой боб (http://punchthrough.com/bean/) это хороший пример мощи этой платформы. Даже опытные встроенные программаторы могут использовать его, так как базовый регистр все еще доступен.

Сейчас я программирую на Ti MSP430, и хотя я могу оценить возможности, мне не хватает простоты Arduino; гораздо проще начать работу с Arduino.

Перейти к http://arduino.cc/en/main/software чтобы загрузить программное обеспечение 1.0.6. IDE, подключите Arduino, перейдите в меню Инструменты->Плата, чтобы выбрать Arduino, выберите соответствующий порт "tty" в меню Инструменты->Serial_Port. Затем напишите на чистом Си и скачайте. В IDE есть множество примеров.

,

2

Arduino запрограммирован на C/C++. Существует распространенное заблуждение, что Arduino имеет свой собственный язык. См. Эту ссылку C++ vs. Язык Arduino? для полного обсуждения Arduino, являющегося C/C++, и упрощений, предлагаемых Arduino. Более того, вы можете увидеть код ядра Arduino здесь.

С сайта Arduino:

Могу ли я запрограммировать плату Arduino на C?
На самом деле вы уже есть; язык Arduino-это просто набор функций C/C++, которые можно вызвать из вашего кода. Ваш скетч претерпевает незначительные изменения (например, автоматическая генерация прототипов функций), а затем передается непосредственно компилятору C/C++ (avr-g++). Все стандартные конструкции C и C++, поддерживаемые avr-g++, должны работать в Arduino. Более подробную информацию смотрите на странице, посвященной процессу сборки Arduino.

Arduino предлагает легкую кривую обучения для начинающих и экспертов. Так что просто скачайте последнюю версию Arduino IDE, установите ее и наслаждайтесь.

,

Еще одним распространенным заблуждением является то, что C является подмножеством C++. Библиотека Arduino core написана на C++, поэтому с ее помощью невозможно программировать на C., @Dmitry Grigoryev

Я думаю, что это и есть ответ., @pylover