Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1158

.pdf
Скачиваний:
5
Добавлен:
07.01.2021
Размер:
922.79 Кб
Скачать

Перечисление значений двоичных чисел – обычно длинная строка, для продолжения которой рекомендует использовать +.

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

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

Цифроаналоговый преобразователь на 8 битов (D2A8)

Синтаксис:

X [< instName >] D2A8 <i7> <i6> <i5> <i4> <i3> <i2> <i1> <i0> <nodeOut>

8-битные значения на вводах <i0>,...,<i7> преобразуются в аналоговые значения. Диапазон для таких значений: 0 - > VSS, 255 - > VDD.

Пример:

XD2A D2A8 pa7 pa6 pa5 pa4 pa3 pa2 pa1 pa0 ana_out

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

Диалоговый TTY

TTY – диалоговый визуальный компонент. Он размещается в панели управления (см. рис. 8), имеет отделенные 2 окна TX/RX и кнопки конфигурации, которые позволяют изменять параметры TX/RX. После того, как установится соединение с системой через TX/RX-узлы, установите курсор в окно TX и напечатайте с клавиатуры. Любой напечатанный символ будет передан через узел TX. Любой символ, полученный через узел RX, будет показан в окне RX.

Есть два доступных TTY-дисплея: TTY и TTY2, различие в том, что у TTY2 окно RX большое.

Синтаксис:

X [< instName >] TTY (< baudRate > [< 7 или 8 битов > <четность> <oddParity> <stopBits> <RxDisplayAs>]) <nodeTx> <nodeRx>

X [< instName >] TTY2 (< baudRate > [< 7 или 8 битов > <четность> <oddParity> <stopBits> <RxDisplayAs>]) <nodeTx> <nodeRx>

Параметры:

Все, кроме первого параметра, – не заданные значения, берутся по

умолчанию.

 

 

 

 

 

 

 

 

 

<baudRate>:

300,

600,

1200,

2400,

4800,

9600,

19200,

28800,

38400,

57600, 76800, 115200. Не берется по умолчанию (обязательное поле).

 

<7Or8bits>:

7 или 8. Значение по умолчанию =

7.

 

 

<Четность>: 0: никакая четность, 1: четность. Значение по умолчанию = 0.

<oddParity>: 0: четный, 1: нечетный. Значение по умолчанию = 0. <stopBits>: 1, 2. Значение по умолчанию = 1.

<RxDisplayAs> RX отображают опцию: 1, 2, 3, 4. Значение по умолчанию = 1.

Последний параметр <RxDisplayAs> позволяет определять формат дисплея в окне RX. Он может быть:

1)8-битный ASCII-ANSI-код (используемый Windows). Значение по умолчанию;

2)классический 7-битный ASCCI-код, будет отображен как шестнадцатеричные числа;

3)десятичный код;

4)шестнадцатеричный код.

Примеры:

Xpeter TTY (9600 7 0 0 1 2) tx_peter tx_paul Xpaul TTY (9600) tx_paul tx_peter

Передача содержания файла

Кнопка TX File позволяет передавать содержание файла. Файл должен иметь имя с расширением TX, например PETER.TX или PAUL.TX. Этот файл должен быть расположен в рабочем каталоге с остальной частью файлов: PRJ, код и т.д. Форматированием/синхронизацией при передаче файла управляют 4 параметра первой строки (пример):

1.0e-3 5.0e-3 ТЕКСТ CR ; Первая строка для параметров Hello world этот текст должен быть передан.

Параметр 1: межсимвольная задержка в секундах (время от бита останова до следующего начала). Значение по умолчанию = 0.

Параметр 2: межстрочная задержка в секундах. То же самое для перерывов строки. Значение по умолчанию = 0.

Параметр 3: Формат, возможные значения: ТЕКСТ или BIN. Значение по умолчанию = ТЕКСТ.

Параметр 4: Как интерпретировать строки с прерыванием режима

TEXT. Возможные значения: CR, LF, CRLF, NULL, NONE.

NULL пошлет 0x00 байт; NONE будет игнорировать переводы строки. В режиме BIN этот параметр игнорируется. Значение по умолчанию = CR.

Если на этой строке обнаружена ошибка параметра, то отображается предупреждающее сообщение и принимается значение по умолчанию.

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

Пример:

1.0e-3 5.0e-3 ; Пример режима BIN

0A DF 12 E3 98 08

18 FF FA FB

Прием файла

Через специальный буфер содержимое окна RX будет скопировано в файл с именем <instName>.RX. В вышеупомянутых примерах это PETER.RX, PAUL.RX. Этот файл будет помещен в рабочий каталог.

Маленькие окна TX/RX действуют, подобно старому TTY-терминалу командной строки, в котором команды, подобно Копии/Вырезке/Вставке, стрелки и т.д., не выполняются.

Кнопкой Clear очищаются окна TX/RX.

Специальные символы <CR>, <ESC> и т.д. отображены с его соответствующим кодом, чтобы было ясно, что они переданы. Уровни сигнала TX/RX - VDD/VSS.

Если TTY сконфигурирован на 7 битов и вы нажимаете символ на 8 битов, подобно буквам с, б, ц и т.д., то в окно Messages выдается предупреждение. Символы на 8 битов определяются стандартом

Windows/ANSI, а не MS-DOS OEM.

Можно изменять параметры TX/RX во время выполнения моделирования, используя кнопку Set Parameters.

Не забудьте подключать TX- и RX-терминалы! Например, TX-вывод от микроконтроллера должен быть связан с TTY RX-терминалом, и наоборот.

LCD-модуль

Синтаксис:

X [< instName >] LCD (< символы > < строки> < osc_freq >) <RS> <RW> <E> <D7> ... <D0>

LCD-модуль представляет стандартную LCD-панель (HD44780). Доступные комбинации символов строк: 8x1, 8x2, 16x1, 16x2, 16x4, 20x1, 20x2, 20x4, 24x2 и 40x2.

Параметр частоты генератора позволяет осуществить реалистическое моделирование задержек операций.

Все особенности LCD и команды точно моделируются, кроме генерации символов оперативной памятью.

Пример:

X1 LCD (24 2 250КБ) PD2 PB0 PD3 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0

У LCD низкая частота синхронизации.

LCD-модуль позволяет выводить 4/8 битов данных. Используйте интерфейс на 4 бита, чтобы сохранить порты.

Используйте файл регистрации checkBox, чтобы проследить LCDданные и операции в окне сообщений.

I2C-монитор

Монитор I2C позволяет моделировать и делать отладку приложений, основанных на популярном интерфейсе I2C (TM Philips Semiconductors).

Использование его в системе для обмена данными между микроконтроллерами и другими устройствами позволяет видеть данные, делать их запись и посылать/получать по шине в режимах Master или

Slave.

Синтаксис:

X [< instName >] I2C (< master_clock > < slave_address >) <SDA> <SCL>

Пример:

Xone I2C (100КБ 24) PC1 PC0 ; slave address = 24 (десятичное число)

R1 VDD PC0 10КБ

; резисторы

R2 VDD PC1 10КБ

; необходимы

Параметры:

 

<master_clock>: является частотой, которая будет использоваться в режиме мастер TX или RX. Максимальная доступная частота 400 кГц.

<slave_address>: адрес, который имеет устройство в режиме Slave. Этот адрес должен быть в десятичном формате (0 – 127).

<SDA>, <SCL> узлы: к которым, как в реальной схеме, необходимо подключить резисторы между VDD и SDA, SCL-узлами.

Работа с монитором I2C

Монитор имеет два диалоговых окна с двумя кнопками Master TX и Master RX в каждом (рис. 18), которые позволяют выводить I2C- последовательности.

Кнопка Master TX

инициализирует передачу данных по адресу. Байты данных должны быть в шестнадцатеричном формате разделенными пробелом: 0A 3D 45 6A 78....

