Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Архитектура отладки MIPI Alliance предоставляет стандартизированную инфраструктуру для отладки глубоко встроенных систем в мобильной и мобильной среде . MIPI Alliance MIPI Debug Рабочая группа выпустила портфель спецификаций; их цель - предоставить стандартные протоколы отладки и стандартные интерфейсы от системы на кристалле (SoC) к инструменту отладки. В техническом документе « Обзор архитектуры для отладки» суммируются все усилия. В последние годы группа сосредоточилась на определении протоколов, которые улучшают видимость внутренних операций глубоко встраиваемых систем, стандартизации решений отладки через функциональные интерфейсы форм-фактора.устройств и указав использование I3C в качестве шины отладки. [1] [2]

Термин «отладка» [ править ]

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

Методы управления / настройки [ править ]

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

Отладка в режиме остановки / пошагового режима [ править ]

В режиме остановки / пошаговой отладки ядро ​​/ микроконтроллер останавливается с помощью точек останова, а затем выполняется «пошагово» по коду, выполняя инструкции по одной за раз. Если другие ядра / микроконтроллеры SoC завершили работу синхронно, можно проверить общее состояние системы. Отладка в режиме остановки / пошагового режима включает в себя методы управления / настройки, управление запуском ядра / микроконтроллера, синхронизацию запуска / остановки с другими ядрами, доступ к памяти и регистрам, а также дополнительные функции отладки, такие как счетчик производительности и доступ к памяти во время выполнения.

Отслеживание [ править ]

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

  • «Базовая трассировка» обеспечивает полную видимость выполнения программы на встроенном ядре. Данные трассировки создаются для последовательности выполнения инструкций (иногда называемой трассировкой команд) и передач данных (иногда называемых трассировкой данных). SoC может генерировать несколько основных трасс.
  • «Трассировка шины» обеспечивает полную видимость передачи данных по определенной шине.
  • «Системная трассировка» обеспечивает видимость различных событий / состояний внутри встроенной системы. Данные трассировки могут быть сгенерированы программным кодом прибора и аппаратными модулями внутри SoC. SoC может генерировать несколько системных трассировок.

Видимость внутренних операций SoC [ править ]

Распределение характеристик трассировки

Трассировка - это предпочтительный инструмент для мониторинга и анализа того, что происходит в сложной SoC. Для рынка встраиваемых систем существует несколько хорошо зарекомендовавших себя стандартов трассировки ядра и шины, не относящихся к MIPI. Таким образом, Рабочей группе MIPI Debug не нужно было указывать новые. Но не существовало стандарта для «системной трассировки», когда Рабочая группа по отладке опубликовала свою первую версию протокола системной трассировки MIPI (MIPI STP) в 2006 году.

Трассировка системного программного обеспечения MIPI (MIPI SyS-T) [ править ]

Генерация данных системной трассировки из программного обеспечения обычно выполняется путем вставки дополнительных вызовов функций, которые производят диагностическую информацию, ценную для процесса отладки. Этот метод отладки называется инструментарием. Примеры: функции генерации строк в стиле printf, информация о значениях, утверждения и т. Д. Целью MIPI System Software Trace (MIPI SyS-T) является определение многоразового универсального протокола данных и инструментального API для отладки. В спецификации определены форматы сообщений, которые позволяют инструменту анализа трассировки декодировать сообщения отладки либо в удобочитаемый текст, либо в сигналы, оптимизированные для автоматического анализа.

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

Протокол данных SyS-T разработан для эффективной работы поверх транспортных каналов нижнего уровня, таких как те, которые определены протоколом системной трассировки MIPI . Функции протокола SyS-T, такие как временные метки или контрольные суммы целостности данных, могут быть отключены, если транспортный канал уже предоставляет такие возможности. Также возможно использование других транспортных каналов, таких как UART , USB или TCP / IP .

Рабочая группа по отладке MIPI предоставит эталонную реализацию с открытым исходным кодом для инструментального API SyS-T, симпатичный принтер сообщений SyS-T и инструмент для генерации дополнительных данных XML, как только появится спецификация для трассировки системного программного обеспечения (SyS- Т) утвержден. [3]

