Тема 12 .Разработка и отладка программ в симуляторе ADSIM812
Разработка программного обеспечения включает следующие этапы:
1.Подготовка программы на алгоритмическом языке с использованием текстового редактора.
2.Трансляция программы в объектный ( двоичный) код.
3.Отладка программы с помощью программного отладчика (симулятора), в качестве которого используется симулятор ADSIM812, рассмотренный
далее.
4.Загрузка объектного кода в память микроконтроллера.
5.Проверка правильности работы программы при выполнении ее в контроллере.
Симулятор ADSim812
ADSim812 поставляется фирмой Analog Devices, чтобы помочь в оценке, разработке и отладке кода для микроконтроллера AduC812. В то время как не возможно полностью смоделировать AduC812 платформу ,этот симулятор подходит так близко как приемлемо возможно к моделированию платформы и сможет сделать работу по оценке и разработке программ для AduC812 намного проще.
Рассмотрим состав , основы организации и функционирования основных модулей микроконтроллера , используемых в курсовой работе. Для разработки программного обеспечения контроллера пользователь симулятора должен выбрать набор модулей , необходимых для выполнения заданных функций и их отладки. Модули выбираются из меню симулятора View.
Основным модулем любого контроллера является центральное процессорное устройство (ЦПУ), обеспечивающее выполнение логических и арифметических операций и обозначенное в симуляторе как SFR Window (рис.10) .
Рис. Модули ЦПУ и портов симулятора
ЦПУ представлен множеством регистров R0…R7, программно доступных пользователю посредством системы команд. В любой из регистров ЦПУ можно записать или изменить значение операнда на любой стадии отладки программы . Для этого необходимо подвести курсор мыши к регистру , кликнуть левой клавишей и затем записать требуемое значение.
Основной рабочий регистр ЦПУ – аккумулятор Acc ,используемый всегда для хранения результата операции и одного из операндов при выполнении операций , а также для обмена информацией с периферийными устройствами, подключаемыми к контроллеру через порты P0…P3 .
Регистр B используется в основном при выполнении операций умножения , деления и некоторых других действий.
PSW – регистр признаков результата операции ,хранит флажки (Flags) – признаки результата операции, используемые для выполнения разветвлений в программе командами условных переходов. Наиболее активно используемым флажком в курсовой работе является флажок переноса(CY) из старшего разряда аккумулятора.
SP – указатель стековой памяти, в котором хранится адрес верхней ячейки стека. Отличием стековой памяти от памяти с произвольным доступом к ячейкам памяти является то, что в стеке используется следующий принцип доступа: данное , записанное в стек первым , можно прочитать только последним, а указатель стека SP ,выполняющий функцию регистра адреса стека , изменяется автоматически при обращении к стеку для формирования адреса следующей ячейки памяти. Подобный механизм доступа к стеку называют сокращенно LIFO (Last Input First Output – «последним записан первым прочитан»).
Регистр PC используется для хранения адреса выполняемой команды программы, после выполнения которой в PC будет сформирован адрес следующей команды.
Регистры IP иIE используются при обработке запросов прерывания и позволяют задать приоритеты каждому из прерываний и разрешить их обработку в ЦПУ соответственно.
Остальные регистры ЦПУ в данной работе не используются и поэтому здесь не обсуждаются.
Для подключения к контроллеру датчиков и устройств ввода и вывода данных в модели имеются порты ввода (Input Ports) и порты вывода (Output Ports). При отладке программы в порты ввода можно загрузить входные данные и стартовать выполнение программы. Выходные сигналы , поступающие в порты вывода, к которым подключены ИМ, формируются моделируемой программой. Основной набор периферийных устройств контроллера можно классифицировать следующим образом:
ПУ для связи с пользователем: клавиатура, индикаторы, принтеры, кнопки сброса контроллера и т.п.
Для хранения основного набора данных в контроллере имеется резидентная память данных (РПД) , модель которой приведена на Рис.
В меню View РПД обозначена как IRAM (Internal RAM). В любой из адресов РПД также ,как и в регистр, можно записать 8-битные исходные данные. Дело в том , что в симуляторе нельзя моделировать входные данные, поэтому они предварительно должны быть записаны или в ячейки памяти РПД , или в порт ввода , к которому в реальной системе подключены датчики цифровых и аналоговых сигналов, а также другие устройства ввода. Таким образом разработчик программ сам определяет набор исходных данных, имитируя ,тем самым , работу датчиков.
Адреса ячеек РПД начинаются с кода 00, в первой строке представлено 16 ячеек памяти (00H –0FH), в следующей строке – следующие 16 ячеек(10H-1FH) и т.д. Следует заметить, что в симуляторе все данные и адреса представлены в 16-ричной системе счисления (H –Hexidecimal).
Команды программы хранятся в резидентной памяти программ РПП, обозначенной в симуляторе Code Memory (Рис. 12), являющейся постоянной памятью. Каждая команда в РПП хранится в следующем формате:
Адрес РПД(Address):Метка (Label):Код Операции(Op Codes):Инструкция(Instruction).
Следует отметить, что команда может занимать в РПП от одного до трех байтов, что необходимо учитывать при оценке длины программы. Отлаживаемую в симуляторе программу можно выполнять в следующих режимах:
автоматический режим выполнения программы полностью;
выполнение программы отдельными фрагментами до точки останова (Breakpoint), количество точек останова неограниченно. Для определения точки останова необходимо выделить требуемый адрес команды и кликнуть мышью на кнопке (Toggle Breakpoint). При этом адрес команды останова будет помещен в квадратные скобки;
Рис. Модель резидентной памяти данных РПД.
Время выполнения моделируемой программы определяется симулятором автоматически. Для оценки времени необходимо вызвать из меню View программу анализа (Program Analysis) и снять показание.
Рис. Модуль резидентной памяти программ контроллера РПД.
Дата добавления: 2016-03-22; просмотров: 1300;