Кнопка Master RX

инициализирует прием данных (посылка синхроимпульсов, получение данных) от адресов, полученных в окошко редактирования на панели управления (справа).

Все события, замеченные в шине, регистрируются в правом окошке: Start, Stop, Data RX и т.д.

Рис. 18. Панель управления с монитором I2C

Матрица вспомогательной клавиатуры 4x4

Представляет собой 4 столбца и 4 строки вспомогательной клавиатуры на панели управления (см. рис. 16). Она используется в интерактивном режиме для управления 16-ю выключателями.

Синтаксис:

X [inst_name] KEY4X4 <r0> <r1> <r2> <r3> <c0> <c1> <c2> <c3> <r0> узел или строка 0 (topmost) и т.д.

<c0> узел для (крайнего левого) столбца 0 и т.д.

Когда нажата кнопка 0 в панели управления, узлы <r0> и <c0> замкнутся. Кнопка 1 в панели управления замкнет узлы <r0>, <c1> и т.д.

Пример:

XkeyPad KEY4X4 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7

Советы и ограничения:

Не соединяйте силовые узлы (VDD / VSS / GND) при помощи клавиатуры.

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

4x4 матрица вспомогательной клавиатуры является эквивалентом 16-ти индивидуальных клавиш Кх, используйте эту форму для специальных применений, подобно запирающимся или моноустойчивым ключам.

5. ФАЙЛЫ, ВКЛЮЧАЕМЫЕ В ПРОЕКТ

5.1. Спецификация файлов AVR

VMLAB включает свободно распространяемое программное обеспечение фирмы Атмел AVR стандартный макроассемблер AVRASM32. EXE. Полученный при помощи его исходный код сохраняется в файле *.asm. Кроме него в спецификацию проекта входят следующие стандартные AVR-файлы, доступные в каталоге проекта:

*Листинг (тип .LIS).

*Загружаемый код (тип .HEX), используется для программирования флэш-памяти.

*Файл EEPROM (тип .EEP), используется для программирования энергонезависимой памяти.

*Объектный файл (тип OBJ). Этот файл не используется VMLAB. Стандартный Атмел AVR макроассемблер AVRASM32 не содержит

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

Не рекомендуется изменять вручную включенную в проект цепочку связанных файлов (.LIS, .HEX и т.д.) до тех пор, пока VMLAB использует их для того, чтобы извлечь всю информацию и построить внутреннюю базу данных. Если эти файлы разрушены, могут быть неожиданные результаты!

Определение конфигурационных битов (fuses)

Значение конфигурационных битов (фьюзов) можно определить в проектном файле посредством директивы .MICRO со строкой опций.

Используйте следующие правила, чтобы определять фьюзы:

1.Используются пары <fuse_name>=<fuse_value> <fuse_name>= <fuse_value> …, отделенные пробелами. Однако не должно быть никаких пробелов в паре <fuse_name>=<fuse_value>.

2.<Fuse_name> должен иметь имя фьюза, какое указано в документации (datasheets) на МК. Многоразрядные фьюзы всегда должны предваряться именем (например, CKSEL, записанным как CKSEL00, CKSEL01 и т.д.).

3.<Fuse_value> должен быть всегда двоичным числом, с одним или большим количеством битов: 1, 01, 0001, ..

Следующие фьюзы могут использоваться в моделировании при условии, что МК поддерживают их:

BOOTRST. Если он установлен в ноль, вектор сброса будет перемещен в загрузочную область согласно информации в документации.

BOOTSZ – в комбинации с BOOTRST.

Остальная часть фьюзов не имеет никакого эффекта в моделировании, но если они определены, будут переданы их значения как заданные по умолчанию интерфейсу STK500. Это позволяет определять правильный набор фьюзов для данного приложения непосредственно в ПФ.

Пример:

.MICRO "Atmega128" " M103C=1 CKSEL=0010 BOOTSZ=01 BOOTRST=0 "

Совет:

