Читаем Микроконтроллеры AVR: от простого к сложному полностью

Одновременно с установкой транслятора ассемблера для Windows, устанавливается версия для работы из командной строки MS-DOS. Эта версия транслятора не имеет никаких ограничений по объему транслируемой программы (т. е., в отличие от версии для Windows, размер файла может быть больше 28 кбайтов).

Вызывается программа следующим образом:

avrasm [-m|-i|-g] input.asm output.lst output.hex

В результате выполнения программы будет прочитан файл input.asm, сгенерирован файл листинга listfile.lst, файл скомпилированного кода для загрузки в память программ микроконтроллера output.hex и объектный файл *.obj, используемый отладчиком.

Назначение ключей программы

m — генерировать файл кода в формате Motorola S-Record;

i — генерировать файл кода в формате Intel HEX;

g — генерировать файл кода в формате Generic.

По умолчанию генерируется файл кода в формате Generic.

Для выбора типа файла следует уточнить, с каким типом файлов может работать программатор, которым программа будет заноситься в микроконтроллер.

Формат файлов, генерируемых транслятором ассемблера

Формат Generic

Рассматриваемый транслятор ассемблера может генерировать три различных типа файлов: Generic, Motorola S-Records и Intel HEX.

Рассмотрим один из этих форматов — Generic. Файлы этого формата — текстовые.

Структура файла очень проста. Каждая строка файла имеет вид: Адрес: код операции.

Здесь «Адрес» — 6 цифр (24 бита) шестнадцатеричного числа, и «код операции» — 4 цифры (16 битов) шестнадцатеричного числа. «Адрес» определяет адрес в памяти программ, а «код операции» — содержимое памяти по указанному адресу.

В качестве примера рассмотрим программу на ассемблере:

; Демонстрация формата Generic

         mov r0,r1

         inc r1

         call oursub

.org 0x50; Установить адрес в памяти программ на 0x50

oursub: add r1,r2

         ret

В результате трансляции этой программы будет получен файл gen_demo.rom следующего содержания:

000000:2с01

000001:9413

000002:940е

000003:0050

000050:0с12

000051:9508

Обратите внимание на то, что команды, состоящие из двух слов, размещаются в двух строках файла.

Если в программе был определен сегмент EEPROM, то генерируется файл для прошивки в EEPROM. Расширение этого файла еер. Этот файл всегда генерируется в формате Generic.

Формат объектного файла

Объектный файл содержит отладочную информацию и может быть использован отладчиком для проверки правильности работы программы.

Объектный файл имеет две части: record и trailer.

Заголовочная часть имеет следующий формат:

• смещение к исходным именам файлов (4 байга);

• смещение к объектным записям (4 байга);

• число байтов в каждой записи (1 байт);

• число имен файлов во второй части файла (1 байт);

• строку A VR Object File\0 (\0 означает, что строка завершена 0).

Длительность записей составляет 9 байтов каждая. Формат записи:

• адрес памяти программ (3 байта);

• код операции (2 байта);

• номер инструкции в исходном файле (1 байт, счет начинается с 0);

• номер строки в исходном файле (2 байга, счет начинается с 1);

• индикатор макроса (1 байт, 1 — если макрос, иначе — 0).

И наконец, trailer часть имеет следующий формат:

• имена файлов (заканчивающиеся на 0, число файлов в заголовке);

• ASCII 0.

Для примера рассмотрим программу (файл obj demo.asm):

; Демонстрация объектного формата

.equ const1=0x15

.equ const2=0x40

macro SWIN

      swap @0

      inc @0

.endmacro

start: ldi r16.const1

      SWIN r16

      ldi r16.const2

      SWIN r16

      rjmp start

.include "delay.asm"; Включение другого файла на ассемблере

Включаемый файл (delay.asm):

delay: dec r16

      breq delay

      ret

После трансляции будет получен объектный файл. Файл — бинарный. Для удобства рассмотрения он был переведен в 16-ричный формат, а столбцы были раздвинуты.

Перейти на страницу:

Все книги серии Библиотека инженера

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника