Микропроцессорные устройства РТС и их программное обеспечение (1088972), страница 3
Текст из файла (страница 3)
Для каждого процессора существует своя группа ассемблеров. Ассемблеры для одного и того жепроцессора различаются между собой дополнительными возможностями, облегчающимипрограммирование.Языки программирования "высокого" уровня позволяют заменять один оператор несколькими машиннымикомандами. Это позволяет увеличивать производительность труда программистов. Кроме того, языки"высокого" уровня позволяют писать программы, которые могут выполняться на различныхмикропроцессорах. (Естественно, что при этом необходимо использовать программы - трасляторы длясоответствующего процессора.)Выбор языка программирования зависит от состава аппаратуры, для которой пишется программа, а также оттребующегося быстродействия всего программно - аппаратного комплекса в целом.В тех случаях, когда объём ОЗУ и ПЗУ мал (в районе нескольких килобайт) альтернативы ассемблеру нет.Именно эти языки программирования позволяют получать самый короткий и самый быстродействующийкод программы (при прочих равных условиях, т.к.
испортить можно всё!).Языки программирования высокого уровня позволяют значительно сократить время создания программы,но при этом увеличивается размер программы, поэтому для выбора такого языка программирования длямикропроцессорных систем необходимо иметь достаточно большой объём памяти программ (несколькодесятков килобайт). Увеличение объёма программы связано с несколькими факторами:1.2.3.Язык программирования рассчитывается на все случаи жизни, поэтому в большинстве случаевчеловек мог бы написать программу короче (исключив не нужные в данном конкретном случаепроверки или защиты).Программист не видит к чему приводит использование тех или других операторов языкапрограммирования, поэтому может выбирать операторы, не оптимальные как с точки зрения длинымашинного кода программы, так и с точки зрения быстродействия программы.Программист не использует подпрограммы там, где они могли бы сократить объём программы, таккак на языке программирования высокого уровня это всего один или несколько операторов.Первый из этих пунктов постепенно утрачивает своё значение с появлением всё более совершенныхтрансляторов.
Третий пункт тоже решается тем же путём при применении различных видов оптимизаторов,входящих в состав компилятора. Однако в большинстве случаев оптимизатор не может определитьодинаковые действия, если они отличаются хотя бы одной командой. Кроме того, оптимизатор работаеттолько в пределах одного модуля!Для программирования микроконтроллеров используются только компиляторы, поэтому рассмотримподробнее виды этих трансляторов.Виды компиляторовКомпиляторы бывают оценочные и профессиональные.Оценочные или учебные компиляторы позволяют написать простейшие программы для конкретногопроцессора и определить подходит ли процессор для тех задач, которые предстоит решать в процессеразработки устройства.
Конечно, если программа очень проста, то можно весь программный продуктнаписать на оценочном компиляторе. Оценочные компиляторы позволяют транслировать одиночный файлисходного текста программы. Иногда такие компиляторы позволяют включать в процесс трансляциисодержимое отдельных файлов специальной директивой. В результате работы оценочного компиляторасразу получается исполняемый или загрузочный модуль программы, поэтому такие компиляторыназываются компиляторы с единой трансляцией.Профессиональные трансляторы позволяют производить трансляцию исходного текста программы почастям. Это позволяет значительно сократить время трансляции исходного текста программы, так как ненужно транслировать весь текст программы, а можно транслировать только ту часть программы, котораяменялась после предыдущей трансляции.
Кроме того, каждый программный модуль может писатьотдельный программист. Это позволяет сократить время написания программы. Даже в том случае, еслипрограмму пишет один человек, время написания программы сокращается за счёт использования готовыхотлаженных и оттранслированных программных модулей. В таких компиляторах процесс трансляциипрограммы разбивается на два этапа: трансляция программного модуля и связывание программных модулейв единую программу. Поэтому такие компиляторы называются компиляторами с раздельнойтрансляцией.Оценочные компиляторы обычно предлагаются бесплатно фирмами - производителями микроконтроллеров.Только фирма Intel предложила в своё время профессиональный пакет разработки программ - языкпрограммирования PLM-51, в состав которого входит профессиональный язык программирования ASM-51.Профессиональные компиляторы разрабатываются и продаются отдельными фирмами.
Длямикроконтроллеров семейства MCS-51 получили известность продукты таких фирм как FRANCLIN, IAR,KEIL. В состав современных средств написания и отладки программ для микроконтроллеров обычно входятэмуляторы процессоров или отладочные платы, текстовый редактор, компиляторы языка высокого уровня(чаще всего "C") и ассемблера, редактор связей и загрузчик программы в отладочную плату. Все программыобычно объединены интегрированной средой разработки программного проекта, позволяющуюподдерживать один или несколько программных проектов.Язык программирования 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Имя исполняемого модуля программы по умолчанию совпадает с именем первого объектного файла всписке параметров строки запуска редактора связей.