Просмотрите демонстрационный проект BOOTLOAD.PRJ как пример того, как использовать определение фьюзов.

5.2. Проектный файл

Проектный файл – текстовый файл с расширением .PRJ, который идентифицирует систему «аппаратные средства + программное обеспечение».

Строки ПФ могут быть двух типов в зависимости от первого символа строки:

-Директивы, начинают строку с точки (пример: .PLOT V (n1)).

-Определения компонентов, начинают строку с символа (например, R1 n1 n2 1К).

Если входная строка слишком длинна, она может быть разбита на нескольких строк, с использованием символа + в начале каждой строки (исключая первую).

В строке после точки с запятой «;» начинаются комментарии.

В директивах или определениях компонентов следующие формальные элементы заключаются в < угловые скобки >:

<NodeName>: Любой идентификатор или номер (8 символов максимум).

<PowerNode>: Любой из трех идентификаторов узлов

напряжения: VDD, VSS и GND (или цифра 0). VDD и VSS линии напряжения питания; GND (или цифра 0), имеющий нуль вольт в узле.

<InstName>:

Любой

идентификатор,

начинающийся

с символа (8

максимум).

 

 

 

 

 

<Значение>:

Номер

(число) с или

без десятичной

точки. Номера

(числа) могут иметь следующие суффиксы:

 

P

(Pico)

=

X10e-12,

 

 

N

(Nano)

=

X10e-9,

 

 

M

(Mili)

=

X10e-3,

 

 

K

(Кило)

=

X10e+3,

 

 

МEG (Mega)

=

X10e+6.

 

 

Примеры правильных значений: 10e-3, 10.5m, 10meg, 10MEG, 5, 10e-12.

Общая ошибка состоит в том, что печатают М вместо MEG. Помните, что буква М установлена для Mili, а не для Mega.

<ModName>: Имя модуля в формате "8.3": 8 символов имени максимум, 3 символа максимум для расширения, записанные в кавычках

(например: "my_file.asm").

Сообщения об ошибках синтаксиса:

После того, как вызвана команда Build, если найдена любая ошибка / предупреждение в проектном файле, появляется сообщение в окне сообщений (Messages). Строка, в которой ошибка, высвечивается в красном цвете.

Минимальный проектный файл

В проектном файле должны быть определены по крайней мере две директивы: директива .MICRO и директива .PROGRAM.

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

Пример минимального проектного файла:

.MICRO "Atmega8"

.PROGRAM "EXAMPLE.ASM"

Такой минимальный проектный файл представляет МК Atmega8 с несоединенными ни с чем вводами/выводами, включенный с заданными по умолчанию уровнями напряжений (VDD = 5V, VSS = 0V) и используемой заданной по умолчанию тактовой частотой (1 МГц).

5.3. Использование GNU/WinAVR Cи-компилятора

GNU Cи-компилятор (GCC) должен быть установлен на компьютере. Рекомендуется инсталлировать бесплатный WinAVR.

Для GCC используется специальный набор директив:

.TOOLCHAIN,

.GCCPATH,

.GCCMAKE,

.SOURCE.

Есть два возможных способа использовать WinAVR-компилятор: 1 режим Auto-make.

В этом режиме нет никакой потребности писать make-файл. Такой файл автоматически создаст VMLAB на основе набора опций, доступных в меню Project | GCC/WinAVR flags. Вызывая эту команду, VMLAB

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

Режим Auto-make должен использовать директиву .GCCMAKE АВТО. Пример заголовка проектного файла:

.MICRO "AT90S8515"

.TOOLCHAIN "GCC"

.GCCPATH " c:\winavr\"

.GCCMAKE АВТО

.SOURCE "gcctest3.c"

.TARGET "gcctest3.hex"

2 – написание make-файла вручную.

Если вы предпочитаете писать собственный makefile, то должна использоваться директива .GCCMAKE <имя файла>.

Файл будет загружен в окно Code Notebook.

Пример заголовка проектного файла, когда make-файл сделан вручную:

