Встроенные Системы Часть 2. Методы Разработки ПО Встроенных Систем Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov [email protected] http://www.oktetlabs.ru/~vvv/es-2004 Некоторые этапы жизненного цикла • Анализ • Проектирование • Разработка * • Отладка * • Тестирование * • Сопровождение Разработка компьютерного ПО программный код создается с помощью текстового редактора компилятор переводит его в объектный модуль редактор связей (linker) создает загрузочный модуль из объектных и библиотек программа исполняется может быть использован отладчик разрабатывается набор тестов - модульных и комплексных Разработка ПО ВС Основная парадигма: кросс-разработка (cross development): Инструментальная (host) и целевая (target) машины Инструментальная машина используется для создания исходного кода, компиляции, сборки. Код запускается на целевой машине. Отладчик выполняется на инструментальной машине, но взаимодействует с целевой (посредством специального оборудования или посредством программного агента) Особенности Использования Инструментальных Средств Уникальная «карта памяти». Распределение памяти под секции определяется скриптом редактора связей (linker script). Формат загрузочного модуля ELF, COFF, binary, Motorola SREC, Intel HEX Типовой Макет Host и Target соединены последовательным каналом (RS232) Обычно, объединены в сеть serial Host Target Network Дополнительные Методы Анализа и Отладки отладочная печать использование светодиодных (LED) индикаторов использование программной модели процессора использование модели оборудования Дополнительные Методы Анализа и Отладки (прод.) сбор и анализ трассы анализ посмертного дампа для анализа работы программы может использоваться специальное оборудование: осциллоскоп логический анализатор анализатор шины анализаторы протоколов Программная Модель – когда она нужна? имеется спецификация части системы, но разработка "железа" только начата разработка программного обеспечения требует длительного времени необходимо убедиться в реализуемости подхода требуется тщательный анализ и оптимизация программного кода требуется осуществить систематическое тестирование системы ПО должно быть жестко зашито в микросхему при производстве Программная Модель – как это работает С большей или меньшей степенью аккуратности моделируется работа процессора и/или периферии более аккуратная модель лучше учитывает реальные временные соотношения более аккуратная модель обычно имеет меньшую производительность Программный код интерпретируется моделью Модель может собирать информацию о работе программы (профиляция, вычисление тестового покрытия) Работа модели может контролироваться скриптами Загрузка Программы На инструментальной машине сгенерирован код. Как его запустить? запуск из ПЗУ (ROM) загрузка с помощью загрузочного монитора (boot loader) загрузка с помощью отладчика Загрузочный Монитор Загрузочный монитор - это специальная программа, запускаемая непосредственнопосле сброса системы. Обычно предоставляет набор отладочных, диагностических команд и команд, обеспечивающих загрузку исполняемого кода: по сети через последовательный порт из ПЗУ с внешних носителей Интерфейс с отладчиком аппаратный интерфейс отладки JTAG BDM агент отладчика - небольшая программа, выполняющая команды отладчика: Чтение/модификация памяти и регистров Выполнение одной команды Выполнение до останова Другие. JTAG - Joint Test Access Group (IEEE 1149.1) Интерфейс JTAG изначально разрабатывался как средство тестирования печатных плат (boundary scan test). JTAG представляет собой простой последовательный синхронный интерфейс, с помощью которого можно управлять состоянием выводов микросхемы и считывать их состояние. Микросхемы на плате соединяются в цепочку, образуя длинный сдвиговый регистр. JTAG – причем здесь отладка? Могут быть введены дополнительные JTAGрегистры, например: регистр команды регистр данных В режиме отладки, процессор выбирает команды для исполнения из регистра команды, а не из памяти. JTAG-регистр данных программно доступен. Этого достаточно, чтобы отладчик мог взаимодействовать с процессором. Трасса Проблема: использование отладчика или отладочных печатей влияет на временные соотношения – программа будет вести себя по разному. Вместо отладочных печатей можно собирать трассу в циклическом буфере в памяти – влияние на время работы минимально. Буфер расшифровывается при достижении некоторого условия (или по запросу). Логический Анализатор ЛА подключается к интересующим сигналам отлаживаемой системы (например, к шине). Состояние сигналов в реальном времени сохраняется в буфере. Сбор трассы прекращается при достижении специфицированного условия. Пользователь может анализировать изменения состояний, предшествующих наступлению события и следующих за ним. Меры Предосторожности Вашей жизни практически ничто не угрожает (если никто не совершает грубых ошибок), но Вы являетесь угрозой для оборудования! Остерегайтесь статического электричества: Избегайте синтетической одежды. Используйте антистатические браслеты, покрытия, пакеты. Прикасайтесь к заземлению прежде чем прикасаться к оборудованию. Обеспечьте заземление. Меры Предосторожности (прод.) Избегайте изменения соединений при включенном питании. Следите за тем, чтобы металлические предметы, жидкости не попадали на или под плату. Обращайте внимание на правильность соединений, подаваемое напряжение питания и его полярность.