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

1158

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

Символьная информация для отладки, содержащаяся в COFF-файле, позволяет VMLAB обеспечивать следующие возможности:

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

Смешанный Ассемблер/Cи вывод на дисплей. Окно Program Memory показывает вам объединенное представление исходного файла на языке Cи

иэквивалентных команд трансляции. Контекстное меню (правая кнопка) позволяет выполнить некоторые утилиты: сохранить дизассемблированный код и расположить данную строку в редакторе.

Поддерживается формат Extended-COFF. Cи-компиляторы, подобно

CodeVision или ImageCraft, производят файлы типа Extended-COFF (AVRStudio 4 совместимые), оптимизированные для выполнения на МК

AVR.

Советы:

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

2.Директива .BAT опциональна. В MS-DOS/CONSOLE пакетном файле типа .bat можно указать команды, определенные в продуктах сторонних производителей, при условии что они могут работать с консолью MS-DOS.

3.Для GCC рекомендуется использовать директиву .TOOLCHAIN ‘GCC’.

6 . СОЗДАНИЕ НОВОГО ПРОЕКТА

6.1. Создание нового проекта по шагам

Чтобы создавать новый проект, необходимо только написать новый ПФ (тип .PRJ). ПФ могут быть написаны непосредственно в текстовом редакторе на пустом месте или скопированы/измены из других (существующих) .PRJ-файлов.

Команда Project | New Project упрощает процесс создания нового ПФ, обеспечивая возможность создать по шаблону простые файлы на языках Ассемблере и Cи. Следуйте за шагами в диалоговом окне Create new project (рис. 19).

Шаг 1. Выберите или создайте рабочий каталог, где будут расположены все файлы (.PRJ код и т.д.). Удобно, чтобы был создан каталог для каждого проекта, хотя это не обязательно. Можно использовать один каталог для всех проектов.

Рис. 19. Шаблон для создания нового проекта по шагам

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

Шаг 3. Выберите программные средства, которые нужно использовать, это обычно спецификации файлов (toolchain): стандартный Ассемблер производителя, GCC/WinAVR и Generic COFF.

Шаг 4. Добавьте файлы кода. Напечатайте в блоке редактирования (Code files list), и используйте кнопку Add, чтобы добавить новые файлы кода, которые должны быть созданы. Используйте кнопку Browse + Add, чтобы добавить уже существующие имена файлов. Используйте кнопки Delete и Delete all, чтобы выполнить исправления. Используйте также блок редактирования Target File, чтобы изменить конечный HEX-файл (имя всегда заданно по умолчанию). Полный список файлов кода будет в конечном счете приведен в .PROGRAM- или .SOURCE-директивах, в зависимости от выбранного набора файлов. Этот шаг дополнительный, если вы работаете с GENERIC COFF-based toolchain и используете

VMLAB только как отладчик (EXE + COFF-файлы, созданные внешним IDE). Если шаг 4 опущен, директива SOURCE не будет выполнена, а VMLAB загрузит исходные файлы, указанные в COFF-файле.

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

Советы:

Все файлы кода плюс PRJ-файл должны быть в одном и том же каталоге. Только включаемые (include) файлы, упомянутые в проектном коде, могут быть в других каталогах.

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

При работе с GCC/WinAVR вы можете смешивать Cи исходные тексты (расширение .C) с файлами кода трансляции (расширение .S). VMLAB произведет автоматически минимальный файл шаблона в зависимости от расширения.

Включаемые файлы (типов .h, .inc,) могут также быть добавлены как файлы кода. В таком случае они будут загружены в окно Code Notebook. Это можно сделать вручную, напечатав их имена в параметрах директив

.PROGRAM или .SOURCE.

Пример:

.SOURCE "myCode1.c" "myInclude1.h" "myInclude2.h"

6.2. Оптимизация работы VMLAB

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

Частота синхронизации. Быстрее частота медленнее моделирование: гораздо большее количество шагов моделирования необходимо выполнить, чтобы продвинуться на единицу времени.

Порты МК. Чем больше число портов, тем медленнее моделирование. Обратите внимание, что каждый порт электрический узел схемы, который должен быть обсчитан.

Аналоговая схема. Чем более сложная схема вокруг МК, тем медленнее моделирование ( по очевидным причинам).

Восстановление окон. Время работы центрального процессора, затраченное на регенерацию различных окон, добавляется ко времени моделирования. Используйте команду Options | Display Control, чтобы настроить производительность.

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

используют автоматический запуск после успешного выполнения.

См. Options | Code Maker;

используют автоматическую загрузку файлов кода. См. Options | Code Maker (установлена по умолчанию);

подавляют предупреждающие сообщения при модификации кода.

См. Options | Editors | Behavior during simulation;

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

6.3. Работа с двумя микроконтроллерами (режим Multiprocess)

