Что такое MPLAB

         

Арифметические операторы 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 --

Что такое MPLAB?


MPLAB - это интегрированная среда разработки (IDE) для семейства микроконтроллеров PICmicro фирмы Microchip Technology Incorporated. MPLAB позволяет писать, отлаживать и оптимизировать программы для Ваших разработок. MPLAB включает текстовый редактор, симулятор (виртуальный отладчик), менеджер проектов и поддерживает эмуляторы (внутрисхемные отладчики) MPLAB-ICE и PICMASTER , программаторы PICSTART Plus и PRO MATE II и другие средства и инструменты разработок фирмы Microchip и других фирм.

Инструментальные средства MPLAB, организованные как ниспадающие меню и определяемые быстрые клавиши, позволяют:
- ассемблировать, компилировать исходный текст;
- отлаживать логику работы, наблюдая с помощью симулятора или, в реальном времени, с эмулятором MPLAB-ICE ;
- просматривать переменные в окнах просмотра;
- программировать кристаллы с помощью программаторов PICSTART Plus или PRO MATE II
- и многое другое.


MPLAB работает под Microsoft Windows 3.1x, Windows 95, 98, NT, 2000 (начиная с версии 5.00.00). Правда не все дополнительное оборудование, такое как внутрисхемные эмуляторы и программаторы будет функционировать под всеми операционными системами. Для более подробного описания обращайтесь к специализированной литературе и техническим описаниям фирмы Microchip.

В начало

Директивы языка MPASM


Директивы ассемблера располагаются в тексте исходного файла для расширения функций ассемблера, определения и управлением процессом. Общее правило - директивы не должны располагаться в первой позиции строки в тексте (иначе будут определены как метка).

   ЕЩЕ! можете скачать архив direct.zip, содержащий файлы в формате ворда, полностью и подробно описывающие на русском языке директивы ассемблера с примерами. Рекомендую! 

 

 

ДИРЕКТИВА ОПИСАНИЕ ПРИМЕР
Директивы управления
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

В начало

 

Формат представления чисел


В исходном тексте представлять числа можно по-разному и в разных системах счисления:
ФОРМАТ СИНТАКСИС ПРИМЕР
Десятичный D'число'
.число
D'100'
.100
Шестнадцатиричный H'число'
0xчисло
H'f9'
0xAF00
Восьмиричный O'число' O'777'
Двоичный B'число' B'11110000'
Символьный 'символ'
A'символ'
'C'
A'C'

В начало

 

Как создать новый проект.


