Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Интегрированная среда разработки (IDE) MPLAB



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 - подключение текстового файла (расширение.reg), описывающего изменение регистр (8 бит). Обычно используется при отладке аналого-цифрового преобразования.

Clock Stimulus - опция позволяет имитировать периодические сигналы.

· Меню Center Debug Location. Переместить указатель текущей выполняемой команды в центр окна. Работает с окнами исходных файлов, программной памяти и абсолютного листинга.

· Меню Breakpoint Settings. Конфигурация точек останова (прерывания). Можно устанавливать до 16 точек. Можно установить при достижении адреса или области и других случаев. Если останов в выбранной точке не происходит, то проверьте установлен ли соответствующий флаг в окне конфигурации (Options> Development 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 - окно просмотра схемы памяти. По умолчанию этот файл при компилировании не генерируется. Чтобы он был доступен при вызове, надо вызвать окно редактирования проекта Project> Edit 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 набора кнопок для разных действий: для редактирования, отладки, управления проектом и для определения пользователем. Для конфигурирования панели инструментов выберите Option> Environment Setup и вкладку General. На ней можно выбрать месторасположение панели (вверху, слева, справа) или, нажав кнопку Layout, добавить или убрать кнопки.

Если навести указатель мыши на какую-либо кнопку, то внизу окна MPLAB в строке состояния появится ее описание. Вот назначение кнопок панели инструментов:

- сменить набор кнопок панели инструментов (Edit, Debug, Project, User Default). Графическое обозначение и назначение кнопок в соответствии с каждой панелью представлены в таблице 3.

Таблица 3. Графическое обозначение и назначение кнопок

Кнопка панели Действие Кнопка панели Действие
Панель Edit Панель Debug
создать новый файл запустить программу в непрерывном режиме
открыть файл остановить выполнение программы
сохранить файл выполнить очередную команду
вырезать выделение в буфер выполнить команду, не опускаясь в подпрограммы
копировать выделение в буфер сброс микроконтроллера
вставить из буфера модифицировать счетчик программы (PC)
печать выполнить введенную команду
поиск текстовой последовательности создать новое окно просмотра
повторить последний поиск модифицировать регистр, переменную
поиск и замена текстовой последовательности установить точку останова
повторить поиск и замену текстовой последовательности установить точки трассировки
вернуться на одно действие назад установить защелки
сдвинуть строку вправо на расстояние табуляции очистить все точки останова, трассировки, защелки
сдвинуть строку влево не расстояние табуляции условная точка останова
переместиться на строку с номером... остановить трассировку
включить нумерацию строк в файлах системный сброс
вызвать справку MPLAB вызвать описание версии MPLAB
создать проект открыть проект
открыть проект сохранить проект
закрыть проект поиск текстовой последовательности
сохранить проект вырезать выделение в буфер
редактировать проект копировать выделение в буфер
компилировать проект вставить из буфера
компилировать все исходные файлы сохранить файл
компилировать один исходный файл запустить программу в непрерывном режиме
установить язык проекта остановить выполнение программы
вызвать помощь по ассемблеру MPASM выполнить очередную команду
    выполнить команду, не опускаясь в подпрограммы
    сброс микроконтроллера
    окно просмотра регистров общего назначения
    окно просмотра памяти программы
    окно просмотра регистров специального назначения
    создать новое окно просмотра
    компилировать проект
         

 

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 < addmain.asm>
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 Заполнение области константой fill 0x1009, 5
__IDLOCS Определение ID __idlocs H'FFEE'
RES Резервирование памяти buffer res 64
Макросы
ENDM Окончание макроса endm
EXITM Выход из макроса exitm
EXPAND Полный текст макроса в файле листинга expand
LOCAL Определение локальной переменной в макросе local leng, tmp
MACRO Определение макроса out_sym macro temp
NOEXPAND Не разворачивать макрос noexpand

Таблица 6. Арифметические операторы MPASM.

Оператор Описание Пример
$ Текущий счетчик программы goto $ + 3
( левая скобка 1 + ( d * 4 )
) правая скобка ( leght + 1 ) * 255
! операция " НЕ" (логическая инверсия) if! ( a - b )
~ инверсия flags = ~ flags
- отрицательное число (вторая инверсия) - 1 * lenght
high выделить старший байт слова movlw high llasid
low выделить младший байт слова movlw low ( llasid +.2551 )
* умножение a = c * b
/ деление a = b / c
% модуль lenght = totall % 16
+ сложение tot_len = lenght * 8 + 1
- вычитание Entry_Son = ( Tot - 1 ) / 8
< < сдвиг влево val = flags < < 1
> > сдвиг вправо val = flags > > 1
> = больше либо равно if ent > = num
> больше if ent > num
< меньше if ent < num
< = меньше либо равно if ent < = num
== равно if ent == num
! = не равно if ent! = num
& поразрядное " И" flags = flags & err_bit
^ поразрядное " ИСКЛЮЧАЮЩЕЕ ИЛИ" flags = flags ^ err_bit
| поразрядное " ВКЛЮЧАЮЩЕЕ ИЛИ" flags = flags | err_bit
& & логическое " И" if ( len == 512) & & ( b == c )
|| логическое " ИЛИ" if ( len == 512 ) || ( b == c )
= установить равному... entry_index = 0
+= сложить и установить равному... entry_index += 1
-= вычесть и установить равному... entry_index -= 1
*= умножить и установить равному... entry_index *= lenght
/= делить и установить равному... entry_index /= lenght
%= модуль и установить равному... entry_index %= 8
< < = сдвиг влево и установить равному... entry_index < < 3
> > = сдвиг вправо и установить равному... entry_index > > 4
& = " И" и установить равному... entry_index %= err_flags
|= " ВКЛЮЧАЮЩЕЕ ИЛИ" и установить равному... entry_index |= err_flags
^= " ИСКЛЮЧАЮЩЕЕ ИЛИ" и установить равному... entry_index ^= err_flags
++ увеличить на 1 (инкремент) i ++
-- уменьшить на 1 (декремент) i --

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-03; Просмотров: 1764; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.032 с.)
Главная | Случайная страница | Обратная связь