Материал: 1755

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

В поле "Output file" выбирается вид файла, который получится в результате компиляции программы.

Рис. 2. Окно настроек Ассемблера

Опция "Wrap relative jumps" даёт возможность "заворачивать" адреса. Эта опция может быть использована только на чипах с объёмом программной памяти 4К слов (8Кбайт), при этом становится возможным делать относительные переходы (rjmp) и вызовы подпрограмм (rcall) по всей памяти.

Вобласти AVR Assembler осуществляется выбор между AVRASM2 (версии 2 по умолчанию) и AVRASM. Если у вас есть проблемы совместимости с новым AVRASM2, вы можете использовать старый AVRASM (версии 1). При этом дополнительные параметры и неподдерживаемые инструкции не будут доступны.

Вобласти Unsupported Instructions (неподдерживаемые инструкции) по умолчанию установлена опция – выдавать ошибку, когда Ассемблер обнаруживает неподдерживаемые инструкции для используемого МК. Дополнительно можно установить вывод предупреждения. Эти опции доступны только для AVRASM2.

Примечание:

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

40

В поле Additional include path (добавление дополнительного пути) можно установить путь к каталогу, где находятся включаемые файлы. По умолчанию установлен путь: \\Atmel\AVR Tools\AvrAssembler2\Appnotes.

При использовании Ассемблера v1 путь может быть изменен на: \\Atmel\AVR Tools\AvrAssembler\Appnotes/.

В поле Additional Parameters (дополнительные параметры) могут быть установлены параметры с использованием командной строки. При помощи знака вопроса (?) открывается страница подсказки Ассемблера, на которой описывают эти параметры на английском языке. На русском языке они описаны ниже в подразд. 4.2.

4.2. Опции командной строки AVRASM2

Подобно AVRASM, AVRASM2 может быть использован как отдельная программа с командной строкой. Синтаксис командной строки вызова AVRASM2 показан ниже. Много опций, таких же, как и в AVRASM, новые/изменившиеся опции AVRASM2 показаны жирным шрифтом и описаны ниже.

Опции:

-f [O|M|I|G|-] - выходной файловый формат:

-fO – информация об отладке для симулятора AVR Studio (умолчание); -fO1 | -fO2 – принудительная установка версии формата 1 или 2

(умолчание: авто); -fM – Motorola;

-fI – Intel hex;

-fG – общий шестнадцатеричный формат; -fнет выходного файла.

-o ofile – вывод помещается в 'ofile'.

-d dfile – генерировать информацию для отладки в симуляторе AVR Studio

 

в 'dfile'. Может использоваться только с опцией -f [M|I|G].

-l lfile

– генерировать листинг в 'lfile'.

-m mfile

– генерировать карту в 'mfile'.

-e efile

– расположить EEPROM в'efile'.

-w

– относительные переходы позволено завертывать для ROM

 

величиной вплоть до 4k слов.

-C ver – определяет версию ядра AVR.

-c – распознавание символов становится чувствительным к регистру. -1/-2 – переключает вкл/выкл версии 1 или 2 Ассемблера AVR.

-I dir –включает каталог 'dir' в путь поиска файлов. -i file –явное предварительное включение файла

-D name[=value] – определяет символ. Если =value (величина) опущена, она устанавливается в 1.

41

-U name – отмена определения имени: символ. -v – многословие [0-9](s – по умолчанию):

-vs – включать в статистику ресурс использованного целевого МК; -vl – вывод низкого-уровневого кода Ассемблера;

-v0 – отключение, печать только сообщения об ошибках; -v1 – печать сообщения об ошибках и предупреждения;

-v2 – печатать сообщения об ошибках, предупреждения и информацию (по умолчанию);

-v3-v9 – неопределенные, возрастающие суммы внутренних дампов Ассемблера.

-O i|w|e – сообщение о перекрытии: ignore|warning|error (error – по умолчению).

-W-b|+bo|+bi – предупреждение: байт-операнд вышел из диапазона disable|overflow|integer.

-W+ie|+iw – неподдерживаемая ошибка | предупреждение инструкции. -FD|Tfmt __DATE__ | __TIME__ – формат, использующий строку

формата strftime(3).

Подробное описание опций:

-f – установка выходного файлового формата

Предусмотренные форматы generic/Intel/Motorola являются шестнадцатеричными объектными файлами AVR. Есть два подварианта AVR объектного файлового формата:

Стандартный формат (V1) с 16-битовыми номерами строк, поддерживающий исходные файлы вплоть до 65534 строк.

Расширенный формат (V2) с 24-битовыми номерами строк, поддерживающий исходные файлы вплоть до ~ 16M строк.

По умолчанию, когда выходной формат не определен или определен как -fO, Ассемблер выберет подходящий формат автоматически, V1 – если файл имеет менее чем 65533 строк, V2 – если более. Опции -fO1 и -fO2 могут быть использованы, чтобы установить выходной файловый формат V1 или V2 независимо от количества строк.