Протокол системной трассировки MIPI (MIPI STP) [ править ]

Stm master channel.png

Протокол системной трассировки MIPI (MIPI STP) определяет общий протокол, который позволяет объединять потоки трассировки, исходящие из любой точки SoC, с потоком трассировки из 4-битных кадров. Он был специально разработан для объединения информации системной трассировки. Протокол системной трассировки MIPI использует топологию канал / главный, которая позволяет инструменту анализа приема трассировки сопоставлять отдельные потоки трассировки для анализа и отображения. Протокол дополнительно предоставляет следующие функции: синхронизацию и выравнивание потоков, маркеры триггеров, глобальную метку времени и синхронизацию времени нескольких потоков.

Поток пакетов STP, созданный модулем системной трассировки, может быть напрямую сохранен в ОЗУ трассировки, напрямую экспортирован за пределы кристалла или может быть направлен в модуль «протокола оболочки трассировки» (TWP) для слияния с другими потоками трассировки. Macrocell CoreSight System Trace от ARM [4], совместимый с MIPI STP, сегодня является неотъемлемой частью большинства многоядерных микросхем, используемых в мобильной сфере.

Последней версией спецификации протокола системной трассировки (STP SM ), принятой на плате MIPI, является версия 2.2 (февраль 2016 г.). [5]

Протокол MIPI Trace Wrapper (MIPI TWP) [ править ]

Протокол MIPI Trace Wrapper позволяет объединить несколько потоков трассировки в один поток трассировки (потоки байтов). Уникальный идентификатор назначается каждому потоку трассировки протоколом упаковки. Обнаружение границ байта / слова возможно, даже если данные передаются в виде потока битов. Инертные пакеты используются, если требуется непрерывный экспорт данных трассировки. Протокол MIPI Trace Wrapper основан на протоколе форматирования трассировки ARM, указанном для ARM CoreSight.

Последней версией Specification for Trace Wrapper Protocol (TWP SM ), принятой на плате MIPI, является версия 1.1 (декабрь 2014 г.). [6]

От специализированных до функциональных интерфейсов [ править ]

От специализированных интерфейсов к функциональным

Выделенные интерфейсы отладки [ править ]

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

Следующие стандарты отладки, не относящиеся к MIPI, хорошо зарекомендовали себя на рынке встраиваемых систем: IEEE 1149.1 (5-контактный) и ARM Serial Wire Debug (2-контактный), оба используют несимметричные контакты. Таким образом, Рабочей группе отладки MIPI не нужно было указывать протокол отладки в режиме остановки или указывать интерфейс отладки.

Данные трассировки, сгенерированные и объединенные в поток трассировки в SoC, могут быть переданы через выделенный однонаправленный интерфейс трассировки вне кристалла в инструмент анализа трассировки. Архитектура отладки MIPI предоставляет спецификации как для параллельных, так и для последовательных портов трассировки.

Интерфейс параллельной трассировки MIPI (MIPI PTI) определяет, как передавать данные трассировки на несколько выводов данных и тактовый вывод (несимметричный). Спецификация включает имена сигналов и функции, временные характеристики и электрические ограничения. Последней версией спецификации интерфейса параллельной трассировки, принятой на плате MIPI, является версия 2.0 (октябрь 2011 г.). [7]

В MIPI высокоскоростной трассировки интерфейса (MIPI HTI) определяет , как поток данных трассировки на физическом уровне стандартных интерфейсов, таких как PCI Express , DisplayPort , HDMI или USB. Текущая версия спецификации позволяет использовать от одной до шести полос. В спецификацию входят:

  • Уровень PHY, который представляет электрические и тактовые характеристики последовательных линий.
  • Уровень LINK, который определяет, как трассировка упаковывается в протокол Aurora 8B / 10B .
  • Модель программиста для управления HTI и предоставления информации о состоянии.
34-контактный разъем уровня платы

HTI - это подмножество спецификации высокоскоростного последовательного порта трассировки (HSSTP), определенной ARM. [8] Последней версией спецификации высокоскоростного интерфейса трассировки, принятой на плате MIPI, является версия 1.0 (июль 2016 г.). [9]