Рассмотрим создание простого проекта, исходными файлами которого будут файл или файлы на ассемблере. При кажущийся сложности, все необходимые действия не отнимают и минуты. Для создания проекта выполните следующие шаги:  Выбор папки проекта. Создайте на диске папку для своего проекта. Важное примечание! MPLAB не поддерживает корректно длинные и русские имена папок, то есть имя должно состоять из латинских букв и не более 8. Тоже самое относится и к названию проекта и к именам исходных файлов. В противном случае MPLAB откажется файлы редактировать и будет жаловаться, что не может их открыть при ассемблировании.  Создание исходного файла для проекта.  В папке \template\code где установлен MPLAB находятся файлы-заготовки для проектов на ассемблере. Можно, конечно, создать пустой файл с расширением .asm для проекта, но проще взять готовый. Если Вы уже выбрали тип микроконтроллера для своего проекта, то скопируйте соответствующий файл в папку своего проекта и переименуйте во что-то типа: prog.asm (<my project>.asm). Выбор языка инструментальной среды. Выберите Project>Install Language Tool из меню. Выберите Language Suite: Microchip и Tool Name: MPASM. Если не указан путь к файлу ассемблера mpasmwin.exe, укажите. Затем установите опцию Windowed и нажмите OK. Создание файла проекта. В MPLAB выберите Project>New Project, укажите путь к Вашей папке и введите имя файла проекта, желательно такое же, как и имя основного исходного файла файла. Возможно указание нескольких папок через точку с запятой, для примера, таким образом: c:\mplab\projects\mpproj\include;c:\include\h;..\sys. Нажмите OK. Установка конфигурации. После перечисленных действий откроется окно редактирования проекта. Для простоты не будем добавлять дополнительные файлы, файлы библиотек и компоновки. Нажмите кнопку Change.. в пункте Development Mode. Откроется окно с вкладками для установки. В дальнейшем это окно можно будет вызвать, выбрав Options>Development Mode.
Остановимся подробнее:
- Tools. Выберите инструментальную среду. Скорее всего у Вас нет дополнительного оборудования, поэтому придется довольствоваться симулятором MPLAB-SIM (установите признак) и выберите тип микроконтроллера.
- Clock. Выберите тип генератора тактовых импульсов (кварцевый резонатор, внутренний или внешний RC-генератор, внешняя частота и т. д.) и его частоту.
- Configuration. Конфигурация сторожевого таймера и памяти программ. Если Вы разрешаете использование сторожевого таймера, то задайте и коэффициент деления предделителя. А для микроконтроллеров 17-й серии необходимо указать какая память программ будет использоваться: внутренняя (microcontroller), внешняя (microprocessor) или обе (extended microcontroller).
- Pins. Разрешите или запретите использование вывода внешнего сброса (MCLR).
- Break option. Конфигурация прерываний и стека при отладке (лучше пока оставить по умолчанию).
Нажимаете OK. Конфигурация выходного файла. Щелкните, чтобы подсветить на файле <my project>[.hex]. При этом станет доступно меню Node Properties. В ранних версиях MPLAB без вызова окна конфигурации выходного файла нельзя было добавить в проект свой исходный файл. Можно попробовать изменить конфигурацию, а можно оставить по умолчанию. Добавление исходного файла. Чтобы добавить свой исходный файл на ассемблере, который Вы скопировали и переименовали в папке своего проекта нажмите на кнопке Add Node. В открывшемся окне выберите свой файл и нажмите OK. После этого нажмите OK в окне редактирования проекта. Если нажмете Cancel, то проект записан не будет! В дальнейшем это окно всегда можно будет вызвать через Project>Edit Project.. Открытие исходного файла. Теперь можете открыть свой исходный файл для редактирования: File>Open..  В проекте может быть несколько исходных файлов на ассемблере, но указывать необходимо при редактировании проекта один. Остальные включаются в основной исходный файл директивой ассемблера include. 

В начало



Компилирование


Чтобы перекомпилировать только те файлы, в которые были внесены изменения, нажмите Project>Make Project.  Чтобы перекомпилировать все файлы проекта  выберите Project>Build. 

После завершения процесса будет вызвано окно с генерированной коммандной строкой, перечнем предупреждений или ошибок (если есть) и результатом компиляции: были ли ошибки (build failed) или нет (build successful ). Помощь при исправлении ошибок может оказать файл-листинг, вызвать который можно из меню таким образом: Window>Absolute Listing.

 В начало

 

Логические функции


Таблица истинности для основных логических функций:

X1
Аргумент 1
X2
Аргумент 2
AND
"И"
IOR
"ИЛИ"
XOR
Искл. "ИЛИ"
0 0 0 0 1
0 1 0 1 0
1 0 0 1 0
1 1 1 1 1

В начало

Меню 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). Сброс отлаживаемого устройства (симулятор или эмулятор), аналогичный состоянию при подачи напряжения питания.   В начало  



Меню Edit


Тоже стандартное меню для управления буфером обмена, а также для поиска, замены текста и другого.

В начало

Меню File


Это стандартное меню со стандартными пунктами для управления файлами проекта. Пункты Export и Import предназначены для обмена данными между компьютером и внешними устройствами (симулятор, эмулятор).

В начало

 

Меню Help


Вызов помощи и справок. Полная оригинальная фирменная информация на английском языке. Если что-то не понятно, то всегда можно там найти.

В начало

 

Меню 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. Выбор программатора, его конфигурация и выбор порта для подключения.

 

В начало

 

Меню PICSTART Plus


Меню конфигурации и управления фирменным программатором PICSTART Plus. При его отсутствии также не доступно.

В начало

Меню Project


Пункты для управления проектом и конфигурацией. Изменение установок созданного проекта Edit Project. Make Project - компилировать все исходные файлы для создания одного hex файла, Build All - компилировать все файлы, Build Node - компилировать один выборочный файл. Меню Install Language Tool предназначено для выбора языка программирования и конфигурации.

В начало

 

Меню 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 - быстро открыть какое либо загруженное и свернутое окно. При большом количестве файлов проекта оказывается очень удобно.   В начало  



MPLAB для начинающих


Описание приведено для MPLAB версии 5.00.00 и выше, который Вы можете скачать с сервера Microchip по адресу www.microchip.com   Прошу учесть, что приведенное описание основано на моем личном опыте и поэтому может вызвать разногласия у других разработчиков. В защиту можно сказать то, что начав работу, можно добиться положительных результатов и приобрести собственный опыт. Технически полное описание содержит MPLAB Help.    При переводе на русский язык многие термины теряют смысл, поэтому я буду стараться приводить англоязычный вариант при описании. И еще, в качестве примера будет рассмотрено создание проекта с использованием ассемблера. Для тех, кто программирует на С для PICmicro, я думаю, не составит труда разобраться в оригинальной англоязычной документации.  
Общая информация
Создание проекта и работа с ним
Меню MPLAB и описание функций
Справочная информация и словарь
Для удобного просмотра Вы можете скачать это описание в виде архива book.zip. Загрузите его себе, затем распакуйте в отдельной папке и откройте файл titul.htm.   Еще можете скачать полное описание MPLAB на английском языке в формате PDF (Acrobat Reader), нажав на эту ссылку: mlpabhlp.zip (1,94 Mb)   Если есть потребность описать какие либо пункты подробнее, то, пожалуйста, напишите мне и я обязательно это сделаю.... Заранее благодарю.
All right reserved by Dmitry Salikov
По возникшим вопросам и замечаниям  прошу обращаться ко  мне на e-mail: disall@mail.ru



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


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 можно представить так:

В начало

Панель инструментов (Toolbar)


Панель инструментов представляет собой ряд кнопок для быстрого вызова тех или иных функций или выполнения каких-либо действий.  Существует 4 набора кнопок для разных действий: для редактирования, отладки, управления проектом и для определения пользователем. Для конфигурирования панели инструментов выберите Option>Environment Setup и вкладку General. На ней можно выбрать месторасположение панели (вверху, слева, справа) или, нажав кнопку Layout, добавить или убрать кнопки. 

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

- сменить набор кнопок панели инструментов (Edit, Debug, Project, User Default).

 

В начало

 

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

 





Словарь


Alpha character набор символов, который включает в себя только буквы латинского алфавита: a, b,... z, A, B,... Z. Alphanumeric набор символов, который включает в себя набор alpha символов и цифры: 0, 1,... 9. Assemble (ассемблирование) операция производимая ассемблером (assembler) assembler (ассемблер) инструмент языка программирования, который переводит текстовый файл-источник с расширением .asm в исполняемый машинный код. Break point точка останова, адрес, устанавливаемый пользователем, где выполнение программы останавливается. Build функция перекомпилирования всех исходных файлов рабочего проекта. C язык программирования высокого уровня для PIC микроконтроллеров. Calibration memory специальный регистр или регистры для калибровки внутреннего RC генератора. Compile (компилирование) операция, производимая компилятором. Compiler (компилятор) инструмент языка программирования, переводящий исходный файл в исполняемый машинный код. Configuration bits (биты конфигурации) специальные биты устанавливаемые при программировании микроконтроллера, определяющие рабочую конфигурацию. В исходном файле необходимо определять, используя директиву __config, при использовании симулятора или эмулятора необходимо установить в меню Options>Development Mode. EEPROM Электрически стираемая и программируемая память только для чтения (Electrically Erasable Programmable Read Only Memory). Особый тип памяти, доступный из основной программы микроконтроллера для чтения и записи. Содержимое EEPROM сохраняется при выключения напряжения питания. Extended Microcontroller Mode режим расширенного микроконтроллера, только для PIC17CXXX и PIC18CXXX кристаллов, при котором используется как и внутренняя память программы, так и внешняя. При превышении объема внутренней памяти автоматически происходит переход на внешнюю память. External RAM внешняя память для чтения/записи, возможна только для PIC17CXXX и PIC18CXXX кристаллов. Hex Code стандартный файл hex формата, содержащий выполняемые инструкции, результат ассемблирования или компилирования исходных файлов. Hex Code может быть конвертирован в Object Code (объектный код). Hex File ASCII файл, содержащий шестнадцатиричный адрес и содержимое (hex code).Файлы этого формата являются исходными файлами программаторов. ICD внутрисхемный отладчик (In-Circuit Debugger). ICE внутрисхемный эмулятор (In-Circuit Emulator). IDE интегрированная среда разработки (Integrated Development Environment). MPLAB IDE включает в себя: компилятор, ассемблер, менеджер проекта, редактор, отладчик, симулятор и другие инструменты. Identifier функция или имя переменной. Librarian библиотекарь - инструментальный язык для создания и перемещения библиотек. Library библиотека - коллекция перемещаемых объектных модулей. Link функция, выполняемая линкером (linker). Linker инструментальный язык, комбинирующий объектные файлы (Object Files) и библиотеки для создания выполняемого кода. Linker Script Files командный файл MPLINK с расширением .lkr, определяющий опции связывания и описывающий возможную память. Listing File листинг-файл - текстовый файл, показывающий машинный код, сгенерированный для каждого С оператора или ассемблерной инструкции, а также MPASM директивы и макросы. Machine Code выполняемый машинный код. Macro при ассемблировании в исходном тексте имя макроса заменяется на определенные ранее инструкции ассемблера (участок кода). Начало макроса соответствует директиве macro и оканчивается директивой endm.  Macro Directives директивы, контролирующие выполнение макроса и распределение данных внутри тела макроса Make Project команда для перекомпилирования только тех файлов-источников, которые были изменены после последнего компилирования. Microcontroller Mode одна из возможных конфигурация памяти программы только для PIC17CXXX и PIC18CXXX кристаллов. В этом режиме используется только внутренняя память, расположенная на одном кристалле с микроконтроллером. Microprocessor Mode одна из возможных конфигурация памяти программы только для PIC17CXXX и PIC18CXXX кристаллов. В этом режиме используется только внешняя память программы, внутренняя память отключена. Адресное пространство составляет 64 Кбайта. Node компонент проекта MPLAB. NOP нет операции. Object Code объектный код, получаемый путем ассемблирования или компилирования исходного файла. Этот перемещаемый код может быть загружен в MPLINK для создания выполняемого кода. Объектный код содержится в объектном файле. Object File модуль, который содержит перемещаемый объектный код или данные и ссылки на внешний код или данные. Off-Chip Memory память Opcodes Operational Codes. Мнемоника, которая при ассемблировании или компилировании порождает код. Pod внешнее устройство эмулятора, содержащее память, таймеры, логику прерываний.  Power-on-Reset Emulation программный случайный процесс записи случайных значений в регистры общего назначения (RAM). Program Counter регистр, содержащий адрес текущей выполняемой команды (инструкции). Program Memory область памяти микроконтроллера, где хранится код программы (команды, инструкции). В эту область загружается при симулировании или эмулировании код текущей программы. Programmer программатор, устройство для записи программ в микросхемы, такие как микроконтроллеры, микросхемы памяти и т. п. Project совокупность исходных файлов и инструкций  по компилированию или ассемблированию для одного приложения. RAM память с произвольным доступом (Random access memory), память данных. ROM память только для чтения (Read only memory), память программ. SFR, Special Function Registers регистры специального назначения (Special Function Registers ), РОН. Simulator программа моделирования работы микроконтроллера. Simulator Stimulus описание внешних входных сигналов. Возможность изменять состояние или задавать периодический или произвольный сигнал. Source источник кода, обычно текстовый файл, содержащий инструкции ассемблера или код на С. Source Code - Assembly источник кода содержащий инструкции микроконтроллера, директивы ассемблера и макросы, который будет переведен в машинный код при ассемблировании. Source Code - C программа, написанная на языке высокого уровня С, которая будет переведена в машинный код при компилировании. Stack стек, список вызываемых подпрограмм. При выполнении call или при прерывании в стек заносится текущий адрес программы, а при команде return и возвращении из прерывания адрес из стека переносится в счетчик программы. Stopwatch счетчик, измеряющий выполненные циклы. Tool Bar колонка или полоса кнопок-иконок по которым Вы можете щелкать мышью для выполнения функций MPLAB. Watchdog Timer таймер микроконтроллера, сбрасывающий его при переполнении. Разрешить или запретить таймер возможно установкой соответствующих битов конфигурации микроконтроллера при программировании. Выбрать и изменять предделитель и его коэффициент можно в программе. Watch Window окно просмотра содержит список переменных и регистров, которые Вы можете просматривать и модифицировать при отладке.