.MICRO "AT90S8515"

.TOOLCHAIN "GCC"

.GCCPATH " c:\winavr\"

.GCCMAKE "makefile"

.SOURCE "gcctest3.c"

.TARGET "gcctest3.hex"

Обратите внимание: для совместимости со старшими версиями, если не найдена директива GCCMAKE, VMLAB создает файл с заданным по умолчанию именем makefile.

VMLAB GCC-интеграция предусматривает следующие особенности:

Нет никакой потребности в дополнительных файлах: bat-файле и т.п.

Сообщения об ошибках при выполнении этого процесса отображаются в окне Messages. Только ошибки синтаксиса требуют изменения оригинала make-формата. Щелчок по сообщению об ошибках показывает соответствующую строку в редакторе.

Отладка производится на уровне языка Cи. При запуске проекта VMLAB ожидает COFF-файл, произведенный make-процессом. Так

обеспечьте, чтобы в вашем makefile была конверсия ELF > COFF.

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

Автоматически создается шаблон. Если вы выбрали GCCспецификацию файлов, команда New Project (меню Project) создает автоматически проектный файл с необходимыми директивами для использования GCC. Меню Options | Code Maker | GCC позволяет вам определять файл шаблона для такого автоматического процесса. По умолчанию установлен WinAVR-стиль.

Смешанный Ассемблер/Cи-дисплей: окно Program Memory отображает одновременно исходный текст Cи и эквивалентные команды Ассемблера. Контекстное меню (правая кнопка) позволяет выполнить некоторые утилиты: сохранить дизассемблированный код и расположить данную строку в редакторе.

Для лучшего просмотра точек входа в функции Cи запишите ваши

функции, как в этом примере:

void myFunction(int myParam) { // Открытая скоба здесь для того,

....

// чтобы отобразить

....

// вход в функцию

....

// в окне Program Memory.

}

Директива .SOURCE указывает только файлы исходного текста, которые будут загружены в окно Code Notebook для целей отладки/контроля. Двойной код построен согласно командам и правилам,

установленным в make-файле. Не обязательно загружать все исходные файлы (хорошо проверенные функции, библиотеки и т.д.).

Меню Options | Code Maker | GCC позволяет вам изменять некоторые параметры GCC спецификации файлов. По умолчанию они установлены для использования популярного WinAVR-пакета.

GCC-спецификация оптимизирована так, чтобы использовать этот инструмент, как инструмент сторонних разработчиков. При этом учтите следующее: 1) вы должны писать ваш собственный файл BAT-file, где вызвать make-утилиту; 2) система сообщений об ошибках, упомянутая выше, будет недоступна.

5.4. Использование компиляторов сторонних разработчиков

VMLAB позволяет использовать любой компилятор сторонних разработчиков (третьих лиц), способный произвести COFF-файл (расширение COF). Из COFF-файла читается только информация для отладки.

Пример ПФ для компилятора от третьего лица с интерфейсом командной строки:

.MICRO "AT90S8515"

.TOOLCHAIN "GENERIC"

.COFF

"gcctest6.cof"

.BAT

"go.bat"

.TARGET

"gcctest6.hex"

.SOURCE

"gcctest6.c" ; Необходимо, если .BAT также использован.

Директива .BAT указывает на внешний командный файл go.bat. Этот файл должен содержать обращение к командной строке компилятора и любым другим командам, необходимым для получения HEX + COFFфайлов. В данном случае для этой цели будут использоваться COFF- и HEX-файлы.

Пример проектного файла, предназначенного для использования VMLAB только как отладчика (COFF + HEX построены внешним IDE третьего лица):

.MICRO "AT90S8515"

. TOOLCHAIN "GENERIC"

.COFF "gcctest6.cof" ; VMLAB поддерживает расширение COFF!

.TARGET "gcctest6.hex"

В этом случае директивы .SOURCE и .BAT не требуются, исходные файлы, указанные в COFF-файле, будут загружены (.SOURCE директива опциональна).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]