Мегаобучалка Главная | О нас | Обратная связь


Директивы транслятора ассемблера



2019-10-11 320 Обсуждений (0)
Директивы транслятора ассемблера 0.00 из 5.00 0 оценок




Транслятор ассемблера поддерживает достаточно много директив [[5]]. Директивы не транслируются в программу для микроконтроллера. Они используются для указания транслятору ассемблера данных о расположении программы в памяти микроконтроллера, определения макросов и т. д. Все директивы должны начинаться с точки.

В таблице 2.1 приведен перечень директив транслятора ассемблера.

 

2.2 Среда разработки приложений – AVR Studio

 

AVR Studio - это интегрированная отладочная среда разработки приложений (IDE) для микроконтроллеров, представленная компанией Atmel для свободного использования [3]. В данной разработке используется AVR Studio версии 4.10. Ожидается появление версии 4.11.

IDE AVR Studio содержит:

- средства создания и управления проектом;

- редактор кода на языке ассемблер;

- транслятор языка ассемблера (Atmel AVR macroassembler);

- отладчик (Debugger);

- программное обеспечение верхнего уровня для поддержки внутрисхемного программирования (In-System Programming, ISP) с использованием стандартных отладочных средств Atmel AVR.

 

Таблица 2.1 – Перечень директив транслятора ассемблера

Обозначение директивы Описание директивы
.BYTE резервирует 1 байт для использования в качестве переменной
.CSEG сегмент программ
.DB определяет байт-константу
.DEF определяет символическое имя для регистра
.DEVICE задает тип целевого микроконтроллера
.DSEG сегмент данных
.DW определяет слово-константу
.ENDMACRO конец определения макроса
.EQU сопоставляет символьному имени арифметическое выражение
.ESEG сегмент EEPROM
.EXIT выйти из файла (конец текста программы)
.INCLUDE загрузить исходный текст из другого файла
.LIST включить генерацию листинга
.LISTMAC включить печать содержимого макросов в листинге
.MACRO начать определение макроса
.NOLIST выключить генерацию листинга
.ORG установить расположение
.SET сопоставить символу выражение

 

Работа с AVR Studio начинается с создания проекта. При создании проекта необходимо указать используемый микроконтроллер и платформу, на которой будет производиться отладка программы.

Написание программы производится в окне редактора текста программы (рисунок 2.1). Для использования символических имен регистров специального назначения вместо их адресов, необходимо подключить (директива .include) к проекту файл определения регистров специального назначения (например, m16def.inc для ATmega16). Включаемые файлы входят в прикладное программное обеспечение AVR Studio и при инсталляции помещаются в папку Appnotes в директории установки AVR Studio.

Примеры программ доступны в большом количестве в качестве приложений к руководствам по применению микроконтроллеров AVR (см. раздел Application Notes на сайте [[6]]).

Написание программы в AVR Studio производится на языке ассемблер. Система команд микроконтроллера описана в упомянутых выше руководствах по применению в документе AVR Instruction Set либо в файле справки, встроенном в AVR Studio (меню Help\AVR Tools User Guide\AVR Assembler), в котором содержатся достаточно подробные комментарии к каждой команде.

Последние версии AVR Studio содержат тестовую версию AVR ассемблера второй версии, который в дополнение к стандартному ассемблеру поддерживает новые директивы ассемблера, Си - подобные директивы препроцессору, создание переменных определенного типа. Более подробную информацию можно найти в файле справки.

 

Рисунок 2.1 – Интерфейс интегрированной среды разработки AVR Studio

 

Перед трансляцией программы можно задать установки проекта (меню Project\AVR Assembler Setup показано на рисунке 2.2), указать необходимый формат выходного файла. Там же возможно установить использование AVR ассемблера 2-ой версии. Так как вторая версия ассемблера проходит стадию тестирования, то по умолчанию он отключен. Если не требуется каких-либо особых настроек, то можно использовать установки по умолчанию.

