цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Использование командной строки Linux для компиляции кода и его загрузки в Arduino



Использование командной строки Linux для компиляции кода и его загрузки в Arduino

Автор: Mike(admin) от 19-05-2026, 03:55

Если вы используете Linux и любите разрабатывать проекты с использованием Arduino, то вам, возможно будет интересно как в Linux с помощью интерфейса командной строки (CLI) можно компилировать написанные на C или C++ программы для Arduino и загружать их в микроконтроллер. И в данном материале мы рассмотрим такую возможность.


Использование командной строки Linux для компиляции кода и его загрузки в Arduino

Откройте командный терминал и попробуйте ввести: $ which gcc. Затем введите $ which avr-gcc.


Использование командной строки Linux для компиляции кода и его загрузки в Arduino

На экране должно отображаться расположение программных файлов цепочки инструментов gcc. Если avr-gcc не установлен, то положительного результата не будет. Если на этом компьютере установлена Arduino IDE или MPLab X IDE, то будет найдена версия avr-gc. Чтобы установить все необходимые программы, откройте терминал и введите следующее:


$ sudo apt-get install binutils gcc-avr avr-libc uisp avrdude flex byacc bison

Уже установленные и обновленные пакеты будут просто пропущены. Когда закончите, вы можете скомпилировать программы для Arduino с помощью gcc-avr. Стандартные библиотеки устанавливаются вместе с avr-libc. Avrdude будет загружать и скачивать с флэш-памяти вашей платы Arduino, после чего запустится утилита makefile. Теперь давайте создадим папку с именем code и поместим в нее два текстовых файла, main.c и Makefile.


Использование командной строки Linux для компиляции кода и его загрузки в Arduino

Используйте текстовый редактор для ввода текста в main.c.



#include <avr/io.h>
int main(void){   DDRB = 0xFF;
    while(1){PORTB++;
    int i; for (i=0; i < 0x7FFF; i++){;}}}

Сохраните, и после этого отредактируйте Makefile, введя в него следующее:



MCU=atmega328p
F_CPU=1200000
CC=avr-gcc
OBJCOPY=avr-objcopy
CFLAGS=-std=c99 -Wall -g -Os -mmcu=${MCU} -DF_CPU=${F_CPU} -I.
TARGET=main
SRCS=main.c
all:
${CC} ${CFLAGS} -o ${TARGET}.bin ${SRCS}
${OBJCOPY} -j .text -j .data -O ihex ${TARGET}.bin ${TARGET}.hex
flash:
avrdude -p ${MCU} -c arduino -U flash:w:${TARGET}.hex:i -F -P /dev/ttyACM0
clean:
rm -f *.bin *.hex

Вернитесь к терминалу и убедитесь, что вы находитесь в каталоге кодов. Подключите Arduino к USB-порту и введите $ ls /dev/tty*, чтобы убедиться, что устройство подключено к порту /dev/ttyACM0. Если он находится на другом порту, вам придется изменить make-файл.


Использование командной строки Linux для компиляции кода и его загрузки в Arduino

Введите $ make, чтобы создать два исполняемых двоичных файла: main.bin и main.hex. Main.hex необходимо загрузить в макетную плату вместе с программой avrdude для запуска. $ make clean удалит эти два файла.


Использование командной строки Linux для компиляции кода и его загрузки в Arduino

Если введете $ make all, то эта команда будет делать то же самое, что и $ make.


Использование командной строки Linux для компиляции кода и его загрузки в Arduino

Введите $ make flash, и вы увидите, как шестнадцатеричный файл будет загружаться в Arduino. При загрузке файла на плате будут мигать светодиоды Tx и Rr. Программа в main.c будет включать встроенный светодиод на плате на контакте 13 Arduino (порт B, 5-й бит) примерно раз в секунду. Программа Makefile в этой публикации очень проста и предназначена для создания файла main.hex из программы main.c.


Вес это можно выполнить и на компьютере с Windows. Вам нужно будет установить набор инструментов avr-gcc и утилиту makefile. Порт, используемый avrdude, необходимо изменить на порт Windows, например, COM4.




© digitrode.ru


Теги: Arduino, Linux




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий