Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

мпсу / Практические занятия pdf / Практика модуль 2 МПСУ

.pdf
Скачиваний:
21
Добавлен:
10.06.2015
Размер:
5.36 Mб
Скачать

Полный текст программы (листинг) для рассматриваемого примера приведен в табл. 2.9.

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

Операционная система

Операционная система — это набор программ, которые организуют аппаратные средства микропроцессора в рабочее устройство, используемое человеком (рис. 6.3). Операционная система облегчает использование микропроцессора и предоставляет пользователю опреде-денный сервис, например загрузку прикладных программ в память, ях отладку и поиск неисправностей.

Вторая функция операционной системы — это облегчение разработки прикладных программ. Соответственно операционная система содержит два комплекта программ: монитор (управляющую программу) и системное программное обеспечение (утилитарные или сервисные программы).

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

Объем операционной системы очень велик и обычно во много раз превышает объем прикладных программ. Поэтому в общем случае монитор имеет две составляющие (части): постоянную, или резидентную, и временную, или сменную, которая вводится в память с перфолент, гибких магнитных дисков и т. п. В соответствии с видом носителя информации различают ПЛОС — перфоленточную и ДОС—дисковую операционную систему. Когда монитор загружен в память и запущен, все его части являются резидентными.

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

Линия раздела между постоянной и сменной частью монитора не очень строго зависит от взаимодействия операционной системы с оператором и

11

прикладными программами.

Рис. 6.3. Взаимосвязь пользователя, операционной системы и аппаратуры.

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

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

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

Такая начальная установка осуществляется всякий раз при включении питания, а также в любое время, когда требуется вернуть микропроцессор к началу выполнения системной программы, и всегда с одной И той же определенной ячейки памяти.

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

При таком подходе функциональное назначение любой кнопки можно изменить программным путем. Программа управления пультом должна храниться в ПЗУ.

Абсолютный загрузчик. В общем случае абсолютный загрузчик -. это

12

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

Если бы ассемблер оставался в основной памяти во время выполнения прикладной программы, то пришлось бы значительно увеличивать емкость ОЗУ системы. Поэтому обычно с. помощью ассемблера объектная программа, полученная в результате трансляции, выводится на какой-либо машиночитаемый носитель, а в ОЗУ помещается загрузчик. Затем загрузчик помещает в ОЗУ программу пользователя на машинном языке и передает ей управление. Поскольку загрузчик по своему объему значительно меньше ассемблера, в основной памяти остается больше места для размещения и выполнения программы пользователя.

Обычно абсолютный загрузчик хранится в ПЗУ, но в некоторых системах он должен вводиться с пульта оператора.

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

Системное программное обеспечение. Системные программы, на-

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

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

13

проверки и очистки носителей информации.

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

Программы для разработки программного обеспечения включают 1в себя редакторы текста, ассемблеры, интерпретаторы и компиляторы, библиотеки программ и программы сопровождения.

Редактор. Эта программа позволяет вносить изменения и дополнения в команды и выполняет все связанные между собой функции. Например, если в программу введены две дополнительные строчки команд, то все адреса автоматически будут увеличены на 2. Функционально редактор никак не связан с исполняемыми прикладными программами или трансляторами. В частности, редактор не учитывает смыслового содержания текстов, с которыми ему приходится работать.

Ассемблер-программа. Трансляция исходной программы на машинный язык осуществляется с помощью специальной программы — ассемблера, которая должна быть предварительно написана, отлажена и введена в память системы. Эта программа сравнивает каждую мнемоническую команду со списком команд данного микропроцессора и заменяет мнемонический код его двоичным эквивалентом. В результате машинной трансляции получается объектная программа, которая затем может быть загружена в основную память (рис. 6.4).

Типичный ассемблер обычно выполняет следующие действия:

1.Присваивает адреса всем меткам и символическим наименованиям, для чего имеется счетчик текущих адресов.

2.Производит абсолютную адресацию и создает символьную таблицу, устанавливающую соответствие между наименованиями и адрес ми команд.

3.Резервирует в памяти адреса для всех данных и констант.

4.Выдает на перфоленту или иной носитель информации последовательность двоичных слов, полученных путем трансляции мнемонических сокращений команд, вырабатывая таким образом объектную про, грамму.

5.Воспринимает выражения в зоне операндов и рассчитывает со, ответствующие значения; эти выражения могут содержать стандартна арифметические операции, такие, как сложение и вычитание.

14

Рис. 6.4. Схема машинной трансляции

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

Описываемый ассемблер, иногда называемый символическим, является компилятором, так как он переводит сразу всю программ» целиком и дает объектную программу, пригодную для непосредственной загрузки в память определенного микропроцессора. Трансляция исходной программы выполняется таким ассемблером за три прохода: 1) производится распределение памяти и присвоение адресов всем наименованиям; 2) перфорируется объектная программа; 3) выводится на печать листинг. Если в системе имеется высокоскоростное печатающее устройство, то второй и третий проходы могут быть совмещены. Трансляция и загрузка объектной программы — две независимые процедуры (рис. 6.4).

Существует также другой тип ассемблера — интерпретатор. Его называют также перемещающим ассемблером или макроассемблером, Интерпретатор последовательно транслирует каждый оператор исходной программы в соответствующий оператор объектной программы, т. е. действует по принципу «строка за строкой». Перемещающий ассемблер сразу же транслирует все выражения исходной программы непосредственно в машинные коды. Каждое исходное выражение транслируется независимо от последующих, и поэтому программа может сразу же выполняться. Хотя в результате такой трансляции пропадает возможность оптимального кодирования, зато появляются дополнительные преимущества. Например, синтаксические ошибки в исходной программе немедленно обнаруживаются и о них сразу же сообщается оператору, который может тут же скорректировать программу. Обычно такой транслятор используется при диалоговом режиме разработки, отладки и выполнения программы.

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

15

Рис. 6.5. Компоновка программы после непосредственной трансляции

Рис. 6.6. Создание прикладной программы с помощью макроассемблера

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

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

Библиотеки программ создаются для часто используемых процедур и функций, например для преобразования данных из одной системы ко- дирования в другую или для вывода документов на печать и т. д. Программы включаются в результирующую программой-компоновщиком (Рис. 6.6).

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

16

Практика №5.

ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ MPLAB IDE ДЛЯ

МИКРОКОНТРОЛЛЕРОВ PICMICRO

MPLAB IDE - интегрированная среда разработки для микроконтроллеров PICmicro фирмы Microchip Technology Incorporated. MPLAB IDE позволяет писать, отлаживать и оптимизировать текст программы. MPLAB IDE включает в себя редактор текста, симулятор и менеджер проектов, поддерживает работу эмуляторов (MPLAB-ICE, PICMASTER) и программаторов (PICSTART plus, PRO MATE) фирмы

Microchip и других отладочных средств фирмы Microchip и третьих производителей.

MPLAB IDE состоит из нескольких модулей, обеспечивающих единую среду разработки.

Менеджер проекта MPLAB

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

Редактор MPLAB

Предназначен для написания и редактирования исходного текста программы, шаблонов и файлов сценария линкера.

Отладчик MPLAB ICD

Недорогой внутрисхемный отладчик для микроконтроллеров семейства

PIC16F87X.

MPLAB-SIM симулятор

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

MPLAB ICE эмулятор

Эмулирует работу микроконтроллера в масштабе реального времени непосредственно в устройстве пользователя.

MPASM ассемблер/ MPLINK линкер/ MPLIB редактор библиотек

MPASM компилирует исходный текст программы. MPLINK создает заключительный код программы, связывая различные модули полученные из

MPASM, MPLAB-C17, MPLAB-C18. MPLIB управляет библиотеками.

MPLAB-CXX компиляторы

MPLAB-C17 и MPLAB-C18 выполняют компиляцию текста программы написанному на языке ANSI С. Сложные проекты могут состоять и частей написанных на языке С и ассемблера.

Программаторы PRO MATE и PICSTARTplus

Работают под управлением MPLAB IDE и предназначены для программирования микроконтроллеров кодом программы, полученной в результате компиляции исходных файлов. Программатор PRO MATE может работать самостоятельно, без использования MPLAB IDE.

17

Эмуляторы MPLAB-ICE, PICMASTER-CE и PICMASTER

Применяются для моделирования работы микроконтроллера в устройстве пользователя в масштабе реального времени.

Начало работы с MPLAB IDE (с примером)

Цель работы, познакомится с: элементами рабочего стола MPLAB IDE; созданием исходного фала и подключением его к новому проекту для PIC16F84;идентификацией и исправлением простых ошибок; управлением симулятором; установкой точек остановки; созданием окна с переменными; открытием окна секундомера и других окон отладки.

Настройка среды проектирования

Рассмотрим работу в среде на основе конкретного примера. Рабочий стол среды состоит из:

1. Главное текстовое меню.

2. Графическое меню.

3. Рабочая область, в которой размещаются открытые окна с файлами, диалогами или другой информацией.

4.Линейка состояния, отображающая текущую настройку системы.

Пояснения работы интегрированной среды разработки будут производиться с использованием симулятора MPLAB SIM. Работа с эмулятором аналогично симулятору, за исключением открытия файлов кода только на чтение.

Выберите пункт Options > Development Mode нажмите кнопку Tools, для выбора инструментального средства и типа микроконтроллера, используемого в

проекте.

MPLAB IDE

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

18

руководстве.

Выберите симулятор MPLAB SIM и микроконтроллер PIC16F84, подтвердите выбор нажатием кнопки Ок. Симулятор инициализирован, в линейке состояния на рабочем столе появится микроконтроллер «PIC16F84» и режим «SIM». Теперь среда проектирования находится в режиме симулятора для микроконтроллера PIC16F84.

Создание нового простого проекта

Для работы симулятора MPLAB SIM нужен код программы (файл с расширением .HEX), который получается компиляцией исходного текста программы. В данном примере файл называется tutor84.hex, позже он может быть загружен непосредственно в микроконтроллер с помощью программатора.

Выберите пункт меню File > New и на экране появится диалоговое, окно показанное на рисунке.

Нажмите кнопку Yes и увидите следующее диалоговое окно.

В этом диалоговом окне необходимо указать, где вы хотите сохранить проект. В данном случае создается файл tutor84.pjt в каталоге c:\Program Files \MPLAB.

Тип файла

.PJT будет назначен автоматически. Файлы с таким расширением являются файлами проекта в среде MPLAB IDE. Имя проекта, в данном случае tutor84, станет заданным по умолчанию для многих файлов, используемых в нашем примере.

Подтверждение имени файла проекта и место его размещение приведет к переходу к следующему диалоговому окну.

Симулятор, программаторы и эмулятор среды MPLAB IDE используют файлы кода, части которого созданы различными инструментальными средствами: ассемблером, компилятором и/или линкером. Несколько различных инструментальных средств могут участвовать в создании шестнадцатеричного кода. Эти инструментальные средства являются частью каждого проекта. Создание проекта позволяет Вам определить, какие инструментальные средства будут участвовать в создании .HEX файла кода.

19

Подробное описание создания проектов с несколькими исходными файлами и правила использования других компиляторов смотрите в главе 4.

Заметьте, что имена файлов в диалоговом окне указаны правильно. Первоначальная настойка проекта соответствует предварительно установленным значениям по умолчанию.

Параметры проекта по умолчанию можно настроить в меню Options > Environment Setup раздел Projects,

которые используются только при создании нового проекта.

В списках файлов проекта есть файл tutor84.hex. Выбрав этот файл (нажав на него левой кнопкой «мышки») кнопка Node Properties

потемнеет, указывая возможность ее нажатия.

Прежде чем выполнять какие-либо действия необходимо указать правила создания шестнадцатеричного файла. Нажав на кнопку Node Properties, появится диалоговое окно настройки параметров компиляции, показанное на рисунке.

Это диалоговое окно содержит параметры настройки, указанные по умолчанию, для инструментальн ого средства, показанного в правом верхнем углу (в данном случае для

MPASM). В самом простом варианте, проект содержит один исходный файл и один шестнадцатеричный .HEX файл.

20