Опубликован: 24.04.2009 | Доступ: свободный | Студентов: 1180 / 358 | Оценка: 4.39 / 4.28 | Длительность: 18:45:00
Специальности: Программист
Лекция 10:

Дополнительные возможности ОС

Аппаратные инструменты отладки для встроенных систем

При первоначальном создании новой встроенной компьютерной платы, часто используются специальные внешние аппаратные инструменты отладки. Они включают такие устройства, как внутрисхемные эмуляторы (ICE), датчики in-target (ITP), и логические анализаторы специального назначения, соединенные с контактами отладки или трассировки оборудования, выходящими из процессора. На процессорах первого поколения можно было выполнить трассировку потока выполнения инструкций, используя логический анализатор, соединенный с шиной между процессором и памятью. Но более новые процессоры сильно конвейеризированы и содержат кэш инструкций, делая такой подход не слишком полезным для подробной отладочной информации. Некоторые небольшие системы на кристалле (SoC) микроконтроллеров используют только память на кристалле, поэтому в этом случае шина памяти процессора является внутренней для микросхемы.

Программные точки прерывания не будут работать на коде, выполняющемся из ROM (т.е., PC BIOS или ROM Bootloader), так как специальные инструкции call/jump, необходимые для реализации программных точек прерывания невозможно записать в ROM. В ответ на эти проблемы на многих процессорах были разработаны специальные процессорные контакты порта отладки/трассировки.

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

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

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

К сожалению, модули ICE, модули ITD, или инструменты адаптера порта отладки процессора для логических анализаторов могут стоить несколько тысяч долларов, и для каждого нового типа процессора требуется новое устройство. Аппаратный инструмент отладки ARM показан на рисунке 10.5, а аппаратный инструмент отладки X86 показан на рисунке 10.6. Также только несколько LED на плате, соединенной с портом GPIO, могут быть очень удобны, чтобы получить представление о том, какой выполняется код, вставляя код для вывода на LED в критически важных точках.

Этот аппаратный инструмент отладки трассирует выполнение инструкций процессора XScale (семейство ARM), используя логический анализатор общего назначения Tektronix. Логический анализатор использует Windows XP. Специальное программное обеспечение дизассемблирует, чтобы вывести мнемонические обозначения языка ассемблера XScale. Изображение с разрешения Nexus Technology

увеличить изображение
Рис. 10.5. Этот аппаратный инструмент отладки трассирует выполнение инструкций процессора XScale (семейство ARM), используя логический анализатор общего назначения Tektronix. Логический анализатор использует Windows XP. Специальное программное обеспечение дизассемблирует, чтобы вывести мнемонические обозначения языка ассемблера XScale. Изображение с разрешения Nexus Technology

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

Этот аппаратный инструмент отладки трассирует выполнение инструкций целевого процессора P4 (семейства X86), используя бокс адаптера датчика in-target (ITP) со специальным программным обеспечением,  выполняющимся на настольном ПК под управлением Windows XP. Он дизассемблирует код, чтобы вывести мнемонику языка ассемблера X86 и показывает содержимое регистров. Изображение с разрешения American Arium

увеличить изображение
Рис. 10.6. Этот аппаратный инструмент отладки трассирует выполнение инструкций целевого процессора P4 (семейства X86), используя бокс адаптера датчика in-target (ITP) со специальным программным обеспечением, выполняющимся на настольном ПК под управлением Windows XP. Он дизассемблирует код, чтобы вывести мнемонику языка ассемблера X86 и показывает содержимое регистров. Изображение с разрешения American Arium

Перенос нового образа ОС на eBox для автономной начальной загрузки

В окончательной версии встроенного устройства ОС и все встроенные приложения будут автоматически автономно загружаться, используя локальную копию кода. Этот код обычно хранится во флэш-памяти устройства. Чтобы загрузить новую ОС на eBox, используя локальную копию вместо загрузки каждый раз через сетевое соединение, используйте один из следующих методов:

  • Создайте загрузочное флэш-устройство USB (см. подробнее в Приложении C). Загрузитесь с флэш-устройства USB и замените файл NK.BIN новой версией. Когда присоединяется устройство USB появляется пункт настройки BIOS eBox для загрузки только с USB.
  • Каждый новый проект ОС генерирует новый файл NK.BIN в каталоге выпуска (reldir) проекта в подкаталоге отладки или выпуска. Можно заменить старый файл образа ОС NK.BIN на внутреннем флэш-устройстве eBox. Оно представлено как "C" в DOS и "Hard Disk" или "DOS" в CE. Лучше всего просто переименовать NK.BIN и сохранить старую копию. На внутреннем флэш-устройстве имеется достаточно пространства для пары образов ОС. Не удаляйте ни один другой файл на внутреннем флэш-устройстве, так как они нужны для процесса загрузки.

Можно скопировать NK.BIN с флэш-устройства USB, флэш-карты CF, или используйте Target _remote tools _file viewer, если устройство соединено с VS 2005. Вариант экспорта удаленного файла является немного медленным, так как требует около 5 минут. Нужно будет перезагрузить eBox и выйти в DOS во время приглашения загрузки и исправить имя файла, удаляя дополнительные символы ~1, которые появятся в имени файла NK.BIN на внутреннем флэш-устройстве. После копирования нового NK.BIN, используйте вариант загрузки 1, чтобы загрузить новый локальный образ NK.BIN с внутреннего флэш-устройства.

Можно также при желании отредактировать начальное меню вариантов загрузки eBox, чтобы изменить разрешение вывода и даже исключить необходимость выбора варианта загрузки. Отредактируйте файлы DOS config.sys и autoexec.bat на внутреннем флэш-устройстве, чтобы сделать какие-то изменения. DOS в eBox содержит программу EDIT. LoadCEPC имеет несколько аргументов командной строки для задания начального разрешения дисплея и IP-адреса, который вы можете при желании изменить. Прочтите внимательно файлы config.sys и autoexec.bat.

Если вы случайно сотрете критические файлы на внутреннем флэш-устройстве, то их можно восстановить, используя загрузочное USB флэш-устройство (см. "Приложение C: Создание загружаемого устройства USB для eBox" ).

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

В сборке выпуска для ОС, которая все еще не соединена с настольным ПК во время выполнения отладки, не забудьте снять флажок параметра сборки Enable KITL в окне свойств проекта. Если настольный компьютер не присоединен, то при активированном KITL будет делаться попытка коммуникации с настольным ПК. Она, в конечном счете, прервется, но процесс реально замедляет целевую систему. Подпроект Autolaunch будет полезен для автоматического запуска приложений во время начальной загрузки (см. "Приложение A: Автоматическое выполнение приложения" ).