Pic Micro Pascal (aka PMP) is a language tool that is targeted for small and medium Microchip PIC® family of microcontrollers (MCUs).
All PIC10, PIC12, PIC16 and PIC18 are supported, including the new Enhanced Core devices).
PMP is not a commercial compiler that does everything, but is intended to assist developers with the generation of small to medium (both in scope and in code size) applications for the PIC.
The major guidelines of PMP development:
In the present implementation, PMP supports multiple files compilation, by include directives and by a per unit concept, as in TP or Delphi.
The data types supported by PMP:
PMP does not include an assembler or linker. It was designed to work with Microchip's MPASM™ / MPLINK™ from MPLAB® suite and uses their .lkr files for processor / memory mapping, but it may as well use GPUTILS suite.
Some abbreviations that may be used in this document:
PICnn Only PIC devices of the nn family. E.g.: PIC12.
PICnn+ PIC devices starting from nn (included), up to PIC18. E.g.: PIC16+ for all PIC16 to PIC18 devices, including PIC16 Enhanced Mid Range devices.
PIC16E PIC16 Enhanced Mid-Range devices
The above abbreviations are now deprecated; the new levels, based on Microchip's categories that had given the PMP's conditional defines families, from lowest to highest hierarchy:
BASELINE Baseline PIC devices, mostly 12-bit core PIC10 and PIC12 devices.
MIDRANGE Mid-range PIC devices, mostly 14-bit core PIC16 devices, some PIC12 devices.
ENHANCED Enhanced-code PIC devices, mostly 14-bit core PIC16 and some PIC12 devices, with the numerical suffix starting by a "1".
HIGHPERF High performance PIC devices, 16-bit core PIC18 devices.
As above, a plus sign after the range says "this level and higher level devices"
FP General term that denotes a Floating Point operation or data.
MPLAB Microchip's PIC Lab software.
MPASM Microchip's PIC assembler.
MPLINK Microchip's PIC linker.
GPUTILS General Purpose Utilities for PIC devices. Open-sourced tool-chain for PIC micro-controllers.
GPASM GPUTIL's assembler.
GPLINK GPUTIL's linker.