Рябов В.Т. - Устройство и программирование однокристальных микроконтроллеров (1041592), страница 15
Текст из файла (страница 15)
Ряд локальных переменных, содержимое которых нет необходимости сохранять при выключении, можно разместить в обычном ОЗУ микроконтроллера.После разработки программы на одном из алгоритмических языков переходят кследующему шагу - исправлению синтаксических ошибок и получению текста программы- в загрузочных кодах. На этом шаге используют программные средства автоматизации –кросc-средства, работающие на инструментальной ЭВМ. В качестве инструментальнойЭВМ используют обычно офисный РС компьютер. К кросс-средствам на этом шаге относятся:а) для ассемблера: кросс-ассемблер (ассемблер, работающей не на микроконтроллере,на который он ориентирован, а на инструментальной машине); редактор связей; библиотеки языка Ассемблер.б) для языка С: транслятор с языка С на ассемблер; библиотеки С; кросс-ассемблер;редактор связей.Транслятор языка высокого уровня позволяет преобразовать программу, написанную на нем (файлы с расширением *.С, *.РАS и др.) в программу на языке Ассемблер(файлы с расширением *.АSМ).
Кросс-ассемблер переводит программу с языка Ассемблерв объектные коды микропроцессора (файлы с расширением *.ОВJ).Исполняемая программа, размещенная в памяти, бывает жестко привязана к адресам. Каждый оператор по своему адресу. Особенно это необходимо, если используютсяпереходы с абсолютной адресацией. Каждый модуль управляющей программы в объектных кодах начинается с нулевого адреса.Редактор связей (линковщик) используют в следующих случаях:− для объединения нескольких написанных по отдельности программ в одну;− для присоединения библиотечных подпрограмм;− для получения общего файла в загрузочном формате (файл с расширением *.НЕХ).На этапе трансляции выявляются и могут быть устранены синтаксические ошибки написания программ.48Следующий шаг разработки программного обеспечения - исправление ошибок налогическом и физическом уровне.
Ошибка на логическом уровне связана с неправильнымописанием логики работы объекта управления (не туда переход по условию, переполнениеячейки памяти при расчетах и т.п.). Такие ошибки транслятор не обнаружит, найти ихможно, просто проигрывая в уме выполнение программы. Это конечно долго, но возможно.
Кроме того, есть программы эмуляторы или симуляторы микроконтроллера, которые,выполняясь на инструментальной ЭВМ, имитируют его работу. При этом, в соответствиис кодом управляющей программы, в модели контроллера изменяются регистры общегоназначения, счетчик команд и все другие ресурсы, на которые влияют команды. Отслеживая переменные в процессе работы программы, вводя точки условного и безусловного останова, словом, используя все типовые приемы отладчика, ошибки на логическом уровнеможно обнаружить и устранить. Хотя этот процесс часто длится не один день.Ошибки на физическом уровне требуют для их выявления работы устройства связис объектом и блока электроавтоматики. Примеры таких ошибок:− дали команду на включение двигателя, а он не включился из-за того, что импульсслишком короток и был зашунтирован ЭДС самоиндукции катушки реле;− слишком редко опрашивается клавиатура и имеют место пропуски обнаружениянажатий;− не верно выбраны константы пропорционально-интегрально-дифференциального(ПИД) закона управления элементом объекта и т.п.В комплексе устранить ошибки на логическом и физическом уровне можно толькоиспользуя практически готовый контроллер и работая с реальным объектом управления.Существуют следующие способы и инструментальные средства отладки программ:1.
Программный эмулятор (симулятор). Первичным инструментом для отладкиприложений является симулятор. Это программа, которая выполняет программный код,используя модель микроконтроллера, и позволяет при этом программисту наблюдать заходом выполнения программы. При этом можно узнать значения регистров, значения всехячеек памяти, с которым оперирует микропроцессор, на каждом шаге программы.
Частосимулятор является частью интегрированной среды программирования, где отладка программы происходит на уровне исходного текста. Мы уже упоминали о таком способе выявления ошибок на логическом уровне.Основной недостаток отладки с помощью симулятора заключается в том, что неучитываются ограничения, накладываемые конкретной схемой связи микроконтроллера собъектом управления и конкретной реализацией механизма. Выше мы уже говорили, чтотаким методом ошибок на физическом уровне не исправить.2.
“Жги и ломай”. Этот метод заключается в том, что программа запускается на готовом микроконтроллере со схемами связи и на конкретном механизме. Затем анализируется то, как исполнительный механизм управляется программой и принимается решение окоррекции программы, устройства сопряжения, либо механизма. Недостатком метода является большая вероятность выхода механизма из строя и, самое главное, длительностьцикла исправления ошибок. РПЗУ следует перепрограммировать, а это занимает длительное время.3. Эмуляция РПЗУ.
Заключается метод в том, что к статическому ОЗУ прикрепляютбатарейку (таким образом, ОЗУ превращается в РПЗУ). Затем эту микросхему подключают к компьютеру, записывают на нее исследуемую программу и устанавливают ее на место РПЗУ. За счет такого подхода сокращается время на перепрограммирование РПЗУ, ноне устраняется ограниченный сервис в проведении отладки. Приходится использоватьсторонние отладчики, возникают проблемы с их работой в реальном времени. Кроме того,метод применим только при шинной архитектуре построения ЛМК, когда схема памятиавтономна, а не входит в состав ИС МК. Сейчас этот метод практически не используют.4.
Отладочная плата или прототип (starter kit, development board). В настоящее время рядом фирм выпускается большое количество семейств однокристальных микрокон-49троллеров. Это семейство MCS-51, различные семейства PIC-микроконтроллеров фирмыMicroChip, фирмы Texas Instruments и др. Под семейством понимают обычно микроконтроллеры с единой системой команд, отличающиеся друг от друга объемом памяти, конфигурацией внешних выводов (портов), ориентацией на управление теми или иными объектами и т.п. Внутри каждого семейства выпускают сейчас так называемые отладочныеплаты (модули) или прототипы. На таком прототипе установлен микроконтроллер с минимальным внешним окружением, создающим вычислительное ядро САУ.Рядом с вычислительным ядром обычно расположена макетная область, на которойпользователем могут быть созданы элементы устройств связи с объектом для практической проверки их работоспособности.Имеется канал связи с инструментальной ЭВМ и микроконтроллером, позволяющий записывать в память МК отлаживаемую программу и проводить ее отладку.
Для поддержки этого процесса на кристалле МК «зашита» коммуникационная программа, частобывает достаточно развитый отладчик или даже среда программирования и отладки дляинструментальной машины. Все это позволяет непрерывно проводить процесс написанияи редактирования ПО ЛМК, компиляцию программ и их перезагрузку в память микроконтроллера, что существенно сокращает трудоемкость проводимых работ.После отладки управляющей программы на логическом и физическом уровнях наоснове прототипа разрабатывают «серийный» контроллер, хотя, для единичных экземпляров, ограничиваются и прототипом.5.
Программно-аппаратный или внутрисхемный эмулятор. Это устройство, котороезаменяет микроконтроллер в схеме ЛМК и выполняет программу под управлением программиста. Главное отличие от предыдущего прототипа микроконтроллера в том, что тамвокруг микроконтроллера формировалось УСО и система энергообеспечения исполнительных механизмов. Здесь же за основу берется законченный контроллер с УСО и энергообеспечением и в колодку, в которой в последующем будет размещен штатный микроконтроллер, вставляются выводы программно-аппаратного эмулятора.Хороший, так называемый полный эмулятор, содержит специальный эмуляторныйкристалл, который подсоединяется к ведущему компьютеру или рабочей станции. Эмуляторный кристалл – это специальный кристалл, обеспечивающий легкий доступ к его памяти программ извне.
Память программ этого кристалла представляет собой статическоеОЗУ или флешпамять. Вне стандартной зоны адресов памяти программ расположена программа – монитор, обеспечивающая связь с персональной ЭВМ, поддерживающей процесс отладки. В ЭВМ работает программа – эмулятор. Она отражает содержимое рабочихрегистров микроконтроллера, регистров специальных функций, зоны памяти программ иданных, состояние таких устройств микроконтроллера, как таймеры и приемопередатчики, позволяет изменять состояние этих устройств и памяти, обеспечивает пошаговый режим работы, расставляет и следит за безусловными и условными точками останова, проводит трассировку переменных управляющей программы и ОЗУ.