Программаторы

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

Программаторные платы. Такие программаторы предназначены для про­граммирования конкретной серии микроконтроллеров с использованием и без использования инструментального (обычно персонального) компьютера. Про­граммируемый контроллер вставляется в имеющуюся на программаторной плате панельку. Рассмотрим:

●     платы, использующие компьютер. При использовании компьютера плата под­ключается к его последовательному порту. Данные вводятся с клавиатуры, отображаются на экране монитора и после редактирования загружаются в буферную память (ОЗУ), после чего ее содержимое переписывается в про­граммируемое ПЗУ. Для записи используются сигналы определенной мощно­сти и длительности, которые формируются размещенными на плате устрой­ствами. После программирования выполняется верификация путем считывания и сравнения содержимого ПЗУ и буферной памяти. При выявлении несовпа­дений производится повторное программирование соответствующих ячеек;

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

Недостаток программаторных плат — возможно программирование только (одной или нескольких) однотипных моделей микроконтроллеров.

Универсальные программаторы. Эти программаторы работают под уп­равлением инструментального компьютера и конструктивно реализуются в виде:

●     платы расширения, к которой подключен внешний коммутационный блок, имеющий панельки для установки программируемых изделий (микроконтролле­ров или микросхем ПЗУ). Плата расширения размещается внутри компьютера;

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

К основным характеристикам программатора относятся:

●     количество корректно поддерживаемых микросхем, алгоритмов программи­рования и форматов. Возможность расширять список поддерживаемых мик­росхем, без аппаратных доработок;

●     способность поддерживать специфические режимы программирования раз­личных микросхем (например, варианты «закрытия», «вскрытия» программ);

●     удобство программной оболочки программатора, вид и количество дополни­тельных сервисных функций;

●     надежность программатора.

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

Конструкция. Анализаторы выполняются в виде автономных измерительных приборов или плат расширения, подключаемых к инструментальному компьютеру. Анализаторные платы являются недорогими средствами контроля состояния системы. При их использовании для хранения последовательности, состояний используется память базового компьютера, который управляет процессом измерения и производит обработку результатов, благодаря этому анализаторная плата оказывается достаточно простой и более дешевой, чем автономный анализатор.

Резидентные мониторы. Назначение. Монитор (или отладчик) — это про­грамма, предназначенная для контроля над выполнением программы–приложения, и представляет собой специализированный обработчик прерываний. Активизация монитора в микроконтроллере происходит только тогда, когда работа приложе­ние прерывается пользователем. Поскольку поддержка монитора не требует за­трат времени на выполнение команд, приложение выполняется с высокой ско­ростью. В отличие от обычных обработчиков прерываний монитор является слож­ной программой, которая не только контролирует выполнение приложения, но и осуществляет интерфейс с пользователем. Поэтому при взаимодействии пользователя с пассивным устройством, монитор должен уметь проводить анализ вводимых команд. Для управления приложением используется содержимого про­граммного счетчика, которое при запуске монитора сохраняется в стеке. Управ­ление выполнением программы сводится к контролю и обновлению адреса воз­врата в стеке. Например, для реализации перехода по некоторому адресу доста­точно его поместить в стек, так как при возврате из прерывания этот адрес будет загружен в программный счетчик.

Основные функции и их реализация. Основными функциями монито­ра являются: загрузка и (пошаговое) выполнение программы, останов в контрольных точках, модификация программы путем изменения содержимого памяти или регистров, ассемблирование и дезассемблирование команд.

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

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

●     в случае использования прикладной программой аппаратных ресурсов, необ­ходимых монитору, работа приложения или процесс отладки будут нарушены;

●     контроллеры имеют малый объем памяти. Поэтому для совместного разме­щения прикладной программы и монитора уменьшают размеры программы–отладчика. Встречаются мониторы, которые занимают всего 512 байт. Для реализации монитором перечисленных выше функций должны выполнять­ся соответствующие требования.

Процессор микроконтроллера должен предоставлять возможность чтения–за­писи содержимого памяти программ, а также возможность записи в память про­грамм из выполняющейся программы, иначе монитор не может быть использован для отладки приложения.

Микроконтроллер должен соответствовать Принстонской архитектуре, для ко­торой существует только одно адресное пространство, используемое для кода программы, данных и стека. В этом случае отлаживаемая программа может быть помещена в память RAM, что даст возможность легко его Модифицировать. Для контроллеров с Гарвардской архитектурой мониторы обычно не разрабатываются. Основная причина этого состоит в том, что различная разрядность команд и дан­ных значительно усложняет задачу модификации команды. Этот недостаток в Гар­вардской архитектуре не является непреодолимым препятствием для написания программ, работающих как монитор. Однако без специального интерфейса с памятью программ реализация функций монитора (даже в сокращенном виде) будет очень сложна или даже невозможна.

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

Для реализации точек останова и пошагового выполнения программ тре­буется модифицировать содержимое памяти, в которой хранится код прикладной программы. Поэтому микроконтроллер должен располагать возможностью запи­си программ в свою память. Такая возможность требуется для обновления про­граммы и расстановки контрольных точек останова. Пошаговое выполнение мо­жет быть реализовано путем передачи управления монитору после выполнения каждой команды. Некоторые контроллеры имеют режим работы, при котором ав­томатически генерируется прерывание после каждой команды.

Для ассемблирования и дизассемблирования команд требуется значительный объем памяти, который занимает программа–монитор. Для резидентного монито­ра эта функция может оказаться нереализуемой из–за ограниченности объема памяти микроконтроллера. В этом случае приходится распечатывать ассемблер­ный листинг приложения, который наряду с командой содержит ее шестнадцатеричный код и адрес, чтобы иметь возможность правильно расставить конт­рольные точки и понять, что происходит при обращении по определенному адресу.

