Программные системы моделирования
Симуляторы (программно-логические модели) микропроцессоров и микроконтроллеров, используемые при отладке программ, редко поставляются в виде отдельных средств поддержки программирования. Обычно они входят в состав отладчиков.
Отладчики являются основным инструментом разработчика программного обеспечения, без которого практически невозможно получить работоспособные объектные модули рабочей программы. Отладчик реализует различные режимы выполнения транслированной программы — пошаговый или с остановами в контрольных точках, позволяет производить про- смотр и коррекцию содержимого регистров и ячеек памяти, обеспечивает в точке останова контроль выполнения предыдущих шагов программы (просмотр трассы), дисассемблирование команд. Отладчик воспринимает программу на уровне исходного кода или в символическом виде, с использованием введенных разработчиком имен и меток. Символические отладчики являются наиболее удобным средством отладки, так как они представляют и воспринимают информацию в наиболее наглядной и удобной для программиста форме.
Помимо симулятора, отладчики содержат обычно компоновщик-загрузчик объектного кода, библиотеки стандартных функций (вычисление специальных и тригонометрических функций, обработка чисел с плавающей точкой и другие). Для визуализации состояния системы на экране монитора современные отладчики используют многооконный графический интерфейс. Многие отладчики могут работать не только с симуляторами, но и реализуют интерфейс со схемными эмуляторами, т. е. с реальными микропроцессорами или микроконтроллерами в процессе комплексной отладки системы.
ПРОТОТИПНЫЕ ПЛАТЫ
Этот класс средств проектирования микропроцессорных и микроконтроллерных систем является наиболее многочисленным. Условно их можно разделить на следующие типы:
• системные комплекты (evaluation kit — набор размещенных на плате аппаратных средств, достаточных для реализации несложных систем;
• отладочные платы и системы (evaluation board,system)— размещенные на плате программно-аппаратные комплексы, обеспечивающие моделирование и отладку систем различного назначения на базе определенных моделей микропроцессоров или микро- контроллеров;
• целевые платы ( target board) — программно-аппаратные комплексы, ориентированные на использование после отладки в качестве прототипной системы;
• одноплатные компьютеры и контроллеры (single-board computer,controller) — конструктивные комплексы, предназначенные для использования в качестве базовых модулей при реализации целевых систем промышленного применения.
Эти средства могут использоваться для следующих целей:
• изучение функционирования определенных моделей микропроцессоров и микроконтроллеров, получение навыков их практического применения;
• тестирование и отладка программного обеспечения систем на реальных образцах микропроцессоров (микроконтроллеров);
• комплексная отладка макета системы, используемого затем в качестве образца для реализации прототипной системы;
• сборка и отладка прототипной или целевой системы, в состав которой входят платы развития в качестве базовых модулей.
Практически все типы плат развития содержат в своем составе порты для подключения управляющего персонального компьютера. Чаще всего для этой цели используется последовательный обмен по стандарту RS-232. Ряд типов отладочных и целевых плат имеют также отдельное поле для макетирования пользователем дополнительных устройств с помощью проводного монтажа.
Ввиду большого разнообразия областей и способов применения номенклатура выпускаемых плат развития очень широка и четкие границы между их типами отсутствуют. Во многих случаях отладочные платы могут использоваться в качестве целевых, а одноплатные компьютеры часто служат средствами отладки прототипных систем. В данном разделе приводится краткое описание отдельных типичных представителей этого класса средств проектирования /отладки.
Отладочные платы серии М68НСО5EVM, производимые фирмой "Motorola", служат для проектирования/отладки систем на базе семейства М68НСО5. Ввиду большой номенклатуры этого семейства выпускается несколько типов таких плат для различных серий микро- контроллеров. Платы комплектуются соответствующими типами микроконтроллеров эмуляционной памятью емкостью 8 или 16 Кбайт содержат резидентный отладчик позволяющий выполнять отладку программ без использования управляющего компьютера. Порты микроконтроллера выведены на внешние разъемы платы, что дает возможность подключать к ней различные периферийные устройства. На плате расположен также программатор, который позволяет переписывать отлаженную программу в ПЗУ микроконтроллера, используемого в прототипной системе. Два отдельных последовательных порта типа RS-232 обеспечивают подключение к ней управляющего компьютера и монитора.
В режиме автономной отладки плата М68НСО5EVM работает совместно с внешним монитором под управлением резидентного отладчика. При этом управление осуществляется с клавиатуры монитора, информация о состоянии системы выводится на экран его дисплея, отладка программы реализуется с помощью однострочного ассемблера — дисассемблера. При работе под управлением персонального компьютера может быть использован полный комплект программных средств проектирования/отладки. Имеющийся набор разнообразных плат развития помогает разработчику спроектировать и отладить макет или опытный образец системы, а в ряде случаев позволяет собрать рабочую систему из готовых модулей. При проектировании сложнофункциональных систем целесообразно использовать серийно вы- пускаемые SBC и различные периферийные модули, ориентированные на мезонинную технологию. Стандартизация этих изделий, их широкая номенклатура и высокие технические характеристики позволяют достаточно быстро собирать на их основе системы различного назначения. Для таких SBC и модулей имеется достаточно развитое программное обеспечение, что также упрощает и ускоряет создание системы, готовой для применения в реальных условиях. Поэтому платы развития, реализующие мезонинную технологию, наиболее перспективны для построения сложнофункциональных целевых систем.
Особенно следует отметить перспективность использования при разработке АС мезонинной технологии, которая унифицирует размеры и интерфейс базовой платы-носителя и размещаемых над ней небольших плат — мезонинов (типичный размер 45х99 мм). Одна плата-носитель несет от 2 до 12 мезониноз. Каждый мезонин соединяется с носителем двумя разъемами, которые выполняют также функции механических держателей. Один из разъемов подключается к локальной шине платы-носителя, функциональное назначение контактов второго разъема определяется типом мезонина, который может содержать многоканальную систему ввода/вывода, сетевые адаптеры и другие устройства. Используя серийно выпускаемые рядом производителей платы-носители и набор мезонинов, разработчик может быстро реализовать сложнофункциональные целевые системы для разнообразных применений.
Лидерами в этой области являются фирмы "GreenSpring Computers (США) и "PEP Modular Computers (Германия), которые выпускают большую номенклатуру плат-носителей и мезонинов. Интеллектуальные платы-носители представляют собой одноплатные компьютеры или контроллеры, реализованные на базе высокопроизводительных микропроцессоров (МС68ОЗО, МС68040 и др.) или микроконтроллеров (МС68332, МС68З6О и др.), которые имеют связь с персональным компьютером. Такие носители могут выполнять функции плат развития и использоваться в составе прототипных и целевых систем. Серийно выпускаемые мезонины (их около 300 типов) выполняют функции дополнительной памяти и различных периферийных устройств: параллельных и последовательных портов, таймеров-счетчиков, АЦП и ЦАП, сетевых и шинных контроллеров и др. При необходимости разработчик может самостоятельно спроектировать мезонин, выполняющий функции, которые необходимы для прототипной или целевой системы.
Таким образом, мезонинная технология является наиболее эффективным средством разработки АС современных электронных систем различного назначения, позволяя кон- фигурировать их из стандартных плат при минимальных затратах времени и средств на разработку дополнительных АС.
ЭМУЛЯТОРЫ ПЗУ
Данное устройство используется при отладке систем, рабочая программа которых размещается в ПЗУ. Эмулятор ПЗУ содержит ОЗУ, которое подключается к системе вместо управляющего ПЗУ, и работает под управлением подключенного к эмулятору базового компьютера. В простейшем случае эмулятор ПЗУ позволяет в процессе отладки выполнять многократное оперативное изменение рабочей программы. Окончательный вариант рабочей программы заносится в ПЗУ системы после отладки.
Более сложные "интеллектуальные эмуляторы" ПЗУ имеют более широкие функциональные возможности. Используя один из входов прерывания системы, они позволяют останавливать ее работу в заданных контрольных точках аналогично схемному эмулятору. При этом на дисплее базового компьютера может быть представлено содержимое эмулирующей памяти. В случае использования в эмуляторе памяти трассы можно обеспечить просмотр предыдущих шагов обращения к ПЗУ, т. е. проверить последовательность выбиравшихся команд. Во многих случаях такая информация является достаточной для выполнения отладки микроконтроллерных систем. В качестве примера эмуляторов ПЗУ этого класса можно привести IDS/LC, выпускаемый компанией "Cactus Logic" (США).
Таким образом, эмуляторы ПЗУ могут выполнить значительную часть функций схемных эмуляторов. При этом их реализация оказывается проще и дешевле, так как они не эмулируют функции микроконтроллера, который в процессе отладки продолжает работать в составе системы. Вследствие этого эмуляторы ПЗУ являются универсальными средствами, которые могут использоваться для отладки систем с различными моделями микроконтроллеров.
ВНУТРИСХЕМНЫЕ ЭМУЛЯТОРЫ
Схемный эмулятор (СЭ) представляет собой программно-аппаратный комплекс, который в процессе отладки замещает в реализуемой системе микропроцессор или микроконтроллер. В результате такой замены функционирование отлаживаемой системы становится наблюдаемым и контролируемым. Разработчик получает возможность визуального контроля за работой системы на экране дисплея и управления ее работой путем установки определенных управляющих сигналов и модификации содержимого регистров и памяти.
Благодаря наличию таких возможностей СЭ является наиболее универсальным и эффективным отладочным средством, используемым на этапе комплексной отладки системы.
Наиболее широкое применение получили СЭ, подключаемые к базовому управляющему компьютеру типа IВМ РС или рабочей станции. Обычно такие СЭ конструктивно оформлены в виде прибора, размещенного в отдельном корпусе с автономным источником питания и соединенного с последовательным СОМ-портом базового компьютера. Некоторые типы эмуляторов для ускорения обмена связываются с компьютером через параллельный порт. С помощью плоского кабеля к СЭ подключается эмуляторная головка, которая имеет вилку для включения в систему вместо эмулируемого микропроцессора или микроконтроллера. В головке размещается эмулирующий микропроцессор (микроконтроллер), который выполняет те же функции, что и эмулируемый, но работает под управлением компьютера. Большинство СЭ предназначено для работы с определенным семейством микропроцессоров (микроконтроллеров), причем для эмуляции каждой модели семейства используется соответствующая головка.
В структуру СЭ входят следующие блоки:
• эмулятор микропроцессора или микроконтроллера (размещается в эмуляторной головке);
• память трассы, которая хранит значения сигналов, устанавливаемых на выводах микро- процессора (микроконтроллера) в процессе выполнения программы;
• блок контрольных прерываний, который реализует остановы в контрольных точках, за- данных пользователем с клавиатуры компьютера;
• эмуляционная память (ОЗУ), которая заменяет в процессе отладки внутреннее ПЗУ микроконтроллеров или другие разделы памяти, внешний доступ к которым в процессе отладки ограничен;
• таймер, используемый для контроля времени выполнения отлаживаемых фрагментов программы.
СЭ позволяет вводить в систему тестовую или рабочую программу и контролировать ее выполнение, обеспечивая прерывания в контрольных точках. Условиям и прерывания могут быть различные комбинации значений адреса, данных и управляющих сигналов, поступающих на выводы эмулирующего микропроцессора или микроконтроллера. Эти комбинации задаются пользователем с клавиатуры управляющего компьютера. После останова пользователь может получить на экране полную информацию о текущем состоянии любых регистров и ячеек памяти системы. С помощью памяти трассы можно просмотреть состояния системной шины для определенного числа предыдущих циклов выполнения программы. Дисассемблер дает возможность анализировать выполнение программы в соответствии с ее исходным текстом на языке Ассемблера.
Память трассы работает почти аналогично памяти ЛА, поэтому СЭ может выполнять также его функции. Число устанавливаемых контрольных точек обычно составляет несколько десятков, хотя некоторые модели современных СЭ обеспечивают существенно большие возможности. Объем памяти трассы в различных СЭ позволяет контролировать от 4К до
512К программных циклов. Таймер служит для определения времени выполнения фрагментов программы с учетом реальной тактовой частоты системы.
Программное обеспечение СЭ состоит из монитора — служебной программы, обеспечивающей работу всех блоков под управлением базового компьютера, компилятора или Ассемблера, позволяющих программировать работу системы на языке высокого уровня или Ассемблера, и отладчика. данные программные средства обычно функционируют в составе интегрированной среды проектирования и отладки. Большинство современных СЭ используют сим- вольные отладчики и дисассемблеры, применение которых делает процесс отладки более простым и наглядным. Программное обеспечение СЭ реализует в процессе отладки выдачу данных на экран монитора в удобном для пользователя многооконном формате.
Многие типы СЭ содержат эмуляционное ОЗУ, которое заменяет ПЗУ отлаживаемой системы. Благодаря такой замене можно в процессе отладки производить оперативное изменение содержимого этой памяти. После отладки содержимое эмуляционного ОЗУ переносится в рабочее ПЗУ системы.
Кроме описанных сложно функциональных и дорогих моделей СЭ рядом производителей выпускаются их упрощенные варианты, реализованные на одной печатной плате. Такие СЭ обладают ограниченными возможностями: имеют существенно меньший объем памяти трассы, не реализуют функции ЛА, не обеспечивают символьной отладки и т. д. Однако они позволяют выполнять отладку систем малой и средней сложности, имеют на порядок более низкую стоимость, поэтому находят достаточно широкое применение. Некоторые типы плат развития также выполняют часть функций СЭ.
Некоторые модели СЭ предоставляют возможности анализа эффективности выполняемой программы обеспечивая информацию о частоте обращения к определенным ее фрагментам, и позволяют производить отладку мультипроцессорных систем с помощью организации многоэмуляторных комплексов.
СЭ, реализующие набор вышеперечисленных функций, называют отладочными комплексами или системами развития (development system). Такие комплексы выпускаются для различных семейств фирмой "Motorola" (ММDS05, ММDS11, СDS32) и рядом других производителей.
8.5.5. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ (ОБОЛОЧКИ)
Рассмотрим состав и функции интегрированной среды разработки на примере SingleStep фирмы SDS ("Software Development System", США), которая является наиболее распространенным средством программирования систем на базе 32-разрядных микропроцессоров и микроконтроллеров Motorola.
Широкое применение среды SingleStep определяется рядом факторов. Во-первых, среда SingleStep обеспечивает как автономную отладку программного обеспечения с помощью симуляторов, так и комплексную отладку систем с применением схемных эмуляторов, плат развития и логических анализаторов. Во-вторых, эта среда является открытой, что позволяет использовать для отладки систем большое количество программных и аппаратных средств, созданных не только SDS, но и многими другими фирмами. В-третьих, среда обеспечивает широкие возможности создания систем реального времени на базе программного обеспечения, создаваемого разработчиком, или с использованием ядра ОСРВ из имеющегося набора.
Интегрированная среда SingleStep служит для программирования и отладки систем, реализованных на базе семейств М680х0, Мб8Зхх, МРС6хх, МРС5хх, МРС8хх, МСР5ххх. В качестве инструментального компьютера могут использоваться персональные компьютеры IВМ-РС, работающие в среде Windows, рабочие станции фирм SUN Microsystems или Hewlett-Packard c UNIX-подобными операционными системами. Для трансляции исходных текстов используются компиляторы CrossCode фирмы CDS или компиляторы ряда других производителей: Microtec Research,Cygnus,GreenHills и др.
В состав среды SingleStep кроме символьного отладчика входят следующие программные средства (рис. 8.5):
• графические средства разработки, обеспечивающие с помощью инструментального компьютера многооконный графический интерфейс;
• симуляторы процессоров указанных выше семейств микропроцессоров и микроконтроллеров, а также модели некоторых периферийных устройств-таймеров, последовательных портов UART;
Рис. 8.5. Состав программных средств интегрированной среды SingleStep
• резидентные мониторы-отладчики, загружаемые в память плат развития при их использовании для комплексной отладки систем;
• мониторы-драйверы, обеспечивающие в процессе комплексной отладки управление схемными эмуляторами, платами развития, логическим анализатором.
Возможны два варианта применения среды SingleStep
В режиме автономной отладки программного обеспечения реализуется прогон программы на симуляторе со скоростью до 100 тыс., команд в секунду. При этом для большинства используемых микропроцессоров и микроконтроллеров обеспечивается точное воспроизведение числа тактов, требуемых для выполнения команд и программных модулей. Таким образом, в процессе отладки можно достаточно точно определять время выполнения программ. При отладке заполняется память трассы емкостью до 1 млн команд, которая доступна пользователю для просмотра и коррекции. Наличие моделей периферийных устройств позволяет имитировать выполнение программы в реальных условиях, когда требуется учитывать состояние других устройств системы.
В режиме комплексной отладки интегрированная среда контролирует работу отлаживаемой системы с помощью схемного эмулятора или путем подключения к плате развития служащей в качестве прототипной системы. Для контроля состояния системы в процессе отладки может использоваться логический анализатор. При этом в память системы загружается резидентный монитор-отладчик, а инструментальный компьютер управляет схемным эмулятором, платой развития и логическим анализатором с помощью мониторов-драйверов. Среда SingleStep обеспечивает поддержку отладки с помощью режима BDM и внутренних средств эмуляции введенных в семействах МРС5хх и МСF52хх (установка контрольных точек, точек наблюдения и др.), тестирование с применением средств JTAG. Средства SingleStep позволяют данной среде эффективно работать с рядом схемных эмуляторов (visionlCE, BDM-эмуляторы серии 300 фирмы EST) и плат развития, включая IDP,MVME162, 1603, 1604, ADS, QUADDS фирмы "Motorola", SBC фирм "Arnewsh" и "GreenSpring" и ряд других. Реализуется также совместная работа с эмуляторами ПЗУ типов PROMICE, NetROM) и логическими анализаторами фирм "Tektronix"," Hewlett-Packard ".
В состав среды SingleStep входят специальные средства для разработки систем, работающих в реальном режиме времени. В этом случае пользователю предоставляется две возможности.
1. Включение в состав программного обеспечения системы ядра реального времени аналогичного тем, которые используются в современных ОСРВ. Возможно введение ядер таких распространенных ОСРВ, как pSOS, VxWorks, OSE,RTXC и ряда других. Включение ядра в программное обеспечение пользователя производится с помощью имеющихся в SingleStep модулей адаптации. Использование готовых ядер значительно сокращает время разработки программного обеспечения, дает гарантии надежного функционирования системы в реальном масштабе времени.
2. Разработка собственного монитора реального времени с помощью имеющегося в составе среды SingleStep набора средств адаптации. Этот способ решения проблемы более трудоемкий и применяется в тех случаях, когда готовые ядра не удовлетворяют предъявляемым требованиям, чаще всего по объему необходимой памяти или времени отклика на внешние события.
Интегрированная среда SingleStep может эффективно использоваться для программирования и комплексной отладки систем, реализованных на базе 32-разрядных микропроцессоров и микроконтроллеров Motorola, обеспечивая при этом широкие возможности разработки программного обеспечения для работы в режиме реального времени.
8.6. СРЕДСТВА И МЕТОДЫ КОМПЛЕКСНОЙ ОТЛАДКИ МП-СИСТЕМ
ПРОГРАММАТОРЫ
Эти устройства необходимы на заключительном этапе разработки систем, когда требуется записать отлаженную программу в ПЗУ, которое входит в состав микроконтроллера или реализуется в виде отдельного модуля. Выпускается два вида программаторов:
1) специализированные программаторные платы;
2) универсальные программаторы.
Программаторные платы предназначены для программирования одного типа микро- контроллеров или микросхем ПЗУ, которые включаются в имеющуюся на плате панельку. Платы подключаются к последовательному порту управляющего персонального компьютера, с помощью которого выполняется программирование данные вводятся с клавиатуры компьютера отображаются на его экране и после редактирования загружаются в буферную память. Затем содержимое этой памяти переписывается в программируемое ПЗУ с помощью размещенных на плате формирователей сигналов требуемой мощности и длительности. После программирования выполняется верификация путем считывания и сравнения содержимого ПЗУ и буферной памяти. При выявлении несовпадений производится повторное программирование соответствующих ячеек.
Некоторые типы программаторных плат работают без управляющего компьютера. Они используют размещенный на плате резидентный контроллер со служебным ПЗУ, где содержится управляющая программа. Вместо буферного ОЗУ на плате располагается панелька для включения микросхемы памяти (ОЗУ или ЭСППЗУ), в которую предварительно записывается требуемое содержимое ПЗУ. Под управлением контроллера производится перезапись этого содержимого в программируемое ПЗУ, верификация результата и, при необходимости, повторное программирование.
Недорогие программаторные платы (их стоимость менее 100 дол.) М68НС05РGMR, М68НС7О5ххPGMR выпускаются фирмой " Motorola " для семейства М68НС705, М68НС11SPGMR,М68НС711xxPGMR - для семейства М68НС711. Программаторные платы производятся для этих семейств также фирмой "Nash Electronics" (Model N680-4, N705-2, N805-2, NHС11) и рядом других.
Недостатком этих плат является их специализация на программирование одной или нескольких однотипных моделей микроконтроллеров или микросхем памяти. При использовании большой номенклатуры таких изделий целесообразно применять универсальные программаторы, которые выпускаются рядом зарубежных и российских производителей.
Универсальные программаторы работают под управлением компьютера и имеют два варианта конструктивной реализации:
1) в виде платы расширения, размещаемой внутри управляющего компьютера, с которой соединяется внешний коммутационный блок, имеющий панельки для включения программируемых изделий (микроконтроллеров или микросхем ПЗУ);
2) в виде отдельного устройства, имеющего на корпусе панельки для включения программируемых изделий, которое подключается к последовательному или параллельному порту компьютера.
В качестве примера зарубежных приборов этого типа можно привести программаторы
Model 3000, Model 5000 фирмы "Elan System", которые могут программировать всю номенклатуру семейств. Эти устройства необходимы на заключительном этапе разработки систем, когда требуется записать отлаженную программу в ПЗУ, которое входит в состав микроконтроллера или реализуется в виде отдельного модуля. Выпускается два вида программаторов:
1) специализированные программаторные платы; 2) универсальные программаторы.
ЛОГИЧЕСКИЕ АНАЛИЗАТОРЫ
Логические анализаторы (ЛА) являются универсальными приборами для анализа функционирования цифровых систем. Они позволяют контролировать логическое состояние
нескольких десятков точек системы в течение заданного промежутка времени и выдать информацию о состоянии в визуальном (на экране монитора) или печатном виде. Форма представления может быть символьная или графическая (временные диаграммы сигналов). Входные каналы ЛА подключаются к точкам контроля с помощью зондов-клипсов или разъемов. Число каналов в современных ЛА обычно составляет от 16 до 150. Запуск анализатора производится автоматически при поступлении на определенные каналы заданного кода (адреса, данных или комбинации управляющих сигналов) или последовательности кодов. После запуска в память ЛА записывается последовательность значений логических сигналов в точках контроля. Объем этой памяти определяет число контролируемых точек на временной оси (глубину контроля), которое для большинства ЛА составляет от 2К до 32К. На экран выводятся несколько десятков точек для каждого канала с возможностью просмотра всей записанной в памяти последовательности состояний. Максимальная частота дискретизации временных интервалов для различных моделей ЛА имеет значение от 20 до 200 МГц.
ЛА реализуются в виде автономных измерительных приборов или плат расширения, подключаемых к базовому персональному компьютеру. Эти приборы часто включают ряд дополнительных устройств, например, программируемый генератор тестовых последовательностей. ЛА, реализованные в виде автономных приборов, выпускаются рядом ведущих производителей электронно-измерительной аппаратуры: Tektronix,Hewlett-Packard,John Fluke и др. Наиболее широко при отладке систем используются ЛА типа 16500В (Hewlett-Packard), 3001GPX и 3002GPX (Tektronix), РМ3580(Fluke), CLAS4000(EmbeddedPerformance/Biomation). Их стоимость составляет несколько тысяч долларов.
Чтобы обеспечить разработчиков недорогими средствами контроля состояния системы, ряд производителей выпускает анализаторные платы, подключаемые к базовому персональному компьютеру, который программируется на выполнение значительной части функций ЛА. При этом для хранения последовательности состояний используется память базового компьютера. Визуализация временных диаграмм в символьной или графической форме выполняется на дисплее его монитора, можно выполнить распечатку результатов измерений на принтере. Базовый компьютер управляет процессом измерения и производит обработку результатов. Благодаря этому анализаторная плата оказывается достаточно простой и на порядок более дешевой, чем автономный ЛА.