Курс лекций. - Микропроцессоры


предназначен для программирования контроллеров


предназначен для программирования контроллеров


Язык программирования PLM-51.

Язык высокого уровня PLM- 51 предназначен для программирования контроллеров серии MCS-51. Он удовлетворяет требованиям разработки программного обеспечения микроконтроллеров для систем различного назначения.

Компилятор plm51.exe - это программное средство, которое транслирует исходный текст, написанный на языке программирования PL/M-51 в перемещаемые объектные модули. Эти модули затем могут объединяться с другими модулями, написанными на языкax программирования PLM-51 или ASM-51. Компилятор выводит на экран дисплея или в файлы листингов сообщения об ошибках и вспомогательную информацию, которая может быть использована при отладке и разработке программ.

Компилятор plm51.exe может быть установлен на компьютерах серии IBM или совместимых с ними в операционной системе DOS 3.Х и выше и использоваться для генерации команд микроконтроллеров семейства MCS-51.

Необходимо отметить, что язык программирования PLM-51 предназначен для написания управляющих программ, поэтому не поддерживает знаковую арифметику и вычисления с плавающей запятой. Это является одновременно и преимуществом и недостатком этого языка программирования. Из-за указанной особенности загрузочные модули, созданные на этом языке программирования получаются практически такими же компактными, как и написанные на языке программирования ассемблер, но если в процессе реализуемого алгоритма управления каким либо объектом требуется достаточно сложные вычисления, то приходится использовать отдельно написанные библиотеки математической поддержки (или писать их самим).

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



Применение.

Язык программирования PL/M-51 и его библиотеки являются частью интегрированного набора средств разработки программного обеспечения для микроконтроллеров семейства MCS-51. Язык программирования PLМ51 поддерживает модульное написание программ. Процесс разработки программ на языке программирования PLM-51 показан на рисунке 1.

предназначен для программирования контроллеров


Рисунок 1. Процесс написания программы на языке программирования PLM-51.

При разработке программного обеспечения выполняются следующие этапы:

  • постановка задачи (полное определение решаемой проблемы);
  • разработка принципиальной схемы и выбор необходимого программного обеспечения;
  • разработка системного программного обеспечения. Этот важный шаг состоит из нескольких этапов, включающих: описание последовательности выполняемых каждым блоком задач, выбор языка программирования и используемых алгоритмов;
  • написание текста программы и подготовка к трансляции при помощи любого текстового редактора;
  • компиляция программы;
  • исправление синтаксических ошибок, выявленных компилятором, в текстовом редакторе с последующей перетрансляцией;
  • создание и сохранение библиотек часто используемых объектных модулей при помощи программы lib51.ехе;
  • связывание полученных перемещаемых объектных модулей в абсолютный модуль и размещение переменных в памяти микроконтроллера при помощи редактора связей rl51.exe;
  • создание программы, записываемой в ПЗУ микроконтроллера (загружаемый модуль) в hex формате, при помощи программы oh.exe;
  • проверка полученной программы при помощи символьного отладчика или других программных или аппаратных средств.
Файл, в котором хранится программа, написанная на языке PLМ51 (исходный текст программы), называется исходным модулем. Для исходного текста программы принято использовать расширения файла: plm или p51. Исходный текст программы можно написать, используя любой текстовый редактор.

Получить объектный модуль можно, указав имя исходного модуля программы в качестве параметра программы-транслятора в DOS строке или строке командного файла:



plm51.exe modul.plm

В этом примере в результате трансляции исходного текста программы, содержащегося в файле modul.plm будет получен объектный модуль, который будет записан в файл с именем modul.obj. Как показано на рисунке 1, объектный модуль не может быть загружен в память программ микроконтроллера. В память микроконтроллера загружается исполняемый модуль.

Получить исполняемый модуль программы можно, указав все имена объектных модулей программы в качестве параметров программы редактора связей в DOS строке или строке командного файла:

rl51.exe main.obj, modul1.obj, modul2.obj

Имя исполняемого модуля программы по умолчанию совпадает с именем первого объектного файла в списке параметров строки запуска редактора связей. Исполняемый модуль программы записывается в файл без расширения. При выполнении приведённой выше в качестве примера командной строки будет получен исполняемый модуль, который будет записан в файл с именем main.

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

Загрузочный модуль программы можно получить при помощи программы-преобразователя программы oh.exe, передав ей в качестве параметра имя файла исполняемого модуля программы, например:

oh.exe main

В результате выполнения этой командной строки будет получен загрузочный модуль программы, который будет записан в файл с именем main.obj.

Отладка программ.

После того, как программные модули были успешно оттранслированы, размещены по конкретным адресам и связаны между собой, для отладки программы можно воспользоваться любым из методов, показанных на рисунке 1:

  • внутрисхемным эмулятором
  • встроенным программным отладчиком
  • внешним программным отладчиком
  • отлаживаемым устройством с записанным в память программ двоичным кодом программы
Внутрисхемный эмулятор с отображением переменных языка программирования на дисплее компьютера оказывает значительную помощь при отладке программ непосредственно на разрабатываемой аппаратуре.


Этот метод отладки предоставляет наиболее удобную среду, когда можно непосредственно в отлаживаемом устройстве останавливать программу, контролировать выполнение программы непосредственно по исходному тексту программы, состояние внешних портов и внутренних переменных, как входящих в состав микросхемы, так и объявленных при написании исходного текста программы. Необходимое для отладки программ оборудование показано на рисунке 2.

предназначен для программирования контроллеров


Рисунок 2. Пример системы отладки программного обеспечения для микроконтроллеров.

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

  • включение информации о типе переменных для проверки типов при связывании модулей. Эта же информация используется внутрисхемным эмулятором. Исключение информации о переменных пользователя может использоваться для создания прототипов или для уменьшения размера объектного модуля;
  • включение или исключение таблиц символьной информации;
  • конфигурация вызовов подпрограмм для обеспечения связывания с модулями, написанными на языке программирования ASM-51;
  • определение желаемого содержания и формата выходного листинга программы. Распечатка промежуточных кодов на языке ассемблер после компилирования программ, написанных на языке программирования PLM-51. Включение или исключение листингов отдельных блоков исходного текста.
[Назад] [Содержание] [Вперёд]


Содержание раздела