Jump to content

Пик Микро Паскаль

Пик Микро Паскаль
Разработчик(и) Филипп Патернот
Стабильная версия
2.0.6 / 9 сентября 2014 г .; 9 лет назад ( 09.09.2014 )
Операционная система Win32
Тип Компилятор
Лицензия Бесплатное ПО
Веб-сайт www .pmpcomp .fr

Pic Micro Pascal, также известный как PMP, — это бесплатный Pascal кросс-компилятор для микроконтроллеров PIC . Он предназначен для работы с от Microchip Technology установленным пакетом MPLAB ; он имеет собственную IDE ( на основе Scintilla ) и является высокооптимизированным компилятором.

Он предназначен только для 8-битных процессоров: PIC10, PIC12, PIC16, PIC16 расширенный, PIC18.

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

PMP не включает в себя ассемблер или компоновщик. Он предназначен для работы с установленным пакетом Microchip MPLAB и напрямую использует файлы MPASM и MPLINK .lkr для инициализации сопоставления памяти; начиная с V2, он поставляется с собственной базой данных для функций процессора и стандартными определениями регистров.

PMP также поддерживает пакет GPUTILS .

Особенности языка

[ редактировать ]

PMP не поддерживает объектно-ориентированное программирование , но RECORD может иметь методы.

По состоянию на 2014 год реализация поддерживает компиляцию нескольких файлов с помощью директив включения и концепции каждого модуля. PMP поддерживает уникальную функцию: переменные могут быть объявлены в EEPROM, а затем прозрачно использованы как любые другие переменные (с некоторыми ограничениями).

Типы данных PMP:

  • простые записи (подмножество): RECORD
  • битовые логические значения: BOOLEAN
  • 8-битные целые типы без знака и знака: CHAR, BYTE, SHORTINT.
  • 16-битные целые типы без знака и знака: WORD, INTEGER.
  • 32-битные целые типы без знака и знака: LONGWORD, LONGINT
  • перечисления
  • массивы (одно измерение): МАССИВ
  • строки (переменной длины): STRING
  • указатели (подмножество)
  • переменные и операции с плавающей запятой (только PIC16 и PIC18): два формата FP, один 48-битный внутренний (REAL) и подмножество 32-битного формата IEEE (SINGLE); оба формата не обрабатывают бесконечность и NaN

Языковой диалект

[ редактировать ]

Синтаксис PMP очень близок к не- ООП- синтаксису Turbo Pascal или Delphi , с некоторыми расширениями для поддержки некоторых функций целевого процессора (битовые манипуляции...).

program Beacon;

uses
  A2D;

var
  I_IR_Receiver : boolean @PORTB.4;                        // TSOP1736 IR receiver
  O_LED_RECEIVING : boolean @PORTC.0;                      // Receive in progress
  O_LED_ERROR : boolean @PORTC.1;                          // Receive error
  O_PWM_A : boolean @PORTC.4;                              // PWM to US transducer phase A (addr cannot be changed)
  O_PWM_B : boolean @PORTC.5;                              // PWM to US transducer phase B (addr cannot be changed)
  { Beacon Addr dip switches }
  I_ADDR_0 : boolean @PORTA.2;
  I_ADDR_1 : boolean @PORTA.5;

CONST
  LOW_BATT_SENSOR_CHANNEL = ANS0;                          // Channel for battery measurement (RA0)

  { Led on/off values }
  cLED_ON = TRUE;
  cLED_OFF = FALSE;

  // pins that are inputs
  TRISA_MASK = [I_NOT_OPTION_SERIAL, I_ADDR_0, I_ADDR_1];
  TRISB_MASK = [I_IR_Receiver];
  TRISC_MASK = [];
begin
  ...
  PORTA := 0; // Prepare all outputs 
  TRISA := TRISA_MASK; // Set pins direction
  ... 
  A2D_Init([LOW_BATT_SENSOR_CHANNEL], 5, adcFosc16, adm8Bits, advVdd);

  Baud(19200); // setup serial port
  assign(output, SerialPort_Output);

  writeln('Hello world!');
  ...
end.

Начиная с версии 1.6, могут использоваться некоторые «расширения» языка (с явной активацией), большинство из них взяты из других языков, подобных Паскалю, таких как Oberon или Modula :

...
  FOR I in SomeVar DO <Statements> (* SomeVar may be any variable or an enumeration type *)
  FOR I := X TO Y BY n DO <Statements> (* Specification of the variable step value *)
  LOOP <Statements> END (* Forever loop *)
  IF Condition1 THEN <Statements> ELSIF Condition2 THEN <Statements> (* Shortcut for ELSE IF *)
  RETURN SomeResult (* Function's result value assignment and exit *)

PMP был создан в 2006 году Филиппом Патерноттом и на данный момент выпущен как бесплатное программное обеспечение , а как бесплатное программное обеспечение в будущем — . Последняя версия — 2.0.6, сентябрь 2014 г. [1]

PMP стал темой статьи в журнале SERVO в марте 2015 года. [2]

  1. ^ Справочное руководство, PPA, 2014 г., Документация для Pic Micro Pascal V2.
  2. ^ за март 2015 г. Статья в журнале SERVO , Томас Генри, 2015 г., [1]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b5bc82da85f4db84d7ffe147b57c9162__1687208880
URL1:https://arc.ask3.ru/arc/aa/b5/62/b5bc82da85f4db84d7ffe147b57c9162.html
Заголовок, (Title) документа по адресу, URL1:
Pic Micro Pascal - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)