Программатор USBasp. Чтобы запрограммировать AVR с помощью программатора USBasp, используйте вместе с утилитой avrdude имя программатора usbasp (список поддерживаемых программаторов можно получить командой (avrdude -c ?). Пример прошивки ATmega328P файлом blink.hex:
$ avrdude -c usbasp -p m328p -U flash:w:blink.hex
Arduino. Платки Arduino прошиваются с помощью подключения через виртуальный последовательный порт (обычно реализован на отдельном чипе FT232RL или CH340). Пример прошивки платки Arduino Nano тем же файлом blink.hex:
Имя виртуального последовательного порта для опции -P можно узнать командой $ sudo tail -f /var/log/kern.log. Если вы встретились с ошибкой "programmer is not responding", попробуйте подобрать скорость соединения для опции -b. Чаще всего используются скорости 19200, 57600 и 115200.
[eXtreme Burner]
Для программатора USBasp существует отличная утилита с графическим интерфейсом - eXtreme Burner, которая работает на Windows и Linux [3, 4].
[Первая программа в Arduino IDE]
Программирование в среде разработки Arduino IDE происходит одинаково в Windows, Linux и Mac OS. Установка в Linux:
$ sudo apt install arduino
После этого можно запускать Arduino IDE командой arduino в строке терминала:
1. Перейдите по ссылке [1], кликните на ссылку Linux AppImage 64 bits (X86-64). Скачается файл arduino-ide_2.1.1_Linux_64bit.AppImage (цифры 2.1.1 в имени файла могут поменяться в зависимости от версии).
2. Перепишите этот файл в каталог, где у вас находятся все загруженные программы. Например в папку ~/install. Установите у него атрибут, разрешающий выполнение:
После этого Arduino IDE можно будет запускать простым кликом на файл arduino-ide_2.1.1_Linux_64bit.AppImage.
Для удобства можно создать для arduino-ide_2.1.1_Linux_64bit.AppImage символическую ссылку, и поместите её в каталог, где система может её запустить без необходимости указания прямого пути, такие каталоги можно узнать командой printenv PATH. Например, создайте символическую ссылку в каталоге /home/имядомена/имяпользователя/.local/bin, и назовите её ardide. Тогда можно будет запускать Arduino IDE из любой командной строки, просто введя команду ardide.
Hello World (blink). Чтобы понять, как работает система компиляции и программирования, можно начать с простейшей программы мигания светодиодом (Blink). Запустите Arduino IDE, войдите в меню Файл -> Примеры -> 01.Basics -> Blink. Загрузится скетч:
Проверьте настройки выбранной платы и порта подключения, это делается через меню Сервис. Например, если у вас платка Arduino Nano с микроконтроллером ATmega328P, то выберите Сервис -> Плата -> Arduino Nano w/ATmega328. Если у вас подключено несколько последовательных портов, то порт подключения можно выбрать в меню Сервис -> Последовательный порт.
Теперь все просто. Для компиляции и загрузки кликните на тулбаре в круглую кнопку со стрелкой (Загрузить).
Программа скомпилируется и загрузится. Светодиод на плате начнет зажигаться и гаснуть с периодом 2 секунды.
Диагностика проблем. Если что-то пошло не так, то полезно вывести диагностику. Для этого выберите в меню Файл -> Настройки, и поставьте галочки "Показывать подробный вывод при:".
Создайте следующий файл с именем Makefile в корневом каталоге проекта (где находится файл main.c).
Важный момент для запуска make: в строках после целей "%.o:", "clean:", "help:", "flash:" и "disasm": символы пробелов нужно заменить на табуляцию. Ниже в тексте символы табуляции показаны символом стрелочки →.
make Генерация двоичного файла программы (make.hex). make help Подсказка по командам. make clean Полная очистка (удаление временных файлов). make disasm Дизассемблирование двоичного кода. make flash Запрограммировать двоичный код в память микроконтроллера.