На основе 8-разрядных МК выполняются, как правило, одноплатные (т. е. расположенные на одной монтажной плате) встраиваемые микропроцессорные системы. Каждая такая система при проектировании должна пройти не только этапы разработки алгоритма работы, выбора элементной базы, проектирования аппаратных средств и прикладной программы управления, но и этапы совместной отладки аппаратной и программной составляющих, как в условиях автономной работы, так и совместно с объектом управления в реальном масштабе времени.
Технология процесса отладки в значительной степени определяет время поиска неисправностей на аппаратном, программном и алгоритмическом уровнях, т. е. время получения работоспособного опытного экземпляра разрабатываемого изделия. Поэтому технология отладки должна быть выбрана еще на этапе проектирования аппаратной и программной части микропроцессорного контроллера с учетом особенностей конечного изделия. Более того, особенности процесса отладки должны быть учтены при разработке аппаратных и программных решений.
В настоящее время для 8-разрядных МК выпускаются следующие типы отладочных средств:
Программные симуляторы. Представляют собой программно-логическую модель МК на персональном компьютере. Позволяют загрузить файл кода разработанной программы управления в память МК и исполнить любой фрагмент этой программы, наблюдая за изменением состояния любого программно доступного ресурса МК. Современные симуляторы обладают полноэкранным графическим интерфейсом пользователя, предоставляя разработчику программного обеспечения возможность одновременного контроля в процессе выполнения программы за изменением содержимого регистров и ячеек памяти. Симулятор имитируют работу не только процессорного ядра, но и всех периферийных модулей. Причем при отладке программы по шагам остановка в контрольной точке эквивалентна останову системы тактирования МК. Вследствие этого одновременно с остановкой программы «приостанавливают» работу и все периферийные модули. При дальнейшем прогоне программы работа периферийных модулей возобновляется с того состояния, в котором они были «приостановлены». Именно такой режим работы наиболее удобен для наблюдения за процессом реализации микроконтроллером управляющей программы. Но именно этот режим обычно не достижим в аппаратных средствах отладки (схемных эмуляторах и отладочных платах). Дело в том, что для наблюдения за состоянием ресурсов реального МК необходимо передавать это состояние в персональный компьютер с целью отображения на экране дисплея. Такую передачу осуществляет специальная программа монитора отладки, которую продолжает исполнять реальный
МК после останова в контрольной точке тестируемой программы. Выполнение любой программы возможно только при работающей системе тактирования. Следовательно, после останова тестируемой программы в контрольной точке все периферийные модули МК продолжают работать. В результате совокупное состояние периферии МК перестает соответствовать предполагаемому состоянию в ходе непрерывного выполнения тестируемой программы.
С точки зрения современной терминологии, программный симулятор можно охарактеризовать как «виртуальный МК». Алгоритмы такого «виртуального МК» полностью совпадают с алгоритмами работы реальной микросхемы, но при этом имеются широкие дополнительные возможности по вмешательству в процесс исполнения тестируемой программы управления. Именно поэтому симуляторы следует использовать на начальном этапе отладки программного обеспечения. Кроме того, поскольку реального МК на этапе программной симуляции просто не существует, то и ограничений в использовании ресурсов МК, связанных с обслуживанием процесса отладки, тоже нет. Таким образом, все ресурсы (правда, виртуальные), которые могут быть использованы в проекте, предоставлены в распоряжение пользователя.
Основной недостаток программного симулятора - невозможность подключения реальных физических источников входной информации и невозможность формирования реальных выходных сигналов для управления объектом. Поэтому с помощью программного симулятора можно проверить лишь правильность исполнения микроконтроллером программы управления, но нельзя проверить работоспособность аппаратной части проектируемого одноплатного контроллера и, как следствие, достижение управляемым объектом требуемых технических характеристик.
Целесообразность этапа моделирования на программном симуляторе определяется также тем фактом, что его можно проводить на самой ранней стадии работы над проектом, когда аппаратная часть находится еще в стадии проектирования.
Внутрисхемные симуляторы. Позволяют провести отладку программного обеспечения и аппаратной части разрабатываемого контроллера. При этом электрические характеристики выходных и входных сигналов МК полностью идентичны реальным характеристикам, но программа управления работает в замедленном масштабе времени.
Набор внутрисхемного симулятора включает простую плату аппаратных средств и комплект программного обеспечения для персонального компьютера. Обмен данными между персональным компьютером и платой внутрисхемного симулятора осуществляется в большинстве случаев посредством интерфейса RS-232. Основным элементом платы внутрисхемного симулятора является реальный физический МК. Однако конкретная модель этого замещающего МК не обязательно совпадает с моделью целевого МК (т. е. того МК, на основе которого ведется разработка устройства управления). Периферийные модули замещающего МК идентичны модулям целевого МК, а число линий портов ввода/вывода замещающего МК может превышать аналогичное число целевого МК. Эти «лишние» линии используются для обмена с персональным компьютером. Выводы замещающего МК, полностью совпадающие по функциональному назначению с выводами целевого МК, выведены на разъем с цоколевкой последнего. Персональный компьютер имитирует программно-логическую модель целевого МК, включая алгоритмы работы периферийных модулей. Отлаживаемая прикладная программа также, как и в программном симуляторе, выполняется внутренними средствами персонального компьютера. Связь с замещающим МК осуществляется только в случае необходимости ввода или вывода данных. Под управлением программы монитора, которая записана в ПЗУ замещающего МК, сформированные в персональном компьютере выходные воздействия поступают на соответствующие выводы замещающего МК, а затем на одноименные контакты разъема целевого МК. Или состояния входов целевого МК считываются со входов замещающего
МК и передаются в персональный компьютер. При подключении разрабатываемого изделия к разъему целевого МК создается полная иллюзия работы под управлением целевого МК, но в замедленном по отношению к реальному масштабе времени. Отсюда и название - «симулятор».
Главное преимущество внутрисхемных симуляторов: возможность совместной отладки аппаратной и программной частей изделия, а также возможность совместной с объектом управления отладки при сохранении доступа разработчика ко всем внутренним ресурсам МК. Главный недостаток - замедленный масштаб времени при исполнении алгоритма управления. Поэтому отладку с использованием внутрисхемных симуляторов следует применять в тех случаях, когда время реализации алгоритма управления заведомо превышает требования объекта управления. Например, если МК в составе домашнего термометра начнет выполнять программу в замедленном темпе, изменится лишь время вывода значения измеренной температуры на экран индикатора, человек при этом вряд ли заметит эти изменения на глаз. Задачи, которые не требуют предельного быстродействия, обычно реализуются на основе сравнительно простой элементной базы 8-разрядных МК. Поэтому внутрисхемные симуляторы выпускаются для МК в корпусах с 16, 20, 28 и максимум с 40 выводами. Для более сложных МК с большим набором периферийных модулей следует использовать средства отладки, работающие в реальном масштабе времени.
Отладочные платы, оценочные модули. Позволяют провести отладку программного обеспечения и аппаратной части разрабатываемого микропроцессорного контроллера в реальном масштабе времени. Исполнение отлаживаемой программы управления осуществляет реальный МК, полностью идентичный целевому микроконтроллеру. Исполнение программы между точками останова происходит в реальном масштабе времени. Поэтому как электрические, так и временные характеристики входных и выходных сигналов МК полностью идентичны характеристикам целевого МК на плате конечного изделия.
Средство отладки, именуемое отладочной платой или оценочным модулем (англоязычная терминология - evaluation board), представляет собой комплекс из одноплатного контроллера и программного обеспечения для персонального компьютера. Микропроцессорный контроллер выполнен на основе БИС МК, который принадлежит к тому же семейству, что и целевой МК. Желательно, чтобы целевой МК был как можно ближе к модели МК отладочной платы. Как правило, рассматриваемый класс средств отладки выполняется на основе МК с открытой архитектурой, т. е. на основе МК, которые имеют внешние магистрали адреса и данных и допускают подсоединение внешней памяти. Аппаратные средства отладочной платы включают БИС МК, БИС памяти программ двух типов (ПЗУ и ОЗУ), минимальный набор типовых периферийных средств (простейшая клавиатура, несколько светодиодов) и последовательный интерфейс для связи с персональным компьютером. В ПЗУ размещаются программа обмена с персональным компьютером и программа монитора отладки. При включении питания отладочной платы запускается программа монитора отладки, которая реализует функции:
•загрузки программного кода по последовательному интерфейсу из персонального компьютера в ОЗУ отладочной платы;
•загрузку регистров центрального процессора требуемыми значениями под управлением оператора персонального компьютера;
•запуск программы из ОЗУ на исполнение в автоматическом режиме или с остановом
по контрольным точкам;
•передачу в персональный компьютер состояния регистров и ячеек памяти МК после
останова в контрольной точке.
Под управлением монитора отладки в память отладочной платы из персонального компьютера загружается исполняемый код прикладной программы. Затем эта программа управления выполняется в любом желаемом режиме: по шагам, с остановом по контрольным точкам, в автоматическом режиме. В моменты останова прикладной программы управление передается монитору отладки, который пересылает в персональный компьютер состояние внутренних программно доступных регистров МК и ячеек памяти для отображения их состояния на экране дисплея.
Несомненным преимуществом такого решения является тот факт, что фрагменты прикладной программы или эта программа целиком могут быть выполнены в реальном масштабе времени. Поэтому под управлением отладочной платы может непосредственно работать управляемый объект. Недостатком отладочных плат является тот факт, что часть ресурсов МК должна быть задействована для выполнения программы монитора отладки и не может быть использована разработчиком при моделировании прикладной программы. Так, для реализации отладочного режима обязательно будут использованы встроенный модуль контроллера асинхронного последовательного интерфейса, некоторое количество ячеек ОЗУ данных, наиболее вероятно использование одного таймера.
Ряд МК (например, семейство НС11 фирмы «Motorola») выпускается со встроенной программой загрузки программного кода по последовательному интерфейсу. Эта программа запускается сразу после включения напряжения питания БИС МК, если на некоторые входы параллельных портов подана оговоренная в техническом описании комбинация нулей и единиц. В англоязычной терминологии эта программа носит название «boot loader». Тогда эта программа используется в отладочном модуле для загрузки из персонального компьютера во внешнее ОЗУ программы монитора отладки. Такое решение упрощает задачу разработчика отладочных средств, поскольку БИС внешнего ПЗУ на плате отладочного модуля теперь может отсутствовать, а часть необходимого программного обеспечения для организации отладки уже имеется в готовом виде. Однако основной недостаток рассматриваемого способа отладки не устраняется: по-прежнему часть ресурсов МК «отнимается» у разрабатываемой программы управления для реализации программы отладочного монитора.
Схемные эмуляторы. Позволяют провести отладку программного обеспечения и аппаратной части разрабатываемого микропроцессорного контроллера в реальном масштабе времени. Исполнение отлаживаемой программы управления осуществляет замещающий МК, полностью идентичный целевому микроконтроллеру. Исполнение программы между точками останова происходит в реальном масштабе времени. Поэтому как электрические, так и временные характеристики входных и выходных сигналов МК полностью идентичны характеристикам целевого МК. Связь с персональным компьютером, управление режимами отладки возложены на другой МК, который входит в состав аппаратных средств платы схемного эмулятора. Поэтому при отладке разрабатываемой программы разработчик не имеет ограничений в использовании внутренних ресурсов замещающего МК. Выводы замещающего МК выведены на разъем, который посредством гибкого высокочастотного кабеля со специальной переходной головкой соединяется с розеткой целевого МК на плате разрабатываемого изделия. Такая организация позволяет производить отладку разработанных аппаратных средств совместно с объектом управления при реализации сложных алгоритмов управления в реальном времени.
Схемный эмулятор является почти идеальным средством отладки. Но и он обладает недостатками:
• во-первых, конструкция с гибким высокочастотным кабелем не позволяет встраивать его в конструкции конечного изделия;
• во-вторых, высокочастотный кабель не может работать в условиях сильных электромагнитных помех, поэтому невозможна отладка систем управления силовыми полу
проводниковыми преобразователями;
• в третьих, схемные эмуляторы дороги и не всегда оправданы в применении с экономической точки зрения.
Внутрисистемное программирование и отладка. Большинство современных 8-разрядных МК имеют закрытую архитектуру, т. е. на их основе невозможно выполнить отладочную плату или плату развития по описанному выше принципу. Но отладочные средства, которые могут работать в реальном времени и по возможности лишены недостатков схемного эмулятора, крайне необходимы. Задача построения таких средств решается с использованием специальных режимов работы МК и при наличии в составе МК многократно перепрограммируемой памяти программ типа FLASH или EEPROM.
Примером могут служить МК семейства НС08 фирмы «Motorola». Все МК этого семейства кроме пользовательского режима работы, в котором выполняется прикладная программа управления, имеют вспомогательный отладочный режим работы (Monitor mode). Этот режим позволяет организовать «диалог» МК с персональным компьютером верхнего уровня с целью отладки программ управления и выполнения операций стирания/программирования областей резидентной памяти типа FLASH или EEPROM.
При переходе МК в отладочный режим работы аппаратные средства автоматически подменяют векторы сброса и программного прерывания. В результате после сброса по внешнему сигналу на входе счетчик адреса МК загружается начальным адресом программы монитора отладки. Эта программа располагается в специальной области памяти, которая не является частью адресного пространства памяти программ МК (см. рис. 4.45). Прошивка монитора отладки осуществляется на этапе производства. Пользователь может либо активизировать эту программу посредством перевода МК в отладочный режим работы, либо не использовать эту программу вообще.
Программа монитора отладки содержит в себе подпрограмму драйвера обмена по однопроводной двунаправленной линии и подпрограмму выполнения шести команд отладки, которые поступают в МК по этому однопроводному интерфейсу. С использованием команд отладки может быть создано специальное программное обеспечение, которое позволит выполнить следующие действия:
• если прикладная программа управления уже загружена в МК каким-либо образом, то запустить эту программу на выполнение с заданного адреса и, используя встроенный в МК модуль прерываний по контрольным точкам BRAKE08, остановить ее в желаемой точке;
• загрузить в ОЗУ МК фрагмент разрабатываемой прикладной программы и запустить ее на выполнение: с остановкой по контрольной точке или без нее, по желанию пользователя;
• передать в компьютер верхнего уровня состояние регистров центрального процессора
и ячеек памяти после остановки в контрольной точке;
• загрузить в ОЗУ МК по однопроводному интерфейсу программу стирания/программирования FLASH или EEPROM ПЗУ и, передавая коды прикладной программы или таблиц данных порциями, осуществить программирование резидентной памяти МК объемом вплоть до 64 Кбайт.
Все перечисленные действия, за исключением последнего, являются типовыми режимами работы средства отладки МП системы. Таким образом, наличие в МК семейства НС08 отладочного режима работы позволяет перевести задачу создания простых средств отладки в плоскость создания программного обеспечения для процесса отладки. Такое программное обеспечение должно быть разработано как для МК, так и для персонального компьютера. Однако это программное обеспечение полностью инвариантно к прикладной задаче управления.
Минимальные ограничения, которые накладывает отладочный режим на аппаратные и программные ресурсы МК, с одной стороны, и универсальность резидентного программного обеспечения для отладки и программирования, с другой стороны, являются весомыми предпосылками для проектирования аппаратной части встраиваемой МП-системы с несколько избыточной схемотехникой. Такая схемотехника обеспечит работу МК в рабочем режиме в процессе эксплуатации изделия и в отладочном режиме - в процессе отладки изделия. Если в разработке используется МК с FLASH-памятью программ, то такой МК можно будет программировать прямо на плате конечного изделия без использования специальных средств программирования. МК, которые обеспечивают такую возможность, принято называть программируемыми в системе (англоязычный термин - «In system programmable»).
Возможность многократного программирования FLASH-памяти программ позволяет при работе в отладочном режиме записать вариант отлаживаемой программы в резидентную память МК, а затем под управлением встроенного монитора запустить ее с остановкой в желаемых точках. Таким образом получается, что устройство отладки реального времени уже существует в самом МК, т. е. прикладная программа может отлаживаться прямо на плате конечного изделия, без дополнительных аппаратных средств отладки, с применением только специального программного обеспечения для персонального компьютера.
Рассматриваемый принцип организации отладки в настоящее время является самым перспективным для 8-разрядных МК. Поэтому большинство новых моделей МК уже имеют в своем составе аппаратные средства внутрисхемной отладки