Если файловый формат V1 использован исходными файлами более чем с 65534 строками, Ассемблер выдаст предупреждение, и строки выше 65534 не будут отлажены. С другой стороны, формат V2 не распознается версиями AVR Studio до 4.12.

Для всех нормальных проектов Ассемблера по умолчанию опция должна быть безопасной.

-w – завертывание относительных переходов

Эта опция устаревшая, поскольку AVRASM2 автоматически завертывает относительные переходы, базирующиеся в программной памяти. Опция распознается, но игнорируется.

-C core-version – определение версии ядра AVR

42

Основная версия нормально определяет спецификацию включаемых файлов (маркаМКdef.inc).

-c

Заставляет Ассемблер быть чувствительным к регистру символов. Директивы препроцессора и инструкции МК – всегда регистрочувствительны.

Предупреждение: установка этой опции может прервать много существующих проектов.

-1 или -2

Позволяет включать/выключать режим совместимости с AVRASM1. Этот режим блокируется (-2) по умолчанию. Режим совместимости (-1) обеспечит уверенный запуск ранее созданных проектов, в противном случае (в режиме -2) возможны сообщения об ошибках при запуске существующих проектов. Он также влияет на путь к встроенным включаемым файлам (devicedef.inc). Путь, определенный в Ассемблере 1, – C:\Atmel\AVR Tools\AvrAssembler\Appnotes, а место расположения incфайлов в Ассемблере 2 – C:\Atmel\AVR Tools\AvrAssembler2\Appnotes.

Новые устройства не поддерживаются Ассемблером 1.

-I directory

Добавляет пути поиска директорий включаемых файлов. Это влияет как на директиву #include препроцессора, так и на директиву .include Ассемблера. Многократные директивы -I задают поиск директории в определенном порядке.

-i file – включить файл

Директива #include “file” обрабатывается прежде, чем будет обработана первая строка исходного кода. Многократные директивы -i могут быть использованы для определения порядка поиска.

-D name[=value] -U name

Определение и отмена определения макроса препроцессора соответственно. Заметьте, что макросы функционального типа препроцессора не могут быть определены из командной строки. Если в -D величина (=value ) не задана, она устанавливается 1.

-vsпечатает статистику использованного МК в стандартном виде. По умолчанию печатается только информация о памяти.

Примечание:

Полная статистика всегда будет напечатана на файле листинга, если он определен.

-vlпечатает необработанные инструкции, выданные в стандартном виде, главным образом для отладки Ассемблером.

-v0печатает только сообщения об ошибках, предупреждения и информационные сообщения запрещены.

43

-v1печатает сообщения об ошибках и предупреждения.

-v2печатает предупреждающие и информационные сообщения, а также сообщения об ошибках (по умолчанию).

-v3... -v9 – печатает повышение сумм дампа внутреннего статуса Ассемблера. В основном используется Ассемблером для отладки.

-O i|w|e

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

Эта опция позволяет устанавливать реакцию на перекрытие кода: выдавать ошибку (-Oe, умолчание), предупреждение (-Ow) или полностью проигнорировать (-Oi). Последнее не рекомендуется. Это может быть также установлено директивой перекрытия #pragma.

-W-b |-W+bo | -W+bi

-b, +bo и +bi – никакого предупреждения, предупреждение – когда переполнение и когда величина целого вышла из диапазона соответственно. Это может быть также установлено #pragma warning range.

-W+ie|+iw

+ie и +iw – выбираются, если используются неподдерживаемые инструкции: выдают ошибку или предупреждение соответственно. По умолчанию – ошибка. Для #pragma error instruction / pragma warning instruction) соответственно.

-FDformat и –Ftformat – определяют формат даты и времени встроенных макросов __DATE__ и __TIME__ соответственно. Строки формата входят непосредственно в библиотечную функцию strftime(3) языка Cи. Макросы препроцессора __DATE__ и __TIME__ всегда являются строками параметров, т. е. их значения появляются в двойных кавычках. По умолчанию – форматы "%b %d %Y" и "%H:%M:%S" соответственно.

Пример:

Формат ISO для __DATE__ определяется как -FD"%Y-%m-%d" (см примечание ниже). Эти форматы могут быть определены только в командной строке, нет соответствия #pragma директивам.

Примечание:

Командный интерпретатор Windows (cmd.exe или command.com)

может интерпретировать символьную последовательность, начинающуюся и оканчивающуюся символом %, как переменную среды, которая расширяется даже при ссылке на неё. Это может вызвать изменение формата строк “дата/время” командным интерпретатором и не работать, как ожидается. Вариант, который будет работать во многих случаях, это использование двойного количества символов %, чтобы определять директивы формата, например -FD"%%Y-%%m-%%d". Точное поведение командного интерпретатора может быть противоречивым и изменяется в

44