Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по VMLab.doc
Скачиваний:
82
Добавлен:
17.02.2016
Размер:
736.77 Кб
Скачать

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"