MPLAB — это интегрированная среда разработки (IDE) для семейства микроконтроллеров PICmicro компании Microchip Technology Incorporated. которая разрешает писать, отлаживать и оптимизировать программы для разработок, выстроенных на микроконтроллерах данного семейства.
Рисунок 10 — Схема полного проекта, выстроенного при помощи MPLAB
MPLAB представляет собой законченную среду разработки, интегрируя пара инструментальных средств:
- MPLAB менеджер проектов (project Manager). Употребляется для проектов и работы со связанными файлами.
- MPLAB редактор (Editor). Употребляется для и редактирования текстовых файлов, таких как исходные и файлы сценариев компоновки.
- MPLAB-SIM симулятор (Simulator). Разрешает моделировать входные выходные и выполнение/команд сигналы микроконтроллеров.
- MPLAB-ICE внутрисхемный эмулятор (Emulator). Разрешает, применяя компьютер и дополнительные аппаратные средства, заменять микроконтроллер в разрабатываемом устройстве в настоящем времени. MPLAB-ICE самый новый эмулятор от Microchip.
- MPASM универсальный ассемблер.
- MPLINK компоновщик (linker). формирует законченное приложение, связывая перемещаемые модули MPASM, MPLAB-C17, и MPLAB-C18
- MPLIB руководит пользовательскими библиотеками.
- MPLAB-CXX компилятор C. Разрешает включать в проект исходные тексты написанные на языке большого уровня С и на ассемблере.
- PRO MATE II и PICSTART Plus программаторы.
- PICMASTER и PICMASTER-CE внутрисхемные эмуляторы.
- Инструментальные средства вторых производителей.
В общем случае, схема полного проекта в, выстроенного при помощи MPLAB возможно представить следующем образом:
Рабочая область пакета на MPLAB рисунке 11.
Рисунке 11 — Главная панель управления IDE MPLAB
1.6.1. Панель управления
Главная панель управления имеет следующие вкладки.
Меню File
Это стандартное меню со стандартными пунктами для управления файлами проекта. Пункты Export и Import предназначены для обмена данными между внешними устройствами и компьютером (симулятор, эмулятор).
Меню Project
Пункты для управления конфигурацией и проектом. Изменение установок созданного проекта Edit Project. Make Project — компилировать все исходные файлы для одного hex файла, Build All — компилировать все файлы, Build Node — компилировать один выборочный файл. Меню Install Language Tool предназначено для конфигурации языка и выбора программирования.
Меню Edit
Также стандартное меню для управления буфером обмена, и для поиска, замены текста и другого
Меню Debug
По окончании компилирования проекта Вы, точно, захотите видеть как Ваш код выполняется. В большинстве случаев, разрабатываемое устройство не будет трудиться верно, как Вы желаете. Исходя из этого придется код отлаживать. Вы имеете возможность применять MPLAB-SIM для симулирования работы микроконтроллера либо внутрисхемный эмулятор (что вряд ли в отечественных условиях, к примеру PICMASTER стоит порядка $4000), таковой, как MPLAB-ICE. PICMASTER и др. В любом случае нужно будет останавливать работу и замечать состояние регистров микроконтроллера и делать в походовом режиме.
Меню Debug содержит все опции, каковые Вы станете применять при отладке Вашего кода с симулятором либо эмулятором:
- Меню Run. Опции этого меню разрешают руководить исполнением программы.
Run (F9) — запуск исполнения в постоянном режиме (с применением эмулятора в настоящем времени, с применением симулятора с максимальной скоростью).
Reset (F6) — сброс.
Halt (F5) — остановить исполнение программы.
Halt Trace (Shift + F5) — остановить трассировку безостановочно исполнения программы.
Animate — запуск в постоянном режиме, но с возможностью замечать изменение значений регистров и памяти в ходе. Подобно постоянному нажатию на кнопку пошагового исполнения.
Step (F7) — выполнить одну команду и остановиться.
Step Over (F8) — также самое, но не опускаться в подпрограммы (выполняются в постоянном режиме).
Update All Registers — обновить все регистры для текущей команды.
Change Program Counter — поменять программный счетчик. Возможно ввести числовой адрес, а возможно ввести метку.
- Меню Execute.
Execute an Opcode — выполнить введенную Вами команду.
Conditional Break — делать программу в постоянном режиме пока не выполнится введенное Вами условие либо не будет надавлен Halt . При выборе данной опции откроется окно для конфигурирования.
- Меню Simulator Stimuls. Разрешает имитировать внешние сигналы на входных выводах (портах) микроконтроллера. MPLAB не разрешает изменять состояние портов как вторых регистров. С одной стороны это вызывает кое-какие неудобства, но с другой имеются достаточно замечательные средства моделирования входных сигналов:
Asynchronous Stimulus Dialog — опция разрешает устанавливать постоянные логические уровни на входных выводах
Pin Stimulus Files — подключение особого текстового файла (расширение .sti) обрисовывающего изменение внешних сигналов на входных выводах микроконтроллера.
Register Stimulus Files — подключение текстового файла (расширение .направляться), обрисовывающего изменение регистр (8 бит). В большинстве случаев употребляется при отладке аналого-цифрового преобразования.
Clock Stimulus — опция разрешает имитировать периодические сигналы.
- Меню Center Debug Location. Переместить указатель текущей делаемой команды в центр окна. Трудится с окнами исходных файлов, абсолютного листинга и программной памяти.
- Меню Breakpoint Settings. Конфигурация точек останова (прерывания). Возможно устанавливать до 16 точек. Возможно установить при достижении адреса либо других случаев и области. В случае, если останов в выбранной точке не происходит, то удостоверьтесь в надежности установлен ли соответствующий флаг в окне конфигурации (OptionsDevelopment Mode). Еще точку останова возможно установить щелкнув правой кнопки мыши на нужной строчке исходного файла и выбрав Break Point(s), но эти установки сбрасываются при каждом перекомпилировании проекта.
- Меню Trace Point Settings. Конфигурация трассировки, другими словами записи в соответствующем окне последовательности делаемых команд.
- Меню Trigger In/Out Settings и Trigger Out Point Settings. Вероятны при работе с внутрисхемным эмулятором и руководят конфигурацией прерывания по внешним сигналам и др.
- Меню Clear All Points. Очистить все трассировки и установленные точки останова.
- Меню Complex Trigger Settings и Enable Code Coverage. Для работы с эмулятором.
- Меню Clear Program Memory (Ctrl+Shift+F2). Очистить память программ.
- Меню System Reset (Ctrl+Shift+F3). Системный сброс. Пересбрасывается MPLAB, симулятор либо подключенный эмулятор. После этого производится инициализация всего оборудования как при старте MPLAB.
- Меню Power-On-Reset (Ctrl+Shift+F5). Сброс отлаживаемого устройства (симулятор либо эмулятор), подобный состоянию при подачи напряжения питания.
Меню PICSTART Plus
Меню управления и конфигурации фирменным программатором PICSTART Plus. При его отсутствии кроме этого не доступно.
Меню Option
Меню для конфигурирования самого MPLABа. Включает в себя следующие опции:
- Меню Development mode. Раскрывается окно для конфигурирования микроконтроллера в проекте. Информация из этого окна употребляется симулятором либо эмулятором при отладке. Устанавливается тип отладчика, тип тактового генератора (осциллятора), частота, конфигурация внешнего сброса (MCLR), точек останова, сторожевого таймера и др.
- Меню Window setup. Запись (save) и считывание (load) конфигурации MPLAB, и установка по умолчанию (default).
- Меню Current editor settings.Конфигурация встроенного редактора, вида вывода файла на принтер, типа файла.
- Меню Reset editor modes. Скинуть установленную конфигурацию редактора и установить конфигурацию по умолчанию.
- Меню Environment setup(Ctrl+F7). Раскрывается окно с несколькими вкладками для конфигурирования самого MPLABа. Тут присутствуют следующиев кладки:
General Options — установка системного шрифта, размещения панели инструментов, количества знаков для символьных переменных и меток и некоторых установок при загрузке MPLAB.
Project Template Options — расположения языка файлов и установка программирования при создании нового проекта (как бы установки по умолчанию).
Files — выбор папки, которая будет предлагаться по умолчанию при записи и загрузке. Возможно установить как последнюю к которой было обращение (самый комфортно) либо как одну определенную заблаговременно. И еще количество файлов, каковые будут предлагаться открыть как чаще всего употребляемые (для стремительного открытия).
Default Editor Modes — установка конфигурации встроенного редактора для новых файлов.
Key Mappings — конфигурирование тёплых клавиш для стремительного вызова либо каких-либо действий.
Colors — установка цветовой гаммы для текста, выделенного текста, точек останова, трассировки и др.
- Меню Programmer options. Выбор программатора, его выбор и конфигурация порта для подключения.
Меню Tools
Опции меню разрешают запустить файлы в ДОС строчке и контролировать возможность обмена информацией с эмуляторами устройствами (и внешними программаторами).
Меню Window
MPLAB снабжает окна для обзора программной памяти, содержимого стека и содержимого регистров. Внимание: дабы открыть системное меню для трансформации отображаемых данных в открытом окне щелкните левой кнопки мыши в верхнем левом углу этого окна. Все опции меню Window дешёвы в режиме симулятора (виртуального отладчика) либо внутрисхемного эмулятора. В режиме Editor Only доступны лишь: окно Безотносительного Листинга и окно перечня знаков (simbol list). Подробнее об вероятных опциях:
- Program Memory — окно памяти программы
Trace Memory — окно результатов трассировки. В случае, если счетчик программы (PC) попадает в область, отмеченную для трассировки, то в этом окне сохраняется порядок исполнения команд. - EEPROM Memory — окно просмотра содержимого EEPROM (Электрически программируемая область памяти, сохраняется при отключении питания. Присутствует в кристаллах, содержащих в обозначении букву F, к примеру 16F84).
- Calibration Data — окно просмотра калибровочных данных
- Calibration Memory — окно просмотра калибровочной памяти для кристаллов, содержащих таковую (PIC14400, к примеру)
- Absolute Listing — окно просмотра безотносительного листинга — полного отчета о компилировании. Полезно просматривать при поиске неточностей.
- Map File — окно просмотра схемы памяти. По умолчанию данный файл при компилировании не генерируется. Дабы он был дешёв при вызове, нужно привести к окну редактирования проекта ProjectEdit Project, подсветите выходной HEX-файл и выберите его свойства Node Properties. В открывшемся окне поставьте галочку в графе ON для Cross Reference File и в графе DATA введите имя файла с именем Вашего проекта и расширением MAP, к примеру myprog.map. По окончании трансформаций перекомпилируйте проект.
- Stack-просмотр стека, другими словами точек входа в подпрограммы. Не следует забывать, что у некоторых микроконтроллеров глубина стека всего 2 (к примеру, PIC16C505). Это значит, что возможно вызывать лишь одну подпрограмму из подпрограммы. При третьем вызове информация о возврате теряется и программа будет трудиться самым неожиданным образом!
- File Registers- окно просмотра содержимого регистров неспециализированного назначения (RAM). Не забудьте, что вид просмотра возможно выбрать из меню, щелкнув в левом верхнем углу окна.
- Special Function Registers — окно просмотра регистров особого назначения (SFR).
- Show Symbol List(Ctrl+F8) — окно перечня знаков. Все применяемые переменные, регистры, метки, константы и др.
- Stopwatch — окно просмотра временных параметров. Показывает тактовую частоту (выставляется в окне конфигурации микроконтроллера) и время прошедшее В первую очередь исполнения программы либо с момента обнуления в микросекундах и тактах. Весьма комфортно при отладке программы, в то время, когда употребляются счетчики, таймеры, прерывания и все, связанное со временем.
- Project Window — окно файла проекта. Включает пути к файлам, подключенные файлы, даты и вторая информация.
- Watch Windows — меню управления окнами просмотра, каковые возможно выяснить самостоятельно. При редактировании и создании окна Вы определяете какие конкретно регистры и в каком виде показывать. Эти окна возможно также сохранить в папке Вашего проекта для применения. Комфортно при отладке, в то время, когда нужно держать перед глазами содержимое некоторых регистров. Примечание: при двойном щелчке на адресе регистра вызывается окно модификации для трансформации содержимого. Нужно подчернуть, что так нельзя менять содержимое портов микроконтроллера
- Modify — окно модификации регистров. Возможно ввести полный адрес, возможно имя переменной либо регистра. Возможно выбрать тип модифицируемой памяти и заполнить область.
- Tile Horizontal, Tile Vertical, Cascade, Iconize All, Arrange Icons — опции управления открытыми окнами: упорядочить по горизонтали, по вертикали, уложить каскадом, свернуть все.
- Open Windows — скоро открыть какое или загруженное и свернутое окно. При громадном количестве файлов проекта оказывается весьма комфортно.
Меню Help
Вызов справок и помощи. Полная уникальная фирменная информация на английском. В случае, если что-то не ясно, то в любой момент возможно в том месте отыскать.
1.6.2. Панель инструментов (Toolbar)
Панель инструментов является рядом кнопок для стремительного вызова тех либо иных функций либо исполнения каких-либо действий. Существует 4 комплекта кнопок для различных действий: для редактирования, отладки, управления проектом и для определения пользователем. Для конфигурирования панели инструментов выберите OptionEnvironment Setup и вкладку General. На ней возможно выбрать расположение панели (вверху, слева, справа) либо, надавив кнопку Layout, добавить либо убрать кнопки.
В случае, если навести указатель мыши на какую-либо кнопку, то внизу окна MPLAB в строчке состояния покажется ее описание. Вот назначение кнопок панели инструментов:
— поменять комплект кнопок панели инструментов (Edit, Debug, Project, User Default). назначение кнопок и Графическое обозначение в соответствии с каждой панелью представлены в таблице 3.
Таблица 3. назначение кнопок и Графическое обозначение
1.6.3. Представление чисел
В исходном тексте воображать числа возможно по-различному и в различных совокупностях счисления:
Таблица 4. Метод представления чисел
ФОРМАТ | СИНТАКСИС | ПРИМЕР |
Десятичный | D’число’, число | D’100′, 100 |
Шестнадцатиричный | H’число’, 0xчисло | H’f9′, 0xAF00 |
Восьмиричный | О’число’ | O’777′ |
Бинарный | B’число’ | B’11110000′ |
Символьный | ‘знак’, A’знак’ | ‘C’, A’C’ |
1.6.4. Директивы языка MPASM
Директивы ассемблера находятся в тексте исходного файла для расширения функций ассемблера, определения и управлением процессом. Неспециализированное правило — директивы не должны размешаться в первой позиции строчка в тексте (в противном случае будут выяснены как метка).
Таблица 5. Директивы языка MPASM
ДИРЕКТИВА | ОПИСАНИЕ | ПРИМЕР |
Директивы управления | ||
CONSTANT | Определение символьной константы | constant cnt=255 |
#DEFINE | Определение текстовой последовательности для замены | #define snd portsnd, 1 |
END | Финиш блока программы | end |
EQU | Определение константы | temp equ 0xF0 |
ERROR | Сообщение о неточности | error error line |
ERROR LEVEL | Установка типа сообщений об неточностях в файле ошибок и файле листинга | errorlevel 1, -202 |
INCLUDE | Засунуть второй файл источника | include |
LIST | Определение формата (тип микроконтроллера, количество знаков в строчке, табуляция и другое см. MPASM Help) либо разрешает вывод, в случае, если было предварительно не разрещаеться | list p=17c42, f=INHX32, r=DEC |
MESSG | Создать пользовательское сообщение | messg see here! |
NOLIST | Запретить вывод | nolist |
ORG | Установить начальный адрес программы | org 0x100 |
PAGE | Засунуть страницу в файл листинга | page |
PROCESSOR | Установить тип микроконтроллера | processor 16F84 |
RADIX | Установить совокупность счисления по умолчанию для выражения данных | radix dec |
SET | Определение константы. Подобна EQU, но в последствии возможно переопределить | temp set b’00110011′ |
SPACE | Засунуть безлюдные строчки в файл листинга | space 3 |
SUBTITLE | Засунуть второй заголовок в файл листинга | subtitle Main Project |
TITLE | Засунуть заголовок в файл листинга | title Project Of PIC |
#UNDEFINE | Удаление определенной текстовой последовательности | #undefine snd |
VARIABLE | Определение символьной переменной | variable temp=0xF0 |
Условия | ||
ELSE | Начало блока другого условия (IF) | else |
ENDIF | Завершение блока условия | endif |
ENDW | Завершение цикла До тех пор пока | endw |
IF | Начало блока условия | if version == 100 |
IFDEF | Выполнить, в случае, если выяснено | ifdef testing |
IFNDEF | Выполнить, если не выяснено | ifndef testing |
WHILE | Цикл До тех пор пока | while i count |
Эти | ||
CBLOCK | Определение блока констант | cblock 0x20 |
__CONFIG | Описание бит конфигурации микроконтроллера | __config H’FFFF’ |
DATA | Создание числовых и текстовых данных | txt data please, 0x30 |
DB | Определение байта данных | temp db 0xFF |
DE | Определение данных в EEPROM | temp de 0xF0, 0xF1 |
DT | Определение таблицы | temp dt text, 0, 0x30 |
DW | Определение слова (2 байта) данных | temp dw 39, text |
ENDC | Окончание блока констант | endc |
направляться | Заполнение области константой | fill 0x1009, 5 |
__IDLOCS | Определение ID | __idlocs H’FFEE’ |
RES | Резервирование памяти | buffer res 64 |
Макросы | ||
ENDM | Окончание макроса | endm |
направляться | Выход из макроса | exitm |
EXPAND | Полный текст макроса в файле листинга | expand |
LOCAL | Определение локальной переменной в макросе | local leng, tmp |
MACRO | Определение макроса | out_sym macro temp |
NOEXPAND | Не разворачивать макрос | noexpand |
Таблица 6. Арифметические операторы MPASM.