- •Введение
- •1 Программный пакет “Visual Micro Lab”
- •1.1 Описание Toolbar
- •1.2 Работа с vmlab
- •1.3 Проектный Файл
- •1.4 Основные команды (директивы) vmlab
- •2 Библиотека компонентов и аппаратных средств
- •2.1 Resistor (Резистор)
- •2.2 Grounded capacitor (Заземленный конденсатор)
- •2.3 Switch / key, button activated (Выключатель / ключ, кнопка)
- •16-И кнопок управления (выключателей/ключей)
- •2.4. Led diode (Управляемый светодиод)
- •2.5 Pulsed voltage generator (Импульсный источник напряжения)
- •2.6 Sine wave voltage generator
- •2.7 Interactive slider dependant voltage generator
- •2.8 Interactive nrz digital pattern generator.
- •2.9 Operational amplifier (opamp) (Операционный усилитель)
- •2.14 Lcd module (модуль жки)
- •2.15 I2c monitor (i2c диалоговый монитор)
- •2.16 4X4 keypad matrix (Диалоговая вспомогательная клавиатура 4x4)
- •3 Редактор текста vmlab
- •4 Рабочие столы и окна vmlab
- •4.1 Как использовать рабочие столы?
- •4.2 Окно Project File
- •4.3 Окно Code Notebook
- •4.4 Окно Scope
- •4.5 Окно Watch
- •4.6 Окно Messages
- •4.7 Окно Control Panel
- •4.8 Окно Registers / Flags
- •4.9 Окно Data memory
- •4.10 Окно Program memory
- •4.11 Окно eeprom
- •Содержание
1.4 Основные команды (директивы) vmlab
Перечень основных директив VMLAB наведен в таб. 1.2.
Таблица 1.2 – Перечень основных директив VMLAB
Общие директивы |
Директивы ассемблерного кода |
Директивы C компилятора (GCC) |
Директивы кода Generic |
.CLICKTOOL .CLOCK .MICRO .PLOT .POWER .RAMINIT .STORE .TAB .TARGET .TOOLCHAIN .TRACE .SOURCE .STATS |
.PROGRAM
|
.GCCPATH .GCCMAKE
|
.BAT .COFF
|
Теперь приведем описание основных директив VMLAB, которое представим в следующем формате: назначения директивы, ее формат и синтаксис, пример написания.
Директива .CLICKTOOL
Эта директива позволяет запускать окно console/MS-DOS при нажатии на кнопку , доступной в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"