Разработчики плат и поставщики средств отладки извлекают выгоду из стандартных разъемов отладки и стандартного назначения контактов. Рекомендация MIPI для отладки и трассировки Разъемы рекомендует 10- / 20- / 34-контактный разъем платы на уровне 1,27-мм (0,050 дюйма) разъемы (MIPI10 / 20/34). Было указано семь различных назначений контактов, которые предназначены для самых разных сценариев отладки. Они включают стандартный JTAG (IEEE 1149.1), cJTAG (IEEE 1149.7) и 4-битные параллельные интерфейсы трассировки (в основном используемые для системных трассировок), дополненные стандартом Serial Wire Debug (SWD), специфичным для ARM. [10] Отладочные разъемы MIPI10 / 20/34 стали стандартом для встраиваемых систем на базе ARM.

Многие встраиваемые конструкции в мобильном пространстве используют высокоскоростные параллельные порты трассировки (до 600 мегабит в секунду на контакт). MIPI рекомендует 60-контактный разъем Samtec QSH / QTH с именем MIPI60, который позволяет JTAG / cJTAG для управления запуском, до 40 сигналов данных трассировки и до 4 тактовых импульсов трассировки. Чтобы минимизировать сложность, в рекомендации определены четыре стандартные конфигурации с одним, двумя, тремя или четырьмя каналами трассировки различной ширины.

Последней версией рекомендаций MIPI Alliance для соединителей отладки и трассировки, принятой на плате MIPI, является версия 1.1 (март 2011 г.). [11]

PHY и контактные наложенные интерфейсы [ править ]

USB Type-C, контакты USB2, используемые для отладки SWD
USB Type-C Mux переключает контакты USB2 на контакты SWD

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

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

MIPI Ограниченный интерфейс для отладки и тестирования (MIPI NIDnT) охватывает отладки с помощью следующих стандартных интерфейсов: MicroSD , USB 2.0 Micro-B / -AB сосуда, USB - типа C сосуда, и DisplayPort. Последней версией спецификации узкого интерфейса для отладки и тестирования (NIDnT SM ), принятой на плате MIPI, является версия 1.2 (декабрь 2017 г.). [12]

Сетевые интерфейсы [ править ]

Вместо повторного использования контактов отладку можно также выполнять через стек протоколов стандартного интерфейса или сети. Здесь отладочный трафик сосуществует с трафиком других приложений, использующих тот же канал связи. Рабочая группа MIPI Debug назвала этот подход GigaBit Debug . Поскольку для этого подхода не существовало протокола отладки, рабочая группа отладки MIPI указала свой протокол отладки SneakPeak.

Протокол MIPI SneakPeek (MIPI SPP) перешел с выделенного интерфейса для базовой отладки на интерфейс, управляемый протоколом:

  • Он преобразует входящие пакеты команд в доступ для чтения / записи к памяти, отображенным в память регистрам отладки и другим отображенным в память системным ресурсам.
  • Он преобразует результаты команд (информацию о состоянии и считанные данные, поступающие из памяти, отображенные в память регистры отладки и другие отображенные в память системные ресурсы) в исходящие ответные пакеты.
  • Поскольку SneakPeek принимает пакеты, проходящие через входной буфер, и доставляет пакеты через выходной буфер, его можно легко подключить к любому стандартному вводу-выводу или сети.

Спецификация MIPI Alliance для протокола SneakPeek описывает основные концепции, необходимую инфраструктуру, пакеты и поток данных. Последней версией спецификации протокола SneakPeek (SPP SM ), принятой на плате MIPI, является версия 1.0 (август 2015 г.). [13]

Семейство спецификаций отладки MIPI Gigabit Debug предоставляет подробные сведения для сопоставления протоколов отладки и трассировки со стандартными вводами / выводами или сетями, доступными в мобильных терминалах. Эти сведения включают в себя: адресацию конечных точек, инициализацию каналов и управление ими, упаковку данных, управление потоками данных, а также обнаружение и восстановление ошибок. Последней версией спецификации для гигабитной отладки для USB (MIPI GbD USB), принятой на плате MIPI, является версия 1.1 (март 2018 г.). [14] Последней версией спецификации Gigabit Debug for Internet Protocol Sockets (MIPI GbD IPS), принятой на плате MIPI, является версия 1.0 (июль 2016 г.). [15]

