Распродажа

Электронные компоненты со склада по низким ценам, подробнее >>>

Журнал Радио

2004: 
1, 2, 3, 4, 5, 6, 7, 8
2003: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
2002: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
2000: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1999: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1998: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1971: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1947: 
1, 2, 3, 4, 5
1946: 
1, 2, 3, 4-5, 6-7, 8-9

Новости электроники

В 14 раз выросло количество россиян на MediaTek Labs ? проекте по созданию устройств "интернета вещей" и "носимых гаджетов"

Сравнив статистику посещения сайта за два месяца (ноябрь и декабрь 2014 года), в MediaTek выяснили, что число посетителей ресурса из России увеличилось в 10 раз, а из Украины ? в 12. Таким образом, доля русскоговорящих разработчиков с аккаунтами на labs.mediatek.com превысила одну десятую от общего количества зарегистрированных на MediaTek Labs пользователей.

Новое поколение Джобсов или как MediaTek создал свой маленький "Кикстартер"

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

Семинар и тренинг "ФеST-TIваль инноваций: MAXIMум решений!" (14-15.10.2013, Новосибирск)

Компания Компэл, приглашает вас принять участие в семинаре и тренинге ?ФеST-TIваль инноваций: MAXIMум решений!?, который пройдет 14 и 15 октября в Новосибирске.

Мне нравится

Комментарии

дима пишет в теме Параметры биполярных транзисторов серии КТ827:

люди куплю транзистар кт 827А 0688759652

тамара плохова пишет в теме Журнал Радио 9 номер 1971 год. :

как молоды мы были и как быстро пробежали годы кулотино самое счастливое мое время

Ивашка пишет в теме Параметры отечественных излучающих диодов ИК диапазона:

Светодиод - это диод который излучает свет. А если диод имеет ИК излучение, то это ИК диод, а не "ИК светодиод" и "Светодиод инфракрасный", как указано на сайте.

Владимир пишет в теме 2Т963А-2 (RUS) со склада в Москве. Транзистор биполярный отечественный:

Подскажите 2т963а-2 гарантийный срок

Владимир II пишет... пишет в теме Параметры биполярных транзисторов серии КТ372:

Спасибо!

Журнал Радио 2 номер 1998 год. МИКРОПРОЦЕССОРНАЯ ТЕХНИКА

ОТЛАДКА МИКРОКОНТРОЛЛЕРОВ С ПОМОЩЬЮ ЭМУЛЯТОРА ПЗУ

Г. ВЫДОЛОБ, В. САМОЙЛОВ, г. Москва (Зеленоград) 

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

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

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

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

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

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

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

ВНИМАНИЮ ЧИТАТЕЛЕЙ

Журналы "Радио" вы можете приобрести в г. Москве по следующим адресам:

1. Магазин "Технической книги" - Ленинский проспект, д. 40; ст. метро "Ленинский пр-кт".
2. Магазин "Библио-глобус" - ул. Мясницкая. 6; ст. метро "Лубянка".
3. Магазин "Электрон" - ул. Бутырский вал, 52; ст. метро "Белорусская".
4. Магазин "Знание' - ул. Петра Романова, 6; ст. метро "Кожуховская",
5. "Олимпийская книжная ярмарка" -Опимпийский проспект (2-й подъезд, 1-й этаж; налево, рядом со входом); ст. метро Проспект Мира".
6. Магазин "Центр-техника"-ул. Петровка, д. 15/13: ст. метро "Охотный ряд".

Вернуться к содержанию журнала "Радио" 2 номер 1998 год







Ваш комментарий к статье
Журнал Радио 2 номер 1998 год. МИКРОПРОЦЕССОРНАЯ ТЕХНИКА :
Ваше имя:
Отзыв: Разрешено использование тэгов:
<b>жирный текст</b>
<i>курсив</i>
<a href="http://site.ru"> ссылка</a>