Создание проекта и работа с ним


В этом разделе представлена структура проекта, описание создания нового проекта, изменение различных установок, компилирование, запуск и отладка в пошаговом режиме. Подробнее о работе с проектом можно прочитать в разделе Меню MPLAB и описание функций

Стандартные расширения для файлов MPLAB


РАСШИРЕНИЕ НАЗНАЧЕНИЕ ФАЙЛА
*.ASM исходный файл на ассемблере
*.C исходный файл на С
*.CFG файл конфигурации
*.COD содержит символьную информацию и объектный код
  *.CSV файл с записью трассировки (только для MPLAB-ICE 2000)
*.DAT файл данных симулятора
*.ERR файл обнаруженных ошибок, генерируется  ассемблером или С при компиляции
*.H добавленный файл на С 
*.HEX файл с машинными кодами в HEX формате для PIC микроконтроллеров
*.HLP файл помощи
*.INC добавленный файл на ассемблере
*.INI конфигурация MPLAB и установленного языка программирования
*.KEY файл схемы кнопок MPLAB
*.LKR файл сценария компоновки MPLINK
*.LST абсолютный листинг, генерируется ассемблером или С при компиляции
*.MTC файл конфигурации языка программирования
*.PJT файл содержит главную информацию о проекте
*.REG файл, описывающий модификацию регистров при отладке
*.STI  файл, описывающий входные сигналы на входах микроконтроллера
*.TB файл трассировки точек останова
*.TBR файл панели инструментов
*.TPL временный файл
*.TRC файл записи трассировки
*.TXT файл записи трассировки (только MPLAB-ICE 2000)
*.WAT файл окна  просмотра

В начало

 

Запуск и отладка проекта


Для инициализации системы выберите Debug>Run>Reset. При этом программный счетчик (PC)будет сброшен на нулевой адрес 0x00. В файле источника указатель (темная панель - dark bar) установится на команду, соответствующую нулевой ячейки памяти. Сброс происходит автоматически и после перекомпилирования проекта. 

MPLAB-SIM можно использовать для отладки программы при отсутствии внутрисхемного эмулятора. Это накладывает некоторые ограничения:
- невозможность отладки программы с реальными входными сигналами на выводах микроконтроллера.
- невозможность запускать выполнение программы в реальном времени. Скорость выполнения зависит от многих факторов: количества открытых окон и запущенных приложений, скорости самого компьютера и других. Замечу, что для ускорения прохода при отладке подпрограмм различных задержек, можно воспользоваться директивой IFDEF.
Зато к положительным сторонам можно отнести практически никакую стоимость данного инструмента в отличии от нескольких тысяч долларов за эмулятор.

Чтобы запустить отлаживаемую программу в пошаговом режиме (одна команда за одно нажатие) можете выбрать в меню Debug>Run>Step или нажать <F7> или кнопку

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

Для запуска программы  в непрерывном режиме выберите Debug>Run>Run или нажмите <F9> или кнопку

на панели инструментов. Программа будет выполняться до тех пор, пока Вы не прервете работу, выбрав в меню Debug>Run>Halt или нажав <F5> или кнопку
или произойдет останов в заранее установленной точке прерывания (breakpoint). 

 В начало