Функции чтения и записи содержимого регистров часто реализуется по ко­манде пользователя двумя способами:

●     содержимое регистров обновляется сразу после получения команды пре­рывания. В этом случае пользователь позднее может использовать загрузку в них различного содержимого, чтобы инициировать работу микроконтролле­ра в различных режимах и ситуациях. Такой способ позволяет выявить осо­бенности функционирования микроконтроллера;

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

Широкое распространение резидентных мониторов стало возможным благо­даря следующим обстоятельствам:

●     универсальности программного обеспечения, используемого для отладки;

●     минимальным ограничениям, которые накладывает отладочный режим на ап­паратные и программные ресурсы микроконтроллера;

●     возможности введения в микроконтроллер избыточной схемотехники, обес­печивающей его работу в рабочем режиме в процессе эксплуатации изделия и в отладочном режиме — в процессе отладки изделия. Мониторы широко используются для отладки прикладных программ, даже если их возможности реализуются не полностью из–за ограниченности ресурсов микроконтроллера. Их стоимость значительно меньше схемных эмуляторов. Дальнейшее развитие резидентных средств отладки связано с внедрением в микроконтроллеры Flash–памяти программ.

Внутрисистемная отладка–программирование. Способ программиро­вания в системе. Современные 8–разрядные микроконтроллеры (например, МК семейства НС08 фирмы «Motorola») располагают многократно перепрограм­мируемой памятью программ типа FLASH или EEPROM и кроме пользовательско­го режима работы, в котором выполняется прикладная программа управления, имеют вспомогательный отладочный режим работы (Monitor Mode). В этом режи­ме осуществляется отладка программ управления и выполнение операций стира­ния/программирования областей резидентной памяти путем диалога МК с инст­рументальным (персональным) компьютером. Для отладки используется специ­альное программное обеспечение, разработанное как для МК, так и для инстру­ментального компьютера. Оно заносится в память микроконтроллеров на этапе их изготовления. Следовательно, в самом микроконтроллере без дополнительных аппаратных затрет имеются средства, позволяющие отлаживать прикладную про­грамму на плате конечного изделия и заносить в память отлаженную программу. Такой способ организации отладки, называемый программированием в системе (In System ProgrammableISP), является перспективным и широко используется в 8–разрядных МК. Его реализация накладывает некоторые ограничения на аппа­ратные и программные ресурсы, используемые для отладки.

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

●     загрузить в ОЗУ МК разрабатываемую прикладную программу (или ее фрагмент) и запустить на выполнение с остановкой по контрольной точке или без нее;

●     запустить прикладную программу на выполнение с заданного адреса, если она загружена в МК, остановить ее выполнение в желаемой контрольной точ­ке и передать в инструментальный компьютер состояние регистров централь­ного процессора и ячеек памяти после остановки;

●     загрузить в ОЗУ МК по однопроводному интерфейсу программу стирания/ программирования FLASH или EEPROM ПЗУ и, передавая коды прикладной программы или таблиц данных порциями, осуществить программирование резидентной памяти МК объемом вплоть до 64 Кбайт.

Перечисленные действия, кроме последнего, реализует рассмотренный выше резидентный монитор. Возможность многократного программирования FLASH–памяти программ позволяет при работе в отладочном режиме записать в рези­дентную память МК окончательный вариант отлаживаемой программы.

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

Интегрированные среды разработки позволяют:

● выполнить автономную отладку программного обеспечения с помощью симуляторов и комплексную отладку систем с применением схемных эмуляторов, плат развития и логических анализаторов;

●     использовать для отладки систем дополнительные программные и аппарат­ные средства, созданные различными фирмами;

●     создавать системы реального времени на базе разрабатываемого программ­ного обеспечения или с использованием ядра ОСРВ из имеющегося набора.

Состав. В состав среды входят следующие программные средства:

●     символьный отладчик, упрощающий контроль и модификацию режимов отладки;

●     графические средства разработки, обеспечивающие с помощью инструментального компьютера многооконный графический интерфейс;

●     симуляторы микроконтроллеров, а также модели некоторых периферийных устройств;

●     резидентные мониторы–отладчики, загружаемые в память плат развития при их использовании для комплексной отладки систем;

●     мониторы–драйверы, обеспечивающие в процессе комплексной отладки управление схемными эмуляторами, платами развития, логическим анали­затором.

В состав среды могут входить специальные средства для разработки систем, которые работают в реальном режиме времени и предоставляют пользователю такие возможности как:

●     включение в состав программного обеспечения системы ядра реального вре­мени аналогичного тем, которые используются в современных операционных систем реального времени (ОСРВ). Использование готовых ядер значительно сокращает время разработки программного обеспечения, дает гарантии на­дежного функционирования системы в реальном масштабе времени;

●     разработка собственного монитора реального времени, когда готовые ядра не удовлетворяют предъявляемым требованиям (по объему необходимой па­мяти или времени отклика на внешние события).

Режимы отладки. Интегрированные среды обеспечивают два режима от­ладки программного обеспечения:

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

●     режим комплексной отладки, в котором для отладки системы используются резидентный монитор–отладчик, схемный эмулятор или плата развития. Конт­роль состояния системы в процессе отладки осуществляется с помощью ло­гического анализатора. Инструментальный компьютер управляет схемным эмулятором, платой развития и логическим анализатором с помощью мони­торов–драйверов.

 

Интегрированные среды эффективно используются для программирования и комплексной отладки микроконтроллерных систем, обеспечивая при этом ши­рокие возможности разработки программного обеспечения для работы в режиме реального времени.