Теоретические сведения. Симулятор VMLab предлагает разработчикам программ для микроконтроллеров AVR широкие возможности по отладке программыСимулятор VMLab предлагает разработчикам программ для микроконтроллеров AVR широкие возможности по отладке программы, симуляции работы контроллера и его периферии. Проект в VMLab представляет собой текстовый файл с расширением.prj, который может быть создан в любом текстовом редакторе. Этот файл содержит описание типа и частоты работы контроллера, элементов подключаемых к контроллеру, а также написанные на специальном языке команды симулятору. Для создания нового проекта, предназначенного для совместной работы с проектом программы, написанной на языке С в среде Code Vision AVR C Compiler, необходимо выбрать в меню Project-New project. В появившемся окне нужно: 1) нажать кнопку Enter name/browse /create directory, выбрать папку, в которой будет сохранен файл проекта (желательно его сохранить в одной папке с проектом программы для МК), и ввести имя файла, например vmlab; 2) выбрать микроконтроллер в списке Select micro. 3) нажать кнопку Browse+add выбрать файл программы с расширением .С, имеющий в конце имени символы подчеркивания, например «1__.с». 4) в поле Target hex file нужно ввести имя файла-прошивки, созданного в Code Vision AVR C Compiler, например 1.hex; 5) установить переключатель Any 3rd party high level language generating COFF и ввести в поле COFF file name имя файла с расширением.cof, сгенерированного в среде Code Vision AVR C Compiler для симуляторов. В результате этих манипуляций окно примет вид, приведенный на рисунке 1. Основными окнами симулятор VMLab являются: окно редактора проекта, окно, отображающее текст исходной программы на языке С, панель управления (Control panel), виртуальный осциллограф (Scope) и окно просмотра значений переменных (Watch). Включение отображения этих и других нужных окон можно осуществить в меню View.
Файл нового проекта содержит следующие строки: ; ************************************************************ ; PROJECT: ; AUTHOR: ; ************************************************************ ; Micro + software running ; ------------------------------------------------------------ .MICRO " ATmega8" .TOOLCHAIN " GENERIC" .TARGET " 1.hex" .COFF " 1.cof" .SOURCE " 1__.c" .TRACE; Activate micro trace ; Following lines are optional; if not included ; exactly these values are taken by default ; ------------------------------------------------------------ .POWER VDD=5 VSS=0; Power nodes .CLOCK 1meg; Micro clock .STORE 250m; Trace (micro+signals) storage time ; Micro nodes: RESET, AREF, PB0-PB7, PC0-PC6, PD0-PD7, ACO, TIM1OVF, ADC6, ADC7 ; Define here the hardware around the micro ; ------------------------------------------------------------ Обратите внимание на установку частоты работы МК «.CLOCK 1meg». После создания нового проекта, необходимо описать элементы схемы, подключаемые к МК, которые принципиально существенны для симуляции. Для ускорения процесса описания симулятор содержит шаблоны типичных конструкций в меню Components. Предположим, что к выводам РВ0 и РВ1 контроллера через резисторы сопротивлением 470 Ом подключены светодиоды, как показано на рисунке 2. Рисунок 2 – Схема подключения светодиодов Тогда в файл проекта необходимо добавить следующие строки: D1 VDD node1 R1 PB0 node1 470
D2 VDD node2 R2 PB1 node2 470 Здесь node1 и node2 обозначают точки соединения светодиодов и резисторов. Их имена выбраны произвольно. После этого светодиоды D1 и D2 панели управления окажутся подключенными к указанным выводам контроллера. Важно, что при таком включении, если на выводах МК будет высокий уровень сигнала, светодиоды светиться не будут, а если низкий – будут. Допустим, что к выводу PD1 МК подключен ключ, соединенный с землей (здесь - VSS). Опишем подключение кнопки К1 к выводу PD1: K1 PD1 VSS LATCHED Здесь параметр LATCHED задает один из трех режимов работы кнопки: normal – ключ замкнут до тех пор, пока нажата кнопка, latched – при нажатии кнопки состояние ключа изменяется на противоположное и monostable(timeval) – ключ замкнут в течение заданного промежутка времени. Отслеживать уровни сигналов на выводах контроллера с помощью светодиодов удобно как при работе реальной схемы, так и в симуляторе, однако, очень часто в процессе отладки очень удобно использовать виртуальный осциллограф. Для включения отображения уровней напряжения на интересующих ножках контроллера в файл проекта нужно добавить: .PLOT V(PB0) V(PB1) V(PD1) Окно осциллографа позволяет включить режим отображения всего сигнала, задать масштабы отображения по осям, установить 2 временных курсора и вычислить временное расстояние между ними (cursors delta time), что может быть очень полезно при отладке программы. После того как описание схемы и настройка проекта закончена нужно выбрать Project-Re-build all (Shift+F9). Теперь можно начинать симуляцию. Для симуляции используется кнопка Начать-продолжить и кнопки пошаговой симуляции . Для остановки симуляции используется кнопка паузы . С помощью кнопок можно произвести «легкую» (с сохранением информации в RAM) либо «глубокую» перезагрузку МК. Очень удобно работать со средой Code Vision AVR C Compiler и VMLab одновременно. В Code Vision AVR C Compiler можно оперативно внести изменения в исходный текст программы и откомпилировать её, после чего в VMLab можно перекомпилировать проект (Project-Re-build all) и произвести симуляцию работы контроллера уже с новой программой.
|