VMLAB позволяет имитировать работу двух приложений с разными МК параллельно, допуская обмен цифровыми сигналами между обоими процессами, через интерфейсы UART, SPI и т.п. соединения. Оба приложения могут быть построены с использованием разных МК, работающих с разными частотами синхронизации, разных наборов файлов проекта и т.п. Если два приложения VMLAB должны работать параллельно, для каждого должен быть собственный файл .PRJ.

Как запускать два приложения параллельно

Зайдите в командное меню Multiprocess |Start 2nd VMLAB. Эта команда начнет второе приложение VMLAB, на экране появится второе главное окно VMLAB 2 (Multiprocess) (рис. 20). В этом режиме оба окна присутствуют на экране монитора компьютера. Текст заголовков окон:

VMLAB 1 (Multiprocess) и VMLAB 2 (Multiprocess).

Загрузите и скомпилируйте каждое приложение отдельно.

Когда оба приложения будут работать без ошибок, щелкните на кнопке «Запуск» (зеленый светофор), оба приложения начнут работать синхронно.

При прогоне в режиме Multiprocess команды запуска и перезапуска (Go и Restart) в обоих приложениях эквивалентны: щелчок на кнопке в одном окне перешлет команду другому окну.

В пошаговом режиме прерывание на следующей инструкции будет только в окне, где щелкнули по кнопке «Выполнить шаг» (Step). Очевидно, другой MK не может прерываться на границе инструкции, поскольку частоты синхронизации могут быть разными.

Рис. 20. Экран монитора при работе в мультипроцессном режиме

Ограничения:

Анимация кода не поддерживается в режиме Multiprocess.

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

Режим Multiprocess значительно замедляет моделирование из-за необходимости обеспечения связи между процессами и синхронизации.

7. ПРИМЕРЫ ПРОЕКТОВ

Пример написания проектного файла

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

приведена электрическая схема, формирующая три синусоидальные напряжения: U, V и W, сдвинутые на угол 120о. Для этого используется микроконтроллер AT90S8515 с подсоединенной к нему электрической схемой (см. рис. 21).

Кнопка «Реверс» меняет последовательность фаз для осуществления реверса электродвигателя, она подсоединена ко входу РВ7 порта В.

Сопротивлениями R3 и R6 можно изменять амплитуду и частоту синусоидальных напряжений. Они подсоединены к мультиплексированному входу АЦП через выводы РА0 и РА1 порта А.

Опорное напряжение АЦП подается на вход AREF МК через делитель на сопротивлениях R1 и R2 от напряжения питания VDD.

VDD

R3

 

 

 

 

PA0

«Амплитуда»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R6 PA1

«Частота»

PB7

R11

K1 «Реверс»

AREF

R1 1k

R2 100k

VSS VSS

R8 100k

U

 

 

 

 

 

 

 

 

 

PD4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C4 100n

 

 

 

 

 

 

 

 

 

 

 

 

R4

10k

 

 

 

 

 

 

 

 

 

 

 

 

R9

100k

 

 

 

V

 

 

 

 

 

 

 

 

 

 

 

PD5

 

 

 

 

 

 

 

C5 100n

 

 

 

 

 

 

 

 

 

 

 

 

 

R5 10k

 

 

 

 

 

 

 

 

 

 

 

 

 

W

 

 

R10 100k

 

 

 

 

 

 

 

 

 

PD7

 

 

 

 

 

 

 

 

 

C7 100n

 

 

 

 

 

 

 

 

 

 

 

R7 10k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Neutral

 

 

 

 

 

 

 

 

 

AT90S8535

Рис. 21. Электрическая схема устройства на базе микроконтроллера

На выходах PD4, PD5 и PD7 порта D МК выводит импульсы напряжения, промодулированные по ширине по синусоидальному закону. К этим выводам подсоединены RC-цепочки, которые сглаживают импульсы и формируют синусоидальные напряжения на узлах U, V и W.

К этим узлам подсоединены 3 резистора для получения напряжения нейтрали.

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

1.Название.

2.Назначение устройства.

3.Марка микроконтроллера.

4.Подключаемые файлы.

5.Другие директивы, определяющие параметры моделирования.

6.Описание электрической схемы.

7.Перечень сигналов, выводимых на экран виртуального осциллографа.

8.Другие указания комментарии.

Листинг проектного файла:

;*********************************************************

;Генератор трехфазного напряжения

;Этот проект предназначен для моделирования устройства,

;вырабатывающего трехфазное напряжение с управлением

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

;Синусоидальные напряжения фаз сдвинуты на угол 120о.

; *********************************************************

.MICRO "AT90S8535" ; объявление используемого МК

.PROGRAM "svm116sp.asm" ; указание исходного файла

.TRACE

; Активизация трассировки

.POWER VDD=5 VSS=0 ; Узлы напряжения питания

.CLOCK 8meg

; частота синхронизации МК = 8 МГц.

.STORE 250m

; Время записи трассировки 250 мс.

;

 

;В этом примере к МК подключаются 2 переменных резистора

;для управления амплитудой и частотой. Их работа моделируется

;передвижением движков S1 и S2 на панели управления.

;Изменение амплитуды в пределах 2,5 – 5 В.

