Какой тип обмена используется в системной магистрали ISA? |
Разработка программного обеспечения для PIC-микроконтроллеров
6.2.2. Компоновщик MPLINK
Абсолютный (неперемещаемый) код программы генерируется непосредственно при ассемблировании и располагается в программной памяти в порядке следования операторов программы. Операторы перехода на метку сразу же заменяются соответствующим кодом перехода на адрес метки.
При генерации перемещаемого кода каждая секция программного кода должна предваряться директивой CODE. Окончательное размещение программных кодов, расстановку физических адресов переходов выполняет компоновщик MPLINK.
Компоновщик MPLINK выполняет следующие задачи:
- распределяет коды и данные, т.е. определяет, в какой части программной памяти будут размещены коды и в какую область ОЗУ будут помещены переменные;
- распределяет адреса, т.е. присваивает ссылкам на внешние объекты в объектном файле конкретные физические адреса;
- генерирует исполняемый код, т.е. выдает файл в формате .hex, который может быть записан в память МК;
- отслеживает конфликты адресов, т.е. гарантирует, что программа или данные не будут размещаться в пространстве адресов, которое уже занято;
- предоставляет символьную информацию для отладки.
Для более подробного изучения работы компоновщика следует обратиться к специальной литературе.
6.2.3. Менеджер библиотек MPLIB
Менеджер библиотек позволяет создавать и модифицировать файлы библиотек. Библиотечный файл является коллекцией объектных модулей, которые размещены в одном файле. MPLIB использует объектные модули с именем типа "filename.o" формата COFF (Common Object File Format).
Использование библиотечных файлов упрощает компоновку программы, делает ее более структурированной и облегчает ее модификацию.
6.2.4. Симулятор MPSIM
Симулятор MPSIM представляет собой симулятор событий, предназначенный для отладки программного обеспечения PIC-контроллеров. MPSIM моделирует все функции контроллера, включая все режимы сброса, функции таймера/счетчика, работу сторожевого таймера, режимы SLEEP и Power-down, работу портов ввода/вывода.
MPSIM запускается из командной строки DOS, конфигурируется пользователем и непосредственно применяет выходные данные ассемблера MPASM.
Перед использованием симулятора необходимо отассемблировать исходный файл <file_name>.asm и получить файл объектного кода в формате INHX8M, создаваемый MPASM по умолчанию:
MPASM <file_name>.asm <RETURN>
Чтобы запустить симулятор, необходимо набрать в командной строке
MPSIM<RETURN>.
Вид экрана, получаемого при запуске MPSIM, показан на рис. 6.2. Экран разделен на три части, или окна. В верхнем окне показано текущее состояние моделирования, включая моделируемую программу, тип МК, число выполненных командных циклов и затраченное на них время. Среднее окно используется для вывода содержимого регистров пользователя. Набор регистров и формат выводимых на экран данных определяются файлом MPSIM.INI, который далее будет описан подробнее. Нижнее окно содержит приглашение на ввод команд, а также текущие операции и результат их выполнения.
При запуске симулятор MPSIM начинает искать командный файл MPSIM.INI. Этот текстовой файл создается пользователем и используется для задания всех задействованных в программе параметров.
Один из примеров файла MPSIM.INI приведен ниже.
; MPSIM file for user4 P84 ;использование МК семейства PIC16C84 SR X ;представление данных в 16-ричном формате ZR ;сброс регистров МК в нуль ZT ;сброс таймера в нуль RE ;сброс времени выполнения команды и счетчика циклов V W,X,2 ;вывод регистра W в hex формате на два знакоместа AD F1,X,2 ;вывод на экран регистра TMR0 в hex формате на два знакоместа AD F2,X,3 ;вывод на экран регистра PCL в hex формате на три знакоместа AD F3,B,8 ;вывод на экран регистра STATUS в bin формате на восемь знакомест AD IOA,X,2 ;вывод на экран регистра TRISA в hex формате на два знакоместа AD F5,X,2 ;вывод на экран регистра порта A в hex формате на два знакоместа SC 1 ;установка тактовой частоты 1 МГц RS ;сброс МК LO user4Пример 12.1. Пример файла MPSIM.INI
В представленном файле указаны: тип микроконтроллера, система счисления данных по умолчанию, регистры, содержимое которых выводится на экран, способ представления данных, рабочие параметры. Любая команда, которая исполняется MPSIM, может быть задана в файле MPSIM.INI, который определяет начальное состояние программы. При работе MPSIM создает файл MPSIM.JRN, в котором сохраняются все сведения о нажатии клавиш в процессе работы.
В файле MPSIM.INI допускается вводить комментарии, которые даются после знака ";", но не допускается использование пустых строк.
Основные команды, применяемые в симуляторе MPSIM, приведены в табл. 6.6. Когда эти команды вводятся в сеансе работы с MPSIM, они заносятся в файл MPSIM.JRN, который используется при создании расширенного файла MPSIM.INI. Данный файл можно задействовать для выявления ошибок и обеспечения нормального выполнения программы после исправления кода.
Для моделирования внешних тестовых событий (воздействий) на моделируемый МК используются файлы стимуляции с расширением .STI. Эти файлы используются MPSIM для того, чтобы обеспечить подачу однократных и повторяющихся входных сигналов в процессе выполнения программы. При этом можно наблюдать на экране, как МК реагирует на сигналы.
В качестве примера ниже приведен файл для тестирования программы, выполняющей опрос состояния линии 1 порта A.
! test1.STI STEP RA1 1 1 !Установка на входе RA1 состояния "1" 200 0 !Поступление на вход RA1 сигнала "0" 1000 1 !Переход сигнала на входе RA1 в "1" 1200 0 !Повторная подача нулевого сигнала
Файл воздействия состоит из множества состояний, для которых задается параметр STEP, определяющий число циклов, в течение которых поддерживается указанное состояние. Он позволяет одновременно подавать сигналы на различные выводы МК. В файле воздействия можно указать любой вывод МК, в том числе и вывод сброса ( _MCLR ). Для обозначения комментариев используется знак !.