Ответы к ГосЭкзамену 220402 (Информатика) (1088974), страница 16
Текст из файла (страница 16)
Программные средства для разработки и отладки программного обеспечения микропроцессоров и микроконтроллеров.Программное обеспечение закладывается в постоянные запоминающие устройства микроконтроллеров.Языки программирования для микроконтроллеров.Программирование для микроконтроллеров как ипрограммирование для универсальных компьютеров прошло большой путь развития от программирования вмашинных кодах до применения современных интегрированных систем написания программ, отладки ипрограммирования микроконтроллеров.
В настоящее время исходный текст программы пишется на одномиз языков программирования. Процесс преобразования операторов исходного языка программирования вмашинные коды микропроцессора называется трансляцией исходного текста. В настоящее время ручнаятрансляция программ практически не используется. Трансляция производится специальными программамитрансляторами.Существует два больших класса программ-трансляторов: компиляторы и интерпретаторы.
При использовании компиляторов весь исходный текст программы преобразуется в машинные коды, и именно эти кодызаписываются в память микропроцессора. При использовании интерпретатора в память микропроцессоразаписывается исходный текст программы, а трансляция производится при считывании очередного оператора. Естественно, что быстродействие интерпретаторов намного ниже по сравнению с компиляторами, т.к.при использовании оператора в цикле он транслируется многократно. Однако при программировании наязыке высокого уровня объём кода, который нужно хранить во внутренней памяти может быть значительноменьше по сравнению с исполняемым кодом. Ещё одним преимуществом применения интерпретаторов является легкая переносимость программ с одного процессора на другой.Рисунок 1.
Классификация программ-трансляторов языков программирования.Сами языки программирования в свою очередь делятся на две группы:1.2.языки программирования "высокого" уровняязыки программирования "низкого" уровня.56К языкам программирования "низкого" уровня относятся языки программирования в которых каждому оператору соответствует не более одной машинной команды. Набор машинных команд каждого конкретногопроцессора обязательно входит в состав такого языка программирования. Языки программирования низкогоуровня в настоящее время называются ассемблерами (старое название автокоды).
Для каждого процессорасуществует своя группа ассемблеров. Ассемблеры для одного и того же процессора различаются между собой дополнительными возможностями, облегчающими программирование.Языки программирования "высокого" уровня позволяют заменять один оператор несколькими машиннымикомандами. Это позволяет увеличивать производительность труда программистов. Кроме того, языки "высокого" уровня позволяют писать программы, которые могут выполняться на различных микропроцессорах.(Естественно, что при этом необходимо использовать программы - трасляторы для соответствующего процессора.)Выбор языка программирования зависит от состава аппаратуры, для которой пишется программа, а также оттребующегося быстродействия всего программно - аппаратного комплекса в целом.В тех случаях, когда объём ОЗУ и ПЗУ мал (в районе нескольких килобайт) альтернативы ассемблеру нет.Именно эти языки программирования позволяют получать самый короткий и самый быстродействующийкод программы (при прочих равных условиях, т.к.
испортить можно всё!).Языки программирования высокого уровня позволяют значительно сократить время создания программы,но при этом увеличивается размер программы, поэтому для выбора такого языка программирования длямикропроцессорных систем необходимо иметь достаточно большой объём памяти программ (несколько десятков килобайт). Увеличение объёма программы связано с несколькими факторами:1.2.3.Язык программирования рассчитывается на все случаи жизни, поэтому в большинстве случаев человек мог бы написать программу короче (исключив не нужные в данном конкретном случае проверки или защиты).Программист не видит к чему приводит использование тех или других операторов языка программирования, поэтому может выбирать операторы, не оптимальные как с точки зрения длины машинного кода программы, так и с точки зрения быстродействия программы.Программист не использует подпрограммы там, где они могли бы сократить объём программы, таккак на языке программирования высокого уровня это всего один или несколько операторов.Первый из этих пунктов постепенно утрачивает своё значение с появлением всё более совершенных трансляторов.
Третий пункт тоже решается тем же путём при применении различных видов оптимизаторов, входящих в состав компилятора. Однако в большинстве случаев оптимизатор не может определить одинаковыедействия, если они отличаются хотя бы одной командой.
Кроме того, оптимизатор работает только в пределах одного модуля!Для программирования микроконтроллеров используются только компиляторы, поэтому рассмотрим подробнее виды этих трансляторов.Виды компиляторовКомпиляторы бывают оценочные и профессиональные.Оценочные или учебные компиляторы позволяют написать простейшие программы для конкретного процессора и определить подходит ли процессор для тех задач, которые предстоит решать в процессе разработки устройства. Конечно, если программа очень проста, то можно весь программный продукт написать наоценочном компиляторе. Оценочные компиляторы позволяют транслировать одиночный файл исходноготекста программы.
Иногда такие компиляторы позволяют включать в процесс трансляции содержимое отдельных файлов специальной директивой. В результате работы оценочного компилятора сразу получаетсяисполняемый или загрузочный модуль программы, поэтому такие компиляторы называются компиляторыс единой трансляцией.Профессиональные трансляторы позволяют производить трансляцию исходного текста программы по частям. Это позволяет значительно сократить время трансляции исходного текста программы, так как не нужно57транслировать весь текст программы, а можно транслировать только ту часть программы, которая меняласьпосле предыдущей трансляции.
Кроме того, каждый программный модуль может писать отдельный программист. Это позволяет сократить время написания программы. Даже в том случае, если программу пишетодин человек, время написания программы сокращается за счёт использования готовых отлаженных и оттранслированных программных модулей. В таких компиляторах процесс трансляции программы разбивается на два этапа: трансляция программного модуля и связывание программных модулей в единую программу.Поэтому такие компиляторы называются компиляторами с раздельной трансляцией.Оценочные компиляторы обычно предлагаются бесплатно фирмами - производителями микроконтроллеров.Только фирма 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.