I3C как шина отладки [ править ]

Текущие решения для отладки, такие как JTAG и ARM CoreSight, имеют статическую структуру, что ограничивает масштабируемость в отношении доступности компонентов / устройств отладки. MIPI Debug для I3C определяет масштабируемое 2-контактное несимметричное решение для отладки, которое имеет то преимущество, что оно доступно в течение всего срока службы продукта. Шину I3C можно использовать только как шину отладки, или шину можно использовать совместно для отладки и ее основной функции в качестве шины сбора данных для датчиков. Отладка через I3C в принципе работает следующим образом:

  • Шина I3C используется для физического транспорта, а встроенные функции I3C используются для настройки шины и горячего соединения новых компонентов.
  • Протокол отладки заключен в специальные команды I3C. Поддерживаемые протоколы отладки: JTAG , ARM CoreSight и MIPI SneakPeek. [13]

Ссылки [ править ]

  1. ^ «Рабочая группа отладки» . MIPI Alliance . 2019 . Проверено 7 июня 2019 .
  2. ^ «Обзор архитектуры для отладки» (PDF) . MIPI Alliance . Версия 1.2. 13 июля 2018 . Проверено 7 июня 2019 .
  3. ^ «Системное программное обеспечение MIPI - Trace (MIPI SyS-T)» . MIPI Alliance . Версия 1.0. Апрель 2018 . Проверено 7 июня 2019 .
  4. ^ "Макроячейка трассировки системы" . ARM Разработчик . 2019 . Проверено 7 июня 2019 .
  5. ^ "Протокол трассировки системы MIPI (MIPI STP)" . MIPI Alliance . Версия 2.2. Февраль 2016 . Проверено 7 июня 2019 .
  6. ^ «Протокол MIPI Trace Wrapper (MIPI TWP)» . MIPI Alliance . Версия 1.1. Декабрь 2014 . Проверено 7 июня 2019 .
  7. ^ "Интерфейс параллельной трассировки MIPI (MIPI PTI)" . MIPI Alliance . Версия 2.0. Октябрь 2011 . Проверено 8 июня 2019 .
  8. ^ «Обзор архитектуры CoreSight: порт высокоскоростной последовательной трассировки (HSSPT)» . ARM Разработчик . 2019 . Проверено 8 июня 2019 .
  9. ^ "Интерфейс высокоскоростной трассировки MIPI (MIPI HTI)" . MIPI Alliance . Версия 1.0. Июль 2016 . Проверено 8 июня 2019 .
  10. ^ «Отладка последовательного кабеля» . ARM Разработчик . 2019 . Проверено 8 июня 2019 .
  11. ^ «Рекомендации Альянса MIPI для соединителей отладки и трассировки» . MIPI Alliance .
  12. ^ «Узкий интерфейс MIPI для отладки и тестирования (MIPI NIDnT)» . MIPI Alliance . Версия 1.2. Декабрь 2017 . Проверено 9 июня 2019 .
  13. ^ a b «Протокол MIPI SneakPeek (MIPI SPP)» . MIPI Alliance . Версия 1.0. Август 2015 . Проверено 9 июня 2019 .
  14. ^ «MIPI Gigabit Debug для USB (MIPI GbD USB)» . MIPI Alliance . Версия 1.1. Март 2018 . Проверено 9 июня 2019 .
  15. ^ «MIPI Gigabit Debug для IP-сокетов (MIPI GbD IPS)» . MIPI Alliance . Версия 1.0. Июль 2016 . Проверено 9 июня 2019 .

Внешние ссылки [ править ]

  • Шульц, Норберт (Intel Corporation) (26 сентября 2016 г.). Как спецификации отладки MIPI помогают мне в разработке системного ПО . MIPI DevCon 2016 . Проверено 9 июня 2019 .