;Кнопка К1 на панели управления используется для переключения

;последовательности фаз напряжений (реверса электродвигателя).

V1 PA0 VSS SLIDER_1 (2.5 5) ; Регулятор «Амплитуда» V2 PA1 VSS SLIDER_2 (2.5 5) ; Регулятор «Частота»

K1 PB7 VSS LATCHED

; Кнопка «Реверс»

R1 PB7 VDD 10K

; Резистор для подачи напряжения на кнопку

Rref1 VDD AREF 1K

; Резисторы для подачи опорного напряжения

Rref2 AREF VSS 100K

; на АЦП

;

 

 

;Следующие элементы электрической цепи используются для

; сглаживания напряжений фаз ( RC-фильтры нижних частот)

R4

PD4 PhaseU 10k

; Подключение сопротивления 10 кОм.

R5 PD5 PhaseV 10k

 

R7 PD7 PhaseW 10k

 

C4

PhaseU VSS 100n

; Подключение конденсатора 100 нФ.

C5 PhaseV VSS 100n

 

C7 PhaseW VSS 100n

 

R8

PhaseU Neutral 100k

 

R9

PhaseV Neutral 100k

 

R10 PhaseW Neutral 100k

.plot v(PhaseU) v(PhaseV) v(PhaseW) ; Вывод на экран виртуального

;осциллографа напряжений фаз U, V и W.

Чтобы посмотреть данный проект, в работе нужно:

1.Запустить программу VMLAB: ПУСК | Все программы | VMLAB.

2.В главном окне VMLAB открыть данный проект: Project | Open Project. Открыть первый файл C:\ LAB\AVR_demo\3phase.prj.

3.Включить команду Build из меню Project или нажать кнопки на панели инструментов.

4.Включить команду Go из меню Run или нажать кнопки на панели инструментов.

На экране компьютера должны быть окна Scope и Control Panel. Если их нет, то включите их через меню View. В окне Scope появятся 3 фазы напряжения. В окне Control Panel вы можете при помощи указателя мышки передвигать движки переменных резисторов S1 и S2, меняя амплитуду и частоту напряжений. Также при помощи мышки можно переключать последовательность фаз, нажимая на кнопку 1 вспомогательной клавиатуры 4х4 в панели управления (рис. 22 и 23).

На рис. 22 видно, что фаза U опережает фазу V, которая опережает фазу W. При этом частота и амплитуда напряжений минимальна (на экране осциллографа укладывается 2 периода синусоид).

На рис. 23 видно, что фаза W опережает фазу V, которая опережает фазу U. При этом частота и амплитуда синусоидальных напряжений примерно в 2,5 раза больше, чем на рис. 22.

PHASEU

PHASEV

PHASEW

Рис. 22. Окна осциллографа и панели управления с нажатой кнопкой 1

PHASEU

PHASEV

PHASEW

Рис. 23. Окна осциллографа и панели управления с отпущенной кнопкой 1 и поднятыми движками переменных резисторов S1 и S2

Примеры, содержащиеся в папке VMLAB

Примеры проектов находятся в папке, созданной при инсталляции программы VMLAB, по умолчанию эта папка находится на диске С:

C: \ VMLAB\

VMLAB примеры для МК AVR:

Имеются два каталога, содержащие демонстрационные примеры:

C: \ < инсталляционная директория > \AVR_DEMO

содержит

несколько примеров на Ассемблере для МК AVR.

 

C: \ < инсталляционная директория > \WinAVRdemo

содержит

несколько примеров на Cи для AVR, основанные на популярном WinAVR GCC пакете.

Примеры для МК ST62 фирмы ST Microelectronics:

Имеются три каталога, содержащие демонстрационные примеры:

C: \ < инсталляционная директория> \ST6_DEMO содержит несколько

примеров, основанных на микроконтроллере ST62.

 

C: \ < инсталляционная директория > \DEMOK25

содержит

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

C: \ < инсталляционная директория > \TUTORIAL содержит учебник по VMLAB, состоящий из шести примеров: STEP01. PRJ, STEP02. PRJ, STEP03. PRJ, STEP04. PRJ, STEP05. PRJ, STEP06. PRJ

Если вы не знаете МК ST62, то откройте/запустите эти проекты и просмотрите .PRJ- и .ASM-файлы. Они заполнены большим количеством комментариев, что позволит просмотреть особенности работы VMLAB.

Контрольные вопросы

1.Каковы назначение и возможности Visual Micro Lab?

2.Что такое виртуальная модель?

3.Каков порядок работы с VMLAB?

4.Какие режимы МК не моделируются Visual Micro Lab?

5.Как можно просмотреть и изменить содержание ячеек памяти МК?

6.Какие настройки есть у виртуального осциллографа?

7.Как запустить инспектор отладки?

8.Какова структура проектного файла?

9.Каковы возможности автоматизации создания проектного файла?

10.Каковы назначение и возможности панели управления?

11.Какие Си-компиляторы поддерживает VMLAB?

12.Как смоделировать передачу информации между двумя МК?

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