Встроенный текстовый редактор
Перемещение по тексту программы
Для перемещения по тексту программы можно пользоваться следующими командами:
вправо — стрелка вправо;
влево — стрелка влево;
вверх — стрелка вверх;
вниз — стрелка вниз;
в начало строки — Ноmе;
в конец строки — End;
в начало файла — Ctrl+Home;
в конец файла — Ctrl+End.
Редактирование текста
Для редактирования текста следует пользоваться клавишами:
— вставить пробел — пробел;
— завершить строку — Enter;
— удалить символ слева от курсора — Backspace;
— удалить символ справа от курсора — Del.
Для разбиения строки на две следует установить курсор на место разбиения и нажать Enter.
Для объединения двух строк следует установить курсор в начало второй строки и нажать клавишу Backspace.
Выделение текста, операции копирования, перемещения и удаления осуществляются так же, как в любой программе для Windows.
Установка опций программы
Некоторые установки транслятора ассемблера могут быть изменены. Для этого следует выполнить команду меню Options. Появится окно, подобное изображенному на рис. 4.4.
Рис. 4.4. Окно установки опций программы
В этом окне можно установить расширение файла, содержащего листинг программы и файла с оттранслированным кодом. Менять их не рекомендуется.
Также здесь можно указать, какого типа должен генерироваться выходной файл. Имеется три типа файлов: Generic, Motorola S-record и Intel HEX.
Обратите внимание, что объектный файл (который используется отладчиком) всегда имеет расширение obj. Также, если в программе инициализируются значения в памяти EEPROM, генерируется файл с расширением еер, используемый программатором для прошивки в микроконтроллер в процессе программирования. Этот файл генерируется в формате Generic.
Опция Wrap relative jumps — разрешить относительную адресацию переходов. Эта опция полезна для использования с микроконтроллерами, имеющими 4 К слов памяти программ.
Опция Save before assemble — сохранять исходный текст программы каждый раз перед ее ассемблированием.
Одновременно с установкой транслятора ассемблера для 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 следующего содержания: