Menu Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Отладка микроконтроллеров с помощью эмулятора ПЗУ. Энциклопедия радиоэлектроники и электротехники

Бесплатная техническая библиотека

Энциклопедия радиоэлектроники и электротехники / Микроконтроллеры

Комментарии к статье Комментарии к статье

Трудоемкость разработки и отладки рабочей программы электронного устройства, содержащего микропроцессор, нередко определяет стоимость его разработки в целом. В микроконтроллерах (МК), интегрировавших в себе память и некоторые периферийные устройства, это проявляется особенно сильно. Одно из средств, значительно облегчающих отладку, - описанный в [1] эмулятор ПЗУ. В предлагаемой статье описывается технология работы с ним. Возможности отладки не ограничиваются изложенными приемами. Этот процесс, как и проектирование в целом, в определенной степени - искусство: для одного и того же инструмента каждый создает "свою музыку". Мы будем благодарны читателям, которые поделятся своими оригинальными средствами и методами отладки программ МК.

Сложность и трудоемкость процесса отладки программного обеспечения МК определяется следующими факторами [2]:

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

Традиционная контрольно-измерительная аппаратура (например, осциллограф) может лишь в ограниченной степени использоваться для отладки МК.

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

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

Хотя эмуляторы ПЗУ - не единственное и не самое мощное отладочное средство, они по-прежнему популярны. Их "долголетие" объясняется независимостью от типа МК (необходима только возможность работы с внешней памятью программ), работой в реальном масштабе времени, невысокой ценой и доступностью широкому кругу разработчиков аппаратуры и радиолюбителей. Технологию отладки программы с помощью эмулятора ПЗУ рассмотрим на примере МК семейства MCS-51 (8031, 8051, 80C31, 80С51. КР1816ВЕ31, КР1816ВЕ51, КР1830ВЕ31, КР1830ВЕ51 и т. п.).

Приступая к отладке, необходимо проверить работоспособность аппаратной части системы и самого МК. Для этого можно воспользоваться тестами "свободного счета" [3]. которые заключаются в переборе всех возможных кодовых комбинаций на линиях портов МК. В процессе тестирования линии портов будут устанавливаться в состояние вывода, поэтому прежде всего убедитесь по схеме отлаживаемого устройства, что они не нагружены на выходы других элементов. Временно отсоедините такие нагрузки, если они есть.

Загрузите эмулятор ПЗУ кодами команды "нет операции" (NOP) в пределах всего адресного пространства программ МК. Для MCS-51 это код 00Н. Выполняя такую "программу", МК последовательно перебирает все адреса программной памяти. Проконтролируйте осциллографом сигналы ALE, РМЕ и портов Р0, Р2. Осциллограммы на линиях портов должны соответствовать временным диаграммам двоичного счетчика с учетом мультиплексирования на Р0 младшего байта адреса и данных.

Далее проверьте порты Р1 и РЗ, загрузив в эмулятор ПЗУ тестовую программу, приведенную в табл. 1. Она выводит на линии указанных портов последовательность кодов от 00Н до 0FFH, моделируя восьмиразрядный двоичный счетчик. Если осциллограммы соответствуют требуемым, восстановите отключенные от портов нагрузки и переходите к отладке рабочей программы МК. Помните, что вы отлаживаете одновременно программную и аппаратную части системы, и не забывайте периодически контролировать осциллографом сигналы в контрольных точках. Несоответствие вида сигналов вашим представлениям о них -повод для серьезных размышлений и дополнительных проверок.

Отладка микроконтроллеров с помощью эмулятора ПЗУ

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

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

Примерный вид основного программного модуля в начале отладки приведен в табл. 2. Он содержит только точку входа в программу и обработчик выхода из нее. Хотя в микроконтроллерных системах такой выход используют крайне редко, его необходимо предусмотреть для корректного завершения аварийных ситуаций. В рассматриваемом примере после завершения работы программа "зацикливается". Из этого состояния ее выведет только перезапуск системы сигналом аппаратного сброса.

Отладка микроконтроллеров с помощью эмулятора ПЗУ

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

Например, чтобы вывести содержимое внутреннего ОЗУ данных МК, соедините его выход сигнала записи во внешнюю память данных (WR) со входом сигнала записи эмулятора ПЗУ и используйте подпрограмму, приведенную в табл. 3. Предполагается, что объем памяти программ отлаживаемого устройства не превышает 32 Кбайт, поэтому отладочная информация, помещаемая в память эмулятора, начинается с адреса 8000Н. Содержимое регистров R0 и R1 пересылается отдельно, так как в дальнейшем они используются в подпрограмме для организации цикла. После вывода отладочной информации программу МК приостанавливают, считывают управляющим компьютером содержимое ячеек памяти эмулятора ПЗУ 8000H-807FH, выводят его на дисплей и анализируют. Аналогичным образом может быть выведено содержимое всех программно доступных регистров МК.

Отладка микроконтроллеров с помощью эмулятора ПЗУ

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

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

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

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

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

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

С помощью эмулятора ПЗУ можно отладить и программу, предназначенную для работы во внутренней памяти МК, если временно разместить ее во внешней памяти программ. Так как при этом порты Р0 и Р2 окажутся занятыми обслуживанием внешней памяти, то, если оставшихся свободными линий ввода-вывода МК недостаточно, Р0 и Р2 заменяют портами ввода-вывода, адресуемыми как ячейки внешней памяти данных. Их подключают по стандартным схемам, применяя для увеличения числа линий вывода триггерные регистры, а числа линий ввода - элементы с тремя состояниями выходов.

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

Литература

  1. Выдолоб Г., Кудряшов В., Самойлов В. Эмулятор ПЗУ/ОЗУ RE020. - Радио, 1997. №11, С. 30-32.
  2. Зеленко Г. В., Иванников А. Д., Сыпчук П. П. Проектирование и отладка микропроцессорных систем. - М. Машиностроение. 1982.
  3. Уильяме Г. Б. Отладка микропроцессорных систем: Пер. с англ. - М Энергоатомиздат. 1988

Авторы: Г.Выдолоб, В.Самойлов, г.Москва (Зеленоград)

Смотрите другие статьи раздела Микроконтроллеры.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Экраны влияют на детей неравномерно в разном возрасте 01.08.2026

Планшеты и смартфоны давно стали привычной частью повседневной жизни даже самых маленьких детей. Родители часто используют гаджеты, чтобы успокоить малыша или занять его на время, однако ученые все чаще задаются вопросом, как экранное время сказывается на развитии мозга и будущей способности к обучению. Новое исследование показывает, что значение имеет не только продолжительность просмотра, но и возраст, в котором ребенок проводит время перед экраном. Ученые наблюдали детей от рождения до 8 лет. Оказалось, что больше всего экраны влияют на мозг в два периода - в раннем младенческом возрасте и перед поступлением в школу. У детей, много времени проводивших перед экранами в эти возрастные точки, в 9 лет были несколько хуже успехи в обучении, а в 10,5 лет хуже работала рабочая память - способность удерживать и обрабатывать информацию здесь и сейчас. Исследователи из Франции и Сингапура проанализировали данные 502 детей и выделили два ключевых этапа. У младенцев мозг развивается очень ...>>

Умные жилеты, спасающие от жары 01.08.2026

Летняя жара в больших городах все чаще становится серьезным испытанием для людей, работающих на открытом воздухе. Мусорщики, строители и другие специалисты вынуждены проводить часы под палящим солнцем, рискуя перегревом. Китайские инженеры предложили практичное решение - специальные охлаждающие жилеты, которые помогают снизить ощущаемую температуру примерно на 10 градусов. Пока мир страдает от сильной жары, китайские инженеры разработали "умные" жилеты с климат-контролем. Жилеты с кондиционированием почти не отличаются от обычной рабочей одежды. Главное отличие - в системе охлаждения. В городе Нанкин в жилет вмонтированы два вентилятора, работающих от портативных аккумуляторов. Одного заряда хватает на 3-4 часа непрерывной работы. В Чанчжоу решили разместить в карманах охлаждающие элементы с материалом, который при нагревании переходит из твердого состояния в жидкое, активно поглощая тепло. Это поддерживает комфортную температуру в течение 2,5-4 часов. Такие жилеты выглядят почти ...>>

Летающие ветротурбины 3 МВт вышли в серию 31.07.2026

Традиционные ветряные электростанции зависят от силы и стабильности ветра у поверхности земли, где воздушные потоки часто бывают слабыми и порывистыми. На больших высотах ветер обычно сильнее и постояннее, поэтому инженеры уже давно рассматривают возможность подъема турбин в воздух. Китайская компания сделала важный шаг в этом направлении, перейдя от испытаний к мелкосерийному производству. Компания Beijing Linyi Yunchuan Energy Technology запустила мелкосерийное производство летающей ветротурбины S2000, а в провинции Чжэцзян возводят отдельный завод по производству материалов для оболочки аппарата. У компании уже есть предварительные договоренности с прибрежными городами и горными регионами, которые рассматривают возможность использования этой технологии для удовлетворения собственных энергетических потребностей. Прототип, который полгода назад только что поднялся в небо над Сычуанем, теперь превращается в целую отрасль. Идея S2000 проста: вместо того чтобы устанавливать ветряну ...>>

Случайная новость из Архива

Нанотехнологии в цирке 25.11.2008

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

Толщина нанотрубки меньше длины волны света, поэтому ее можно увидеть только в электронный микроскоп. И даже канат из нанотрубок невозможно увидеть, если промежутки между его "прядями" составят более одной длины волны света. Свет будет просто проходить между нитями каната.

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

Чтобы канат действительно оказался невидимым, расстояние между нанотрубками в нем должно составлять 5 микрометров. Десять метров такого каната будут весить всего одну десятую миллиграмма. Подобные "веревки" могли бы найти применение в цирке и для создания спецэффектов в кино.

Другие интересные новости:

▪ 3D-принтер изготовит сиденья для спорткаров

▪ Самое большое в мире здание, напечатанное на трехмерном принтере

▪ Радиосигнал из артерии

▪ Швейная машина с компьютером

▪ Зеленые комплектующие Microsoft

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта Измерительная техника. Подборка статей

▪ статья Целлофан. История изобретения и производства

▪ статья Что такое тапиока? Подробный ответ

▪ статья Машинист башенного крана. Типовая инструкция по охране труда

▪ статья Самодельная ветросиловая установка. Уход за ветродвигателем. Энциклопедия радиоэлектроники и электротехники

▪ статья Есть ли у воды кожа? Физический эксперимент. Физический эксперимент

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2026