Основные команды (директивы) VMLAB

Введение

Существует два способа проверки и отладки программного обеспечения разрабатываемых радиотехнических устройств на микроконтроллерах:

– Отладка программы непосредственно на микроконтроллере. При этом составили программу, откомпилировали, программатором прошили (запрограммировали) микроконтроллер, дальше вооружились осциллографом и давай изучать работу устройства. Если нашли ошибку, то пишем новую программу, компилируем, прошиваем и так до тех пор, пока не заработает устройство (или количество циклов перезаписи Flash не закончится). Это аппаратный способ отладки. Он требует специальной измерительной аппаратуры, специалистов высокой квалификации, больших ресурсов времени, и сопряжен со многими проблемами.

– Отладка программы виртуально с помощью специальных программных пакетов (эмуляторов). При этом составление программы, проверка ее на синтаксические ошибки, компиляция, моделирование работы устройства, поиск ошибок в алгоритме программы выполняется виртуально на компьютере. Это программный способ отладки. Он имеет много преимуществ: позволяет выполнять эмуляцию работы устройства в пошаговом режиме; просматривать содержание регистров общего назначения, регистров ввода/вывода, состояния портов, периферийных устройств микроконтроллера и т.д; видеть работу устройства в динамике, просматривать осциллограммы сигналов в любой точке схемы и измерять временные параметры сигналов. В случае обнаружения ошибок алгоритма эмулятор в специальном окне может указать тип ошибки и рекомендации на ее устранение.

Существует целый ряд программных пакетов (эмуляторов и симуляторов), обеспечивающих отладку программного обеспечения микроконтроллеров, например: AVR Studio, Code Vision, Proteus, Binder, Visual Micro Lab и т.д.

1 Программный пакет “Visual Micro Lab”

Visual Micro Lab (в дальнейшем будем называть VMLAB) - это программный пакет, предназначенный для отладки программного обеспечения и моделирования работы радиоэлектронных устройств, в состав которых входят AVR микроконтроллеры. Его часто называют виртуальной лабораторией или эмулятором. VMLAB легко связывается с ассемблерными и СИ компиляторами, от которых выгодно отличается наличием:

· мощного многооконного текстового редактора;

· символического отладчика;

· смешанного режима аналогово-цифрового моделирования;

· качественного контроля кода.

VMLAB обеспечивает Вас виртуальной лабораторией для разработки проектов на микроконтроллерах, в которой аппаратные средства и программное обеспечение вашего проекта моделируются совместно, что позволяет вам без единой пайки проверить работоспособность вашего будущего устройства. Visual Micro Lab позволяет решать проблемы по поиску багов (ошибок) в программном коде. Исходный файл для него это непосредственно hex файл прошивки (можно подключать и файл ассемблера *.asm). Эмулятор позволяет работать с светодиодами, использовать осциллограф, изменять программно температуру, частоту кристалла, и параллельно наблюдать как это скажется на других параметрах (например, ток потребления), наблюдать что творится в регистровом файле, в памяти EEPROM, наблюдать значения регистров периферийных устройств микроконтроллера.

Описание Toolbar

Toolbar – это ряд кнопок в верхней части главного окна, которые представляют часто используемые команды VMLAB. Один щелчок левой кнопки мышки по одной из кнопок Toolbar – это быстрая альтернатива выбору команды из меню. Кнопки на Toolbar могут быть активны или неактивны в зависимости от режима работы программы. В таблице 1.1 приведено описание функций кнопок Toolbar.

Таблица 1.1 – Описание функций кнопок Toolbar

