Инструменти за програмиране на AVR микроконтролери в Linux

Помислете за процеса на преобразуване на изходния код в машинен код, подходящ за запис в паметта на микроконтролера. Нека да разберем какви са софтуерните инструменти в операционната система Linux за компилиране и мигане на програми в микроконтролери, използващи езиците за програмиране C и Assembler. Нека да видим какви IDE са достъпни за писане и обработка на изходния код за AVR в Linux.

Компилиране на програмата и HEX

Нека да видим как се извършва компилирането, подготовката и записването на програмата в микроконтролера AVR. Да кажем, че ще напишем програма на C за AVR микроконтролер, ето какво ще се случи в процеса:

  1. Текстът на изходния код на програмата, написан от нас на универсалния език C, се записва във файл с разширение ".c";
  2. Съдържанието на файла ".c" се предава на компилаторната програма за обработка, която преобразува разбирания от нас код C в обектни машинни кодове и създава файл с разширението ".obj" на изхода;
  3. Такъв двоичен файл не е подходящ за директно записване в паметта на микроконтролера, така че трябва да бъде подготвен. Извличаме необходимите части от машинния код и получаваме текстов файл с разширение ".hex" във формат HEX на Intel;
  4. Записваме файла с разширение ".hex" във вътрешната енергонезависима памет на микроконтролера;
  5. Програмата е готова за изпълнение в микроконтролера!

среда разработка

Фигура: 1. Файлова структура във формат Intel HEX.

Повече информация за файловия формат Intel HEX можете да намерите в Уикипедия: https://ru.wikipedia.org/wiki/Intel_HEX

AVR софтуер за Linux

Софтуерните пакети на Linux съдържат десетки хиляди програми и помощни програми.

Нека да видим какво имаме в пакетите за нашата дистрибуция на Linux по ключовата дума "avr", нека го потърсим с командата:

В резултат на това получаваме списък с няколко десетки програми и библиотеки.

Като начало ще се интересуваме от това:

Инсталирайте целия този софтуерен пакет с една команда:

С помощ авра ще можем да компилираме изходния код в Асемблер (sample_program.asm) и веднага вземете готов HEX файл (sample_program.hex) на изхода за запис във флаш паметта на микроконтролера.

Използване на програмата avr-размер от набор от помощни програми binutils-avr можем да разберем размера на секциите, както и общия размер на данните в получения HEX файл, за да сме сигурни, че програмата ще се побере в паметта на микроконтролера.

Мощна програма avrdude ще ни даде възможност да четем и записваме фърмуера на микроконтролера. Ще можем да запишем на микроконтролера фърмуера във формат HEX (sample_program.hex), който е получен след компилиране на програмата в Assembler, C или друг компилатор за AVR.