В результате трансляции создается выходной файл в указанном формате. Если исходный ассемблерный текст содержал сегмент энергонезависимых данных (объявленный директивой .eseg), то при трансляции будет создан также файл с расширением .eep. Этот файл содержит данные для внутренней EEPROM микроконтроллера и имеет тот же формат, что и выходной файл.

Если в результате трансляции не выдается сообщений об ошибках, можно приступать к отладке проекта.

Отладчик AVR Studio поддерживает все типы микроконтроллеров AVR и имеет два режима работы: режим программной симуляции и режим управления различными типами внутрисхемных эмуляторов (In-Circuit Emulators) производства фирмы Atmel. Важно отметить, что интерфейс пользователя не изменяется в зависимости от выбранного режима отладки.

Отладочная среда поддерживает выполнение программ, как в виде ассемблерного текста, так и в виде исходного текста языка Си, загруженного в объектном коде.

Рисунок 2.2 – Задание установок проекта

 

Объектный файл может быть загружен в различных форматах, а именно:

- в формате UBROF (расширение файла .d90). Формат UBROF - это патентованный формат компании IAR. На текущий момент среда разработки AVR Studio поддерживает все версии формата до восьмой версии (UBROF5/6/7/8).

- в формате ELF/DWARF (расширение файла .elf). Формат разработан сообществом открытого программного обеспечения для поддержки бесплатно распространяемых компиляторов (GNU GCC, для микроконтроллеров AVR последние версии данного компилятора имеют название WinAVR). На текущий момент среда разработки AVR Studio поддерживает формат версии DWARF2.

- в формате AVR COFF (расширение файла .cof). Это открытый формат, введенный в среду разработки AVR Studio для поддержки сторонних разработчиков компиляторов. Отладочный код в данном формате может быть сформирован с использованием таких компиляторов как, например, CodeVision AVR.

- в формате Extended Intel HEX (расширение .hex). Данный формат не приспособлен для отладки и используется для отладки в крайнем случае.

После загрузки объектного кода производится выбор отладочной платформы и используемого микроконтроллера (рисунок 2.3). При отладке с использованием внутрисхемных эмуляторов, микроконтроллеры, поддержка которых не осуществляется, автоматически подсвечиваются серым. После загрузки проекта система готова к старту отладки.

Управление отладкой производится командами меню DEBUG, либо соответствующими иконками на панели управления AVR Studio.

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

В AVR Studio для отладки программы предусмотрены две команды пошагового режима: Step Over и Trace into. Разница между ними в том, что при выполнении команды Step Over выполнение подпрограмм происходит до полного окончания без отображения процесса выполнения. К командам шагового режима также относятся команда Auto Step.

 

Рисунок 2.3 – Выбор платформы и прибора

 

С помощью команд пошагового режима можно проследить изменения значений в переменных, регистрах ввода/вывода, памяти и регистрового файла. Для этого предназначены раздел I/O рабочей области AVR Studio (см. картинку), окно Watch (меню Debug\Quickwatch).

Интегрированная среда разработки AVR Studio также поддерживает просмотр (меню View\Memory) ячеек памяти программ, памяти данных, EEPROM и регистров портов ввода/вывода в ходе исполнения. Выпадающее меню диалогового окна позволяет выбрать один из четырех массивов ячеек памяти: Data, IO, Eeprom, Program Memory. Для одновременного просмотра нескольких областей окно Memory может быть открыто несколько раз. Информация в диалоговом окне может быть представлена в виде байтов или в виде слов в шестнадцатеричной системе счисления, а также в виде ASСII - символов.

В процессе отладки пользователь может инициализировать внутреннее ОЗУ или EEPROM микроконтроллера (например, данными, содержащимися в полученном при трансляции файле .eep), или сохранить содержимое ОЗУ и EEPROM в виде файлов в формате Intel Hex (меню File->Up/Download Memory).

Помимо шагового режима, возможна отладка программы с использованием точек останова (меню Breakpoints->Toggle Breakpoint). Командой Start Debugging запускается исполнение программы. Программа будет выполняться до остановки пользователем или до обнаружения точки останова.

Работая с программным симулятором пакета AVR Studio, следует помнить, что он пока не поддерживает некоторые режимы работы микроконтроллеров AVR и их периферийные узлы:

