Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Интегрированная среда Win IDE ICS08 для разработки и отладки программного обеспечения на языке ассемблера




 

Интегрированная среда разработки прикладного программного обеспечения для встраиваемых микропроцессорных систем Win IDE ICS08 входит в комплект внутрисхемных симуляторов ICS08xx фирмы Pemicro Inc. (http://www.pemicro.com). Особенность пакета состоит в том, что он жестко не привязан к аппаратной платформе и является свободно распространяемым продуктом. Поэтому программный пакет Win IDE ICS08 используется со многими другими аппаратными средствами отладки (см. 5.3), в том числе и российскими. Более того, используя пакет Win IDE ICS08 и самостоятельно выполнив схемотехнику для перевода МК в отладочный режим работы (интерфейс MON08), вы можете создать полнофункциональное средство отладки прямо на плате разрабатываемого изделия.

Интегрированная среда разработки Win IDE ICS08 ориентирована на создание законченных прикладных программ для встраиваемых приложений на языке ассемблера. Особенность пакета Win IDE ICS08 заключается в том, что он содержит в себе сразу три типа отладчиков, а также программу для занесения кодов прикладной программы во флэш ПЗУ МК.

Интегрированная среда разработки Win IDE ICS08 включает в себя:

. программу управляющей оболочки;

. редактор текста;

. компилятор с языка ассемблера для МК с процессорным ядром CPU08;

. линковщик-загрузчик;

. симулятор;

. отладчик в режиме внутрисхемной симуляции (ICS-Circuit Simulator);

. отладчик реального времени (Debugger);

. программатор резидентной флэш-памятки МК (Programmer).

Пакет интегрированной среды разработки Win IDE ICS08 имеет достаточно большое число модификаций: ICS08GPGTZ, ICS08GPZ, ICS08JLZ, ICS08MRZ, ICS08RXZ и т.д. Каждая такая модификация предназначена для работы с несколькими МК одной серии семейства НС08. Например, пакет ICS08MRZ обслуживает МК МС68НС908МR32, МС68НС908МR16, MC68HC908MR8.

Программные средства Win IDE ICS08 позволяют реализовать четыре технологии отладки.

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

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

Отладка в замедленном масштабе времени. Именно этот способ отладки называют режимом внутрисхемной симуляции. Способ предназначен для совместной отладки прикладной программы управления и аппаратных средств сопряжения с объектом целевой системы. При этом способе формирование сигналов управления на выходных портов и ввод сигналов обратной связи о состоянии объекта управления осуществляет МК именно той модели, которую предполагается использовать в целевой системе. Однако программу управления «выполняет» не МК, а персональный компьютер, используя для этого программно-логическую модель МК. Коды отлаживаемой программы загружаются в память ПК, резидентная память программы МК при этом может быть очищена или даже содержать коды другой программы управления. МК работает в отладочном режиме. Цикл исполнения каждой команды прикладной программы в ПК включает в себя сеанс связи с МК. Используя перечисленные выше команды монитора отладки, ПК передает в МК сформированные в цикле использования предыдущей команды выходные воздействия, а также производит чтение входных сигналов на линиях портов МК и передачу их в ПК. Затем ПК «исполняет» очередную инструкцию на языке ассемблера МК. Таким образом, для интерфейсов сопряжения и объекта управления в целом создается иллюзия работы под управлением целевого МК, но в замедленном по отношению к реальному масштабе времени. Отсюда и название – «симулятор».

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

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

• ПК заносит в двухбайтовый программно доступный регистр модуля BREAK08 абсолютный адрес контрольной точки и запускает программу для использования;

• содержимое этого регистра непрерывно сравнивается с кодом внутренней магистрали адреса МК;

• при равенстве кодов генерируется специальное прерывание и МК переходит на программу монитора отладки;

• ПК считывает внутренние программно доступные ресурсы МК в память и отображает их на экране дисплея.

Таким образом, с момента запуска до остановки в контрольной точке прикладная программа будет выполняться в реальном времени. Поскольку модуль BREAK08 имеет только один регистр, то на каждом этапе отладки возможна установка одной контрольной точки. Причем, если оператор неверно предположил путь исполнения программы и заданная им контрольная точка никогда не достигается, прикладная программа будет исполняться непрерывно, связь МК с ПК будет утеряна. Останов выполнения программы и восстановление связи МК с ПК в этом случае возможны только посредством сброса МК. Отметим, что режим внутрисхемной эмуляции не исключает возможности пошаговой отладки. Такой режим реализуем путем занесения в регистр модуля BREAK08 адреса следующей команды при остановке перед использованием текущей команды. Повторяющаяся последовательность действий легко автоматизируется, что освобождает оператора от работы с абсолютными адресами. А вот про условные контрольные точки, для которых необходимо анализировать содержимое регистров центрального процессора и прочих вспомогательных переменных в ПК после исполнения микроконтроллером каждой команды, в режиме внутрисхемной эмуляции придется забыть. Это «расплата» за возможность в реальном времени.

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

• ПК записывает задаваемые в ходе исполнения прикладной программы слова инициализации не в реальные регистры режима таймера, а в одноименные регистры программно-логической модели МК в ПК;

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

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

Такая организация процесса отладки очень удобна для оператора, поскольку остановка в контрольной точке в режиме внутрисхемного симулятора эквивалентна прекращению работы системы тактирования МК. Вследствие этого одновременно с остановкой программы «приостанавливают» работу и периферийные модули. При дальнейшем прогоне программы работа периферийных модулей возобновляется с того состояния, в котором они были «приостановлены». Именно такой режим работы наиболее удобен для наблюдения за процессом реализации микроконтроллером управляющей программы. Но именно этот режим не достижим, если управляющую программу в процессе отладки исполняет сам МК, т.е. при отладке в режиме внутрисхемной эмуляции.

На практике механизм взаимодействия с периферийными модулями МК в режиме внутрисхемной симуляции несколько сложнее. Дело в том, что при полном адекватном воспроизведении функций выводов МК невозможно отказаться от самостоятельной работы отдельных периферийных модулей МК. Прежде всего, это относится к модулю АЦП, поскольку выполнить преобразование аналогового сигнала в цифровой код только программными средствами невозможно. Поэтому встроенный АЦП в режиме внутрисхемной симуляции производит непосредственную оцифровку и с указанным в техническом описании временем преобразования. Модули последовательных интерфейсов SPI08 и SCI08 также работают в реальном масштабе времени, поскольку они должны взаимодействовать с другими компонентами системы, скорость обмена которых не может быть произвольной. Сторожевой таймер (модуль СОР08) при переводе МК в отладочный режим работы автоматически отключается. Более подробно о работе модулей МК семейства НС908 в режимах отладки (см. в табл.1).

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

Таблица 1.




Поделиться с друзьями:


Дата добавления: 2017-01-14; Просмотров: 743; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.