Menu English Ukrainian Russian 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

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

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

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

<< Назад

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

Искусственная кожа для эмуляции прикосновений 15.04.2024

В мире современных технологий, где удаленность становится все более обыденной, сохранение связи и чувства близости играют важную роль. Недавние разработки немецких ученых из Саарского университета в области искусственной кожи представляют новую эру в виртуальных взаимодействиях. Немецкие исследователи из Саарского университета разработали ультратонкие пленки, которые могут передавать ощущение прикосновения на расстоянии. Эта передовая технология предоставляет новые возможности для виртуального общения, особенно для тех, кто оказался вдали от своих близких. Ультратонкие пленки, разработанные исследователями, толщиной всего 50 микрометров, могут быть интегрированы в текстильные изделия и носиться как вторая кожа. Эти пленки действуют как датчики, распознающие тактильные сигналы от мамы или папы, и как исполнительные механизмы, передающие эти движения ребенку. Прикосновения родителей к ткани активируют датчики, которые реагируют на давление и деформируют ультратонкую пленку. Эта ...>>

Кошачий унитаз Petgugu Global 15.04.2024

Забота о домашних животных часто может быть вызовом, особенно когда речь заходит о поддержании чистоты в доме. Представлено новое интересное решение стартапа Petgugu Global, которое облегчит жизнь владельцам кошек и поможет им держать свой дом в идеальной чистоте и порядке. Стартап Petgugu Global представил уникальный кошачий унитаз, способный автоматически смывать фекалии, обеспечивая чистоту и свежесть в вашем доме. Это инновационное устройство оснащено различными умными датчиками, которые следят за активностью вашего питомца в туалете и активируются для автоматической очистки после его использования. Устройство подключается к канализационной системе и обеспечивает эффективное удаление отходов без необходимости вмешательства со стороны владельца. Кроме того, унитаз имеет большой объем смываемого хранилища, что делает его идеальным для домашних, где живут несколько кошек. Кошачий унитаз Petgugu разработан для использования с водорастворимыми наполнителями и предлагает ряд доп ...>>

Привлекательность заботливых мужчин 14.04.2024

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

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

Турбина с другого конца света 01.07.2004

В 2009 году должна вступить в строй электростанция "Три ущелья" на реке Янцзы (Китай).

Водохранилище, при создании которого пришлось переселить почти два миллиона человек из 13 городов, 116 поселков и около 4500 деревень, по площади больше Швейцарии. Для первой очереди электростанции восемь турбин заказаны во Франции, из них три будут доставлены оттуда, а пять построены французскими специалистами на заводе в Китае.

Первая из трех турбин недавно прибыла на место. Завод турбин находится в Гренобле, а отправлять груз должны были из порта Марселя. Однако, так как не все мосты на дороге из Гренобля в Марсель могли выдержать груз диаметром 11 метров и весом 450 тонн, турбину доставляли в Марсель по частям, а там собирали. Для этого на берегу Средиземного моря построен сборочный цех.

Проплыв на судне 20 тысяч километров до Шанхая, турбина была перегружена на баржу и проследовала по реке почти до самой плотины. Последние 30 километров пришлось преодолеть по суше, на грузовой платформе с 288 колесами.

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

▪ Новые драйверы светодиодов от RECOM

▪ Монитор RCA Evolution Premium (M27PG135F)

▪ Луч сверлит бетон

▪ Ракета пожирает сама себя

▪ Прибор для лечения комариных укусов

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

 

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

▪ раздел сайта Радиоприем. Подборка статей

▪ статья Песнь торжествующей свиньи. Крылатое выражение

▪ статья Как арабы пишут и читают цифры? Подробный ответ

▪ статья Боцман береговой. Должностная инструкция

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

▪ статья VFO с электронной перестройкой. Энциклопедия радиоэлектроники и электротехники

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

Имя:


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


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





All languages of this page

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

www.diagram.com.ua

www.diagram.com.ua
2000-2024