ForNext.ru Новости сайта

Программирование на AVR ASSEMBLER

Большинство программ для микроконтроллеров AVR на этом сайте написаны на assembler. Многим кажется, что программировать на asm'e - сизифов труд. Однако, считаю, что новичку в программировании МК AVR прежде всего стоит освоить самый простой способ общения с микроконтроллером на его "родном языке" - языке - AVRASM. К слову, "мигнуть" светодиодом на asm ничуть не сложнее, чем на C. При этом программный код, например, на МК семейства Tiny не будет занимать половину памяти устройства. Итак, преимущества программирования на asm:

  • Полный и непосредственный контроль над процессором
  • Программы занимают минимум объема памяти всех видов
  • Максимум быстродействия

Основные недостатки:

  • Увеличенное время разработки программы
  • Большой объем исходного кода программы
  • Затрудненная переносимость программного кода вне семейства AVR

Для начала необходимо ознакомиться с системой команд микроконтроллера. Как правило, таблицу с мнемониками - краткими символьными обозначениями команд МК можно найти в соответственном тех.описании (datasheet). Программа, преобразующая набор таких мнемоник в код, понятный МК - компилятор - для семейства AVR называется avrasm. Входит в фирменный пакет разработки WINAVR. Может называться avrasm32.exe или avrasm2.exe в последних версиях. Чтобы скомпилировать свою программу на AVRASM, достаточно иметь всего 3 файла - компилятор, файл описания микросхемы (definition file), под которую написана программа, например m168def.inc для ATmega168, и, собственно, исходный файл программы, например, led_blink.avr. Исходный код программы на ассемблере, которая мигает светодиодом, может выглядеть так:

Если добавить в Far Manager в закладку file associations строку по реакции на <enter> для расширения файла .avr такую строку -

avrasm2.exe -fI !/!.!, то файлы будут автоматически компилироваться с созданием .hex файла, готовым к записи в память МК