Кнопка Действие Эквивалент меню
Основные команды (директивы) VMLAB - student2.ru Создать новый текстовый файл File|New
Основные команды (директивы) VMLAB - student2.ru Открыть файл File|Open
Основные команды (директивы) VMLAB - student2.ru Сохранить файл активного редактора File|Save
Основные команды (директивы) VMLAB - student2.ru Открыть проектный файл Project|Open project
Основные команды (директивы) VMLAB - student2.ru Скопировать текст в буфер обмена Edit|Copy
Основные команды (директивы) VMLAB - student2.ru Вставит текст из буфера обмена Edit|Paste
Основные команды (директивы) VMLAB - student2.ru Отменить предыдущее действие Edit|Undo
Основные команды (директивы) VMLAB - student2.ru Искать текст Search|Find
Основные команды (директивы) VMLAB - student2.ru Повторить поиск, найти и заменить Search|Next
Основные команды (директивы) VMLAB - student2.ru Перейти к следующей метке Search|Find next error
Основные команды (директивы) VMLAB - student2.ru Перейти к предыдущей метке Search|Find previous error
Основные команды (директивы) VMLAB - student2.ru Построить базу данных Project|Build
Основные команды (директивы) VMLAB - student2.ru Начало/продолжение моделирования Run|Go / Continue

Продолжение табл. 1.1

Основные команды (директивы) VMLAB - student2.ru Перейти к следующей инструкции, пропустить подпрограмму Run|Step over
Основные команды (директивы) VMLAB - student2.ru Перейти к следующей инструкции, пропустить подпрограмму Run|Step over
Основные команды (директивы) VMLAB - student2.ru Перейти к следующей инструкции не пропускать подпрограмму Run|Step into
Основные команды (директивы) VMLAB - student2.ru Выйти из подпрограммы Run|Step out
Основные команды (директивы) VMLAB - student2.ru Остановка моделирования Run|Pause program
Основные команды (директивы) VMLAB - student2.ru Легкий рестарт, сохранить ОЗУ Run|Restart (light)
Основные команды (директивы) VMLAB - student2.ru Глубокий рестарт, установить ОЗУ в ?? Run|Restart (deep)
Основные команды (директивы) VMLAB - student2.ru Включение/выключение анимации кода Run|Animate code
Основные команды (директивы) VMLAB - student2.ru Печать активного окна File|Print
Основные команды (директивы) VMLAB - student2.ru Отобразить (вызвать) помощь Help|Contenst
Основные команды (директивы) VMLAB - student2.ru Выбор рабочего стола (None)


Работа с VMLAB

VMLAB - инструмент отладки и моделирования программного обеспечения радиотехнических устройств, собранных на AVR микроконтроллерах. Чтобы промоделировать работу разрабатываемого устройства в VMLAB, найти и устранить синтаксические ошибки и ошибки алгоритма программы, исследовать временные диаграммы работы устройства и при необходимости откорректировать их, а также получить готовые файлы прошивки (программирования) FLASH памяти и памяти EEPROM микроконтроллера, необходимо выполнить следующие этапы:

Этап 1. Создание “Нового проекта”. Для создания нового проекта необходимо открыть меню “Project”, а дальше выбрать строку “New project”. При этом откроется новое окно специального программного модуля “Create new project” (см. рис. 1.1). Далее, для запуска программного модуля “Create new project” в режиме программирования на языке Assembler, необходимо выполнить минимум 4 основных шага установок, которые показаны на рис. 1.1:

– шаг 1. Определение имени проекта и каталога (папки) где он будет размещаться. Для этого необходимо установить курсор на кнопку “Enter name …” и выполнить щелчок левой кнопки мышки. При этом открывается стандартное окно навигатора Windows, в котором можно выбрать диск, каталог для размещения проекта и определить имя проекта (проектного файла). Имя проекта должно иметь не более 8 символов (латинских букв и цифр);

– шаг 2. Выбор типа микроконтроллера, на котором будет создан проект. Для этого необходимо установить курсор на кнопку окна “Select micro” как показано на рис. 1.1 и выполнить щелчок левой кнопки мышки. При этом открывается окно с перечнем возможных типов микроконтроллеров. Далее необходимо выбрать нужный контроллер и выполнить щелчок левой кнопки мышки. В окне “Select micro” появится тип выбранного контроллера;

Основные команды (директивы) VMLAB - student2.ru

Рис 1.1 – Вид окна “Create new project” и порядок действий для открытия проекта