- аналого-цифровой преобразователь;

- аналоговый компаратор;

- режим часов реального времени;

- режим пониженного энергопотребления (инструкция "sleep" интерпретируется программным симулятором как "nop");

Возможно, в последующих версиях AVR Studio поддержка этих узлов и режимов будет реализована, но в настоящий момент при работе программы с аналоговой периферией, необходимо производить ручной ввод данных в регистры результата.

Для наблюдения за работой программы можно открыть несколько окон, отображающих состояние различных узлов микроконтроллера (см. рисунок). Окна открываются нажатием соответствующих кнопок на панели инструментов или при выборе соответствующего пункта меню View. Если в процессе выполнения программы в очередном цикле значение какого-либо регистра изменится, то этот регистр будет выделен красным цветом. При этом, если в следующем цикле значение регистра останется прежним, то цветовое выделение будет снято. Такое же цветовое выделение реализовано в окнах устройств ввода/вывода, памяти и переменных.

Состояние встроенных периферийных устройств микроконтроллера, а также состояния программного счетчика, указателя стека, содержимого регистра статуса SREG и индексных регистров X, Y и Z отображено в окне I/O Window. В этом окне отражаются все функциональные блоки микроконтроллера. Любой блок может быть раскрыт нажатием на его значок. При раскрытии блока в окне отражаются адреса и состояния всех его регистров и отдельных, доступных для модификации, битов. Каждый доступный для модификации бит может быть установлен или сброшен как программой по ходу ее исполнения, так и пользователем вручную (указав курсором мыши нужный бит и, щелкнув левой кнопкой мыши, пользователь может изменить значение бита на обратное), а в режиме программной симуляции это является способом имитации входного воздействия на микроконтроллер.

 

Рисунок 2.4 – Отображение состояния узлов микроконтроллера

 

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

 

000000000:00

000000039:01

000000040:00

9999999999:FF

 

Здесь значение, указанное после разделителя ":" - это шестнадцатеричное представление сигналов, воздействующих на порт микроконтроллера. Значение, указанное до разделителя - это десятичный номер цикла (с момента сброса микроконтроллера), в котором указанное воздействие поступает на выводы порта микроконтроллера. Файл входного воздействия должен заканчиваться строкой с заведомо большим номером цикла, в противном случае будет выдано сообщение об ошибке. Для подключения файла входного воздействия служит пункт меню Debug\Options в разделе Stimuli and Logging. В открывшемся окне нужно указать порт микроконтроллера, на который нужно подавать воздействие, и файл этого воздействия. Пользователь может создавать файлы воздействий, а также записывать изменения значений на выходах портов микроконтроллера в файл (формат этого файла тот же, что и у файла входных воздействий).

Для записи служит функция Logging. В открывшемся окне нужно указать порт микроконтроллера и имя файла для записи. Записываемый файл будет удаляться и создаваться вновь при каждом выполнении сброса микроконтроллера (Debug->Reset). Подключать файл входного воздействия или задавать имя файла для записи пользователь должен сам при каждом запуске симулятора.

Следует отметить, что AVR Studio имеет очень мощную встроенную документацию как по использованию AVR Studio, так и по использованию стандартных отладочных средств производства компании Atmel, а также системе команд и всему, что касается программирования с использованием AVR Studio. Таким образом, использование встроенной справочной информации избавляет разработчика от накопления разобщенной информации, учитывая, что встроенная информация обновляется с выходом новых версий AVR Studio.

AVR Studio включает в себя программное обеспечение верхнего уровня для управления аппаратными средствами поддержки разработок, которое было описано выше. По сравнению с программой Ассемблер имеет большие функциональные возможности (например, автоматически подключает директивы Ассемблера), содержит отладчик программ и симулятор многих типов микроконтроллеров AVR и поддерживает многие типы программаторов.

 


 



2019-10-11 320 Обсуждений (0)
Директивы транслятора ассемблера 0.00 из 5.00 0 оценок









Обсуждение в статье: Директивы транслятора ассемблера

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (320)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)