– шаг 3. Определение имени программного файла. После выполнения шага 1, в котором было определено имя проектного файла, в окне “Add source code file” появится такое же имя и для программного файла, только с расширением .asm. Далее Вы, при необходимости, можете изменить в этом окне имя программного файла и нажать на кнопку “Add this”. Если Вы согласны с предложенным именем программного файла, то сразу жмите на кнопку “Add this”, как показано на рис. 1.1;

– шаг 4. Создание проекта с заданными параметрами. Для пуска программного модуля “Create new project” необходимо установить курсор на кнопку “ОК” и выполнить щелчок левой кнопки мышки (см. рис. 1.1) . При этом на рабочем столе VMLAB появятся два окна:

– “Project file”, окно проектного файла (файл с расширением .prj);

– “Code Notebook”, окно программного файла (файл с расширением .asm).

В дальнейшем вся работа с проектом будет связана с этими окнами. Если проект уже был создан ранее, то для продолжения работы с ним необходимо использовать кнопку Toolbar Основные команды (директивы) VMLAB - student2.ru “Открыть проект” или команду меню “Project/Open project”.

Этап 2. Разработка “Проектного файла”. Проектный файл представляет собой обычный текстовый файл, в котором с помощью специальных директив (команд) разработчик описывает принципиальную схему разрабатываемого радиоэлектронного устройства. То есть, в проектном файле сообщается тип используемого микроконтроллера, схема и напряжение его питания, прописываются аппаратные средства и компоненты (радиоэлектронные элементы, аналоговые и цифровые устройства) с которыми будет работать микроконтроллер, определяются выводы портов микроконтроллера, к которым подключены указанные аппаратные средства.

При создании нового проекта, программный модуль “Create new project” создает минимальный проектный файл, в котором прописаны тип используемого микроконтроллера, стандартная схема его питания и частота тактирования равная 1,0 МГц, имена программного файла и файла прошивки, а также время наблюдения, равное 250 мс. Теперь разработчик должен установить свои параметры схемы включения и тактирования микроконтроллера, а также подключить к микроконтроллеру необходимые радиоэлектронные элементы и компоненты.

Для упрощения процедуры подключения радиоэлектронных элементов и компонентов можно использовать меню Компонентов (“Components”). Основные правила подключения элементов и компонентов к микроконтроллеру будут описаны далее.

При выполнении компиляции, в проектном файле могут быть обнаружены ошибки. В этом случае VMLAB сообщает разработчику о характере ошибок и их местоположение (номер строки) в специальном окне “Messages”.

Этап 3. Разработка “Программного файла”. Программный файл отображается в окне “Code Notebook” и представляет собой (в нашем случае) программу функционирования разрабатываемого радиоэлектронного устройства на языке низкого уровня программирования Assembler. При создании нового проекта программный модуль “Create new project” создает минимальный программный файл, в котором прописаны ряд директив ассемблера, создан модуль векторов прерывания и организован бесконечный цикл пустых операций. Такая программа ничего не выполняет, но по своей организации не имеет ошибок и может быть скомпилирована.

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

При компиляции программного файла, обо всех обнаруженных ошибках, VMLAB сообщает разработчику в специальном окне “Messages”.

Этап 4. Компиляция проекта. После окончания разработки проектного и программного файлов выполняется к компиляции и отладка проекта. Для этого можно использовать кнопку Toolbar Основные команды (директивы) VMLAB - student2.ru “Build” (Построить базу данных) или строку меню “Project | Build”. При этом выполняется проверка проекта на синтаксические ошибки. При обнаружении ошибок VMLAB сообщает разработчику в специальном окне сообщений “Messages”. Автоматический показ ошибок позволяет быстро найти их исправить. Для быстрого перехода непосредственно в исходную линию, ответственную за ошибку необходимо сделать двойной щелчок по ошибке.

Чтобы получить готовый отлаженный проект, вам придется, конечно, выполнить вышеописанную процедуру несколько раз, каждый раз исправляя возникающие ошибки. После устранения всех синтаксических ошибок проекта, VMLAB сообщает об этом в окне сообщений “Messages” присвоением разработчику медали.

Этап 5. Виртуальное моделирование работы устройства. Как только исправлены все ошибки, VMLAB активизирует кнопку Toolbar Основные команды (директивы) VMLAB - student2.ru (загорается зеленый сигнал светофора). Щелкните левой кнопкой на этой кнопке, чтобы начать моделирование вашей программы в автоматическом режиме. После этого Вы может наблюдать переменные, состояние регистрового файла, портов ввода/вывода, FLASH и EEPROM памяти, периферийных устройств, осциллограммы сигналов аппаратных средств, а также измерять временные параметры сигналов. Моделирование работы устройства можно, при необходимости, выполнять в пошаговом режиме (см. описание кнопок Toolbar). VMLAB позволяет также устанавливать специальные контрольные точки (точки останова), необходимые для детального анализа работы программы и состояния переменных в особых точках программы.

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

Этап 6. Программирование микроконтроллера. Когда выполнены все предыдущие этапа работы и программное обеспечение отлажено, VMLAB создает файл с расширением .HEX и файл с расширением .ЕЕР, готовые для прошивки (программирования) FLASH памяти и памяти EEPROM микроконтроллера. Для этого необходимо загрузить указанные файлы в специальную программу (например “PonyProg”) и с помощью программатора выполнить прошивку микроконтроллера.

Примечание: VMLAB можно использовать и как мощный редактор текста. Команды редактора: Новый файл Основные команды (директивы) VMLAB - student2.ru , Открыть файл Основные команды (директивы) VMLAB - student2.ru , являются всегда доступными, независимо от того есть ли открытый проектный файл или нет.

Проектный Файл

Проектный Файл – это текстовый файл с расширением .prj, который идентифицирует (описывает) состав элементов и аппаратных средства моделируемого устройства, а также программное обеспечение проекта. Проектный файл использует входной язык описания электронной схемы по типу языка SPICE. Входной язык подразумевает использование “входных карт” (“input cards”), или строк содержащих команду (директиву) и опции (параметры) этой директивы. После параметров в строке могут следовать комментарии, которые отделяются от директив знаком препинания “ ; ” (точка с запятой). Всегда, начиная от точки с запятой и до конца строки, идут комментарии. Анализатор “Проектного файла” игнорирует комментарии.

Очень важно понимать: эмулятор VMLAB – это не SPICE. Необходимо принимать во внимание то, что его единственное совпадение во входном синтаксисе написания проектного файла. В связи с этим возможность обмениваться информацией между указанными пакетами отсутствует. Синтаксис SPICE был принят для VMLAB потому, что это всемирный стандарт и позволяет смешивать аналоговые и цифровые компоненты.

Если строка проектного файла оказывается слишком длинная, чтобы быть удобочитаемой, то она может быть разделена на несколько строк, используя при этом знак в начале следующей линии “ + ”. См. этот пример:

P[<instName>] NRZ(<timeBit>) <nodeName> KEY_<keyNumber> “<pattern>”

[+ KEY_<keyNumber> “<pattern>”]

[+ RESET “<pattern>”

[+ ....]

В зависимости от первого символа (знака), с которого начинается строка проектного файла, их делят на три типа:

– строка комментарий, начинается с точки с запятой, например: ; проект А;

– строка директив, начинается с точки, например: .PLOT V(PA1);

– строка компонентов, начинается с буквы, например: R1 node1 node2 1K.

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

В строках директив и компонентов существует большое число опций (параметров), которые обычно имеют следующие значения:

– <modName>: имя модуля или файла модуля, которое удовлетворяет формату “8.3”, то есть, максимум 8 символов в названии файла и 3 символа для расширения (например: “Name­file.asm”).

– <nodeName>: любой идентификатор или число, (максимум 8 переменных);

– <powerNode>: любой из трех идентификаторов узлов питания: “VDD”, “VSS” и “GND” (или число 0 ). “VDD” и “VSS” являются линиями питания; “GND” (или число 0), является нулевым узлом или землей. “VSS” и “GND” не одно и то же (См. директиву .POWER);

– <instName>: любой идентификатор, начинающийся с буквы, (максимум 8 переменных). Имена не являются обязательными, и относятся к диалоговым компонентам.

– <value>: десятичное число, с или без десятичного знака. Они указывают значение элементов схемы. Числа могут иметь следующие суффиксы:

– p (pico) = x10e-12

– n (nano) = x10e-9

– m (mili) = x10e-3

– k (kilo) = x10e+3

– meg (mega) = x10e+6

Часто встречаемая ошибка состоит в том, что если написать “M” вместо “meg”, будет принято значение соответствующее суффиксу “mili”, а не для “mega”. Необходимо помнить, что компилятор не различает большие и маленькие буквы.

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

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

В Проектном Файле, по крайней мере, должны быть определены хотя бы две директивы: .MICRO и .PROGRAM. Если больше директив в проектном файле нет, VMLAB возьмет параметры по умолчанию. Приведем пример минимального проектного файла: .MICRO "Atmega8"

.PROGRAM "EXAMPLE.ASM"

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

Директива .CLICKTOOL

Эта директива позволяет запускать окно console/MS-DOS при нажатии на кнопку Основные команды (директивы) VMLAB - student2.ru , доступной в Toolbar. Команда необходима главным образом для использования внешних программ при программировании FLAHS и EPROM памяти микроконтроллеров.

Синтаксис: .CLICKTOOL <MS-DOS / console command line>

Пример: .CLICKTOOL "burn.exe –f myFile.hex"

Директива .CLOCK

Указывает VMLAB значение тактовой частоты, которая используется микроконтроллером при моделировании.

Синтаксис: .CLOCK <value>

Пример: .CLOCK 4meg

Директива .CLOCK является дополнительной. Если тактовая частота не указана, то она будет установлена по умолчанию, значение которой зависит от типа микроконтроллера. Значение тактовой частоты может быть изменено и позже в процессе моделирования в окне Control Panel. В зависимости от типа микроконтроллера диапазон рабочих частот в Control Panel ограничен.

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

Директива .MICRO

Указывает VMLAB микроконтроллер, используемый в проекте.

Синтаксис: .MICRO "<micro name>" ["<micro options>"]

Примеры: .MICRO "ST6210"

.MICRO "ST6225" "HWD"

.MICRO "AT90S8515"

.MICRO "Atmega8"

.MICRO "Atmega128" "BOOTRST=0"

Дополнительные опции зависят от типа микроконтроллера. В ST62 дополнительные опции используется для определения параметров сторожевого таймера, в AVR – для определения битов конфигурации. Директива .MICRO принудительна, и её использование допускается только один раз.

Директива .PLOT

Указывает VMLAB имена узлов, которые должны быть зарегистрированы и показаны в окне Scope (окно многолучевого осцилогрвфа).

Синтаксис: .PLOT V(<nodeName>) [V(<nodeName>) ...]

Пример: .PLOT V(node_1) V(PA0) V(PB0).

Директива .PLOT является дополнительной. Если она пропущена, не один сигнал не будет зарегистрирован. Многократные .PLOT директивы допускаются.

Директива .POWER

Директива .POWER устанавливает напряжение и схему питания микроконтроллера, то есть определяет значение узлов VDD и VSS относительно нулевого узла GND.

VMLAB имеет 3 глобальных узла питания: VDD, VSS и GND:

– GND – (или число 0), указывает абсолютное нулевое напряжение питания;

– VDD – положительный узел питания, или уровень "1" для логических элементов;

– VSS – отрицательный узел питания, или уровень "0" для логических элементов.

Синтаксис: .POWER VDD = <value> VSS = <value>

В нормальных условиях (или по умолчанию) VSS и GND узлы являются совпадающими. Но это не всегда так. Возможны следующие три альтернативные схемы питания микроконтроллеров.

Примеры: .POWER VDD=5 VSS=0 ; Положительное питание.

.POWER VDD=0 VSS=-5 ; Отрицательное питание

.POWER VDD=2.5 VSS=-2.5 ; двухполярное питание, GND - средняя точка.

.POWER директива является дополнительной. Если не указаны значения питающего напряжения, на контроллер подается питание по умолчанию VDD (5V) и VSS (0V).

Директива .RAMINIT

Эта директива позволяет инициализировать память микроконтроллера RAM определенными числами, перед стартом моделирования. По умолчанию, все ячейки памяти RAM устанавливаются как неизвестное число.

Директива .RAMINIT инициализирует только неизвестные ячейки памяти. Если ячейка памяти записана вручную перед стартом моделирования, это значение останется несмотря на значение, заданное в директиве .RAMINIT.

Синтаксис: .RAMINIT <value>

Параметр <value> – это целое число в диапазоне от 0 до 255. Заметьте, что значение должна быть написана в десятичном формате.

Пример: .RAMINIT 15 ; Установит RAM в значениях $0F

Директива .STORE

Устанавливает время эмуляции устройства, которое будет отображаться в окне Scope.

Синтаксис: .STORE <value>

Пример: .STORE 200m ; время хранения (отображения) в окне Scope 200 милисекунд.

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

Примечание: Установка большого времени моделирования или большого числа узлов наблюдения может привести к созданию большого файла в папке вашего проекта с расширением .dat. Это неизбежно сильно затормозит работу. Старайтесь выводить только необходимые сигналы и ограничивать время моделирования. Быстродействие осциллографа сильно зависит от конфигурации компьютера.

Директива .TAB

Позволяет определять остановки табуляторов для данного проекта. Эта директива полезна для изменения автоматических интервалов TAB согласно виду используемого программного кода. Например, 3 для кода C, или 6 для ассемблерного кода. Синтаксис: .TAB <integer 1 to 16>

Пример: .TAB 6

Директива .TARGET

Определяет имя целевого HEX файла, который будет дизассемблирован для моделирования работы устройства.

Синтаксис: .TARGET <fileName>

Пример: . TARGET "myFile.hex"

Эта директива принудительна только при использовании "GENERIC" или "GCC" типа файлов. При использовании файла типа "ASM" необходимость в директиве .TARGET отпадает, первое имя файла в директиве .PROGRAM с расширением HEX будет использоваться как целевой файл.

Директива .TOOLCHAIN

Определяет тип файла, который будет использоваться для генерации целевого (исполняемого файла). Возможны три параметра:

"ASM": Стандартный ассемблерный код.

"GCC": GNU C компилятор.

"GENERIC": тип кода Generic.

Синтаксис: .TOOLCHAIN {<"ASM">, <"GCC">, <"GENERIC">}

Пример: .TOOLCHAIN "GCC"

Эта директива является дополнительной. Если директива отсутствует, то по умолчанию будет использоваться "ASM" тип кода.

Директива .TRACE

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

Синтаксис: .TRACE

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

Директива .SOURCE

Определяет список файлов, которые будет загружены в окне Code Notebook. Эта директива действительна для "GCC" и "GENERIC" типов файлов. Не используйте эту директиву вместе с директивой .PROGRAM.

Синтаксис: .SOURCE <fileName> [<fileName> ...]

Пример: .SOURCE "file1.c" "file2.c" "file3.c"

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

Пример: .SOURCE "file1.c" "file2.c" "file3.c"

+ "file4.c" "file5.c" "file6.c"

+ "file7.c"

Директива .STATS

Эта директива обеспечивает выполнения команды "View|Execution Stats". Она должна использоваться в комбинации с директивой .TRACE.

Синтаксис: .STATS

Примечание: Директива .STATS устанавливает запись данных с момента начала моделирования. Поскольку моделирование может длиться очень долго, то будет создан огромный файл trace.dat. Используйте эту директиву с осторожно!

Директива .PROGRAM

Директива .PROGRAM определяет, что целевое программное обеспечение (исполняемый файл загружаемый в микроконтроллер), необходимо генерировать, используя тип файла "ASM" (стандартный ассемблер изготовителя). VMLAB имеет собственный компилятор, с помощью которого создается .HEX файл, который в конечном счете используется для программирования микроконтроллеров.

Все файлы, определенные здесь будут загружены в окно Code Notebook.

Синтаксис: .PROGRAM "<modName>" ["<modName>" [:"<link options>"]

Примеры: .PROGRAM "example.asm"

.PROGRAM "example.hex"

Название первого файла определяет название исполняемого файла (с расширением .HEX), если .TARGET директива опущена. Первый и второй примеры выполнят загрузку исполняемого файла с одинаковым именем "example.hex".

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

Директива .GCCPATH

Определяет путь к компилятору кода GCC. Эта директива действительна, если определен тип кода "GCC".

Синтаксис: .GCCPATH <путь>

Пример: .GCCPATH "C:\WINAVR\"

При использовании GCC типа кода, и отсутствии этой директивы, VMLAB примет по умолчанию "C:\AVRGCC\" как путь к компилятору для GCC.

Директива .GCCMAKE

Определяет файл, который используется компилятором GCC как "make" файл (файл конфигурации). Файл может быть создан вручную, или в автоматическом режиме. Если выбран автоматический режим, то VMLAB автоматически будет создавать этот файл.

Синтаксис: .GCCMAKE {<имя файла>, AUTO}

Примеры: .GCCMAKE "myMake.mak" ; Создание файла вручную

.GCCMAKE AUTO ; Автоматическое создание файла

Директива .BAT

Определяет MS-DOS или консольное управление с помощью BAT файла, будет выполнена, чтобы скомпилировать необходимый HEX и COFF файлы.

Эта директива действительна только с "GENERIC" типом файла.

Синтаксис: .BAT <имя файла>

Пример: .BAT "fileName.bat"

Эта директива является дополнительной. Если она опущена, VMLAB предположит, что HEX и COFF файлы были уже построены, и необходима только загрузка.

Директива .COFF

Определяет COFF файл (файл формата объекта), в котором хранится символическая информацию, необходимая для отладки. Эта директива должна использоваться только с "GENERIC" типом файла.

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

Синтаксис: .COFF <имя фала>

Пример: .COFF "fileName.cof"

Resistor (Резистор)

Синтаксис: R[<instName>] <nodeName> <nodeName> <value>

Пример: R1 node1 node2 10k ; резистор 10 кОм

R2 nodeА VSS 100 ; резистор 100 Ом

VDD, VSS и GND являются зарезервированными именами узлов питания.

Примечание: Не допускается использование нулевого резистора.

Sine wave voltage generator

(Источник синусоидального напряжения)

Синтаксис:

V[<instName>] <nodeName> <powerNode> SIN(<vOffset> <vAmplitude> <frequency>)

Пример: Vsin PA0 VSS sin(2.5 2.5 10K)

Примечание: Второе название узла должно быть всегда VDD, VSS или GND.

LCD module (модуль ЖКИ)

При использовании LCD дисплея внешний вид Control Panel изменится, и появится дополнительная панель (см. рис. 2.7), вид которой будет определяться параметрами ЖКИ индикатора, описанными в проектном файле.

Синтаксис:

X[<instName>] LCD(<chars> <lines> <osc_freq>) <RS> <RW> <E> <D7>...<D0>

Компонент LCD моделирует контроллер ЖКИ типа HD44780 фирмы Hitachi. Доступные комбинации знаков и строк: 8x1, 8x2, 16x1, 16x2, 16x4, 20x1, 20x2, 20x4, 24x2 и 40x2.

Основные команды (директивы) VMLAB - student2.ru

Рисунок 2.7 – Внешний вид контрольной панели с компонентом LCD

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

Пример: X1 LCD(24 2 250K) PD2 PB0 PD3 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0

Модуль LCD допускает работу как с 8 битным, так и с 4 битным интерфейсами данных. Используйте 4-ый битный интерфейс, чтобы экономить выводы портов. Рекомендуется использовать окно с логфайлом, чтобы отслеживать данные переданные в LCD и действия в окне сообщений.

Примечание: Для описания команд LCD, и т.д., см. любую из многих публикаций, связанных с контроллером ЖКИ HD44780.

Редактор текста VMLAB

VMLAB содержит встроенный редактор текста (похож на Microsoft Office Word), обеспечивающий стандартные функции Windows, а так же много дополнительных возможностей. Одновременно можно открыть много файлов, и много окон. Окна редактора могут быть разделены (горизонтально или вертикально), позволяя показать две различных секции вашего файла (команды разделения, доступны по нажатию на правую кнопку мыши).

Классические действия “Copy/Cut/Paste” (Копировать/Вырезать/Вставить) могут применяться к выделенным фрагментам текста. Выделение позволяет очищать выбранные строки текста, или перемещать текст. Чтобы воспользоваться “Copy/Cut/Paste” нажмите правую кнопку мыши (вызов меню).

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

В VMLAB редакторе нет придела отмены выполненных операций. После данной операции значение будет возвращено в предыдущее.

Файлы, определенные директивами “.PROGRAM” и “.SOURCE” в проектном файле расположены в специальном окне “Code Notebook”. Это – специально выделенное окно, которое позволяет легко следить за всеми модулями вашего кода без потребности переключения между окнами. Любой файл из окна “Code Notebook” может быть открыт и в дополнительном окне текстового редактора.

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

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

Зарезервированные слова, константы (числа, строки), комментарии и директивы могут быть окрашены или вынесены на первый план согласно пользовательскому предпочтению. См. меню “Options | Editor | Colors”.

Если Вы предпочитаете работать с другим редактором текста, VMLAB позволяет это. Продолжайте использование редактора VMLAB для отладки: набора контрольных точек, ссылок рассматривающих переменных, и т.д. Чтобы работать с внешним редактором, используйте команды: “File | Reload / Reload All”.

Когда файл был изменен с другим редактором, и необходимо обновить его в редакторе текста VMLAB, то используйте следующую команду: “File | Automatic Reload”.

Если установлен режим “Automatic Reload”, то когда будет обнаружено различие в любом файле, он автоматически будет обновляться в редакторе VMLAB. При использовании другого редактора текста рекомендуется всегда использование “Automatic Reload”.

Рабочие столы и окна VMLAB

Специфическую комбинацию расположения рабочих окон на экране монитора называют рабочим столом. На рабочем столе можно открыть несколько рабочих окон, установить необходимые размеры, а также выбрать удобное их взаимное расположение. При закрытии проекта конфигурация рабочих столов сохраняется, что очень удобно при работе с VMLAB.

Окно Project File

Окно “Project File” – специальное окно VMLAB (см. рис. 4.1), в котором отображается и доступен для редактирования проектный файл. В этом окне пользователь формирует описание функциональной схемы проекта и устанавливает его основные параметры.

Основные команды (директивы) VMLAB - student2.ru

Рисунок 4.1 – Вид окна Project File”с директивами и компонентами

Окно Code Notebook

Окно “Code Notebook” - специальное окно редактора (см. рис. 4.2), в котором отображаются файлы, прописанные в проектном файле как программный код, будь то HEX или ASM файлы.

Основные команды (директивы) VMLAB - student2.ru

Рисунок 4.2 – Вид окна “Code Notebook” с директивами и командами

VMLAB автоматически загружает файлы в окно “Code Notebook” если они были прописаны в директиве “.PROGRAM”. Это окно позволяет редактировать ассемблерный код, и тут же моделировать работу процессора.

Окно Scope

Окно “Scope” – это окно осциллографа (см. рис. 4.3), показывающее эпюры напряжения аппаратных средств проекта. В окне регистрируется как работа микроконтроллера, так и работа других устройств и узлов, описанных в проектном файле.

Основные команды (директивы) VMLAB - student2.ru

Рисунок 4.3 – Вид окна “Scope” с эпюрами в контрольных точках

Осциллограф обеспечивает следующие функции:

– отображение и навигацию эпюр напряжения аппаратных средств;

– вертикальную и горизонтальную прокрутки содержимого окна;

– кнопки увеличения, уменьшения масштаба;

– измерение интервалов времени;

– и другие функции.

Окно “Scope инициализируется директивой VMLAB “.PLOT”. Также работу осциллографа затрагивают следующие директивы

Наши рекомендации