Архитектура отладки MIPI
Архитектура отладки MIPI Alliance предоставляет стандартизированную инфраструктуру для отладки глубоко встроенных систем в мобильном пространстве и в пространстве, на которое влияют мобильные устройства. MIPI Рабочая группа MIPI Alliance Debug выпустила портфель спецификаций; их цель — предоставить стандартные протоколы отладки и стандартные интерфейсы от системы на кристалле (SoC) к инструменту отладки. Технический документ « Обзор архитектуры для отладки» суммирует все усилия. В последние годы группа сосредоточилась на определении протоколов, которые улучшают видимость внутренних операций глубоко встроенных систем, стандартизации решений отладки через функциональные интерфейсы устройств форм-фактора и указании использования I3C в качестве шины отладки. [1] [2]
Термин «отладка»
[ редактировать ]Термин «отладка» охватывает различные методы, используемые для обнаружения, сортировки, отслеживания и потенциального устранения ошибок или ошибок в аппаратном и программном обеспечении. Отладка включает в себя методы управления/настройки, отладку в режиме остановки/пошага и различные формы трассировки .
Методы управления/настройки
[ редактировать ]Отладку можно использовать для управления и настройки компонентов, включая встроенные системы, данной целевой системы. Стандартные функции включают установку аппаратных точек останова , подготовку и настройку системы трассировки, а также проверку состояний системы .
Отладка в режиме остановки/шага
[ редактировать ]При отладке в пошаговом режиме ядро/микроконтроллер останавливается с помощью точек останова, а затем «пошагово» проходит через код, выполняя инструкции по одной. Если другие ядра/микроконтроллеры SoC завершили работу синхронно, можно проверить общее состояние системы. Отладка в режиме остановки/пошага включает методы управления/настройки, управление запуском ядра/микроконтроллера, синхронизацию запуска/остановки с другими ядрами, доступ к памяти и регистрам, а также дополнительные функции отладки, такие как счетчик производительности и доступ к памяти во время выполнения.
Отслеживание
[ редактировать ]Трассировки позволяют провести углубленный анализ поведения и временных характеристик встроенной системы. Типичны следующие следы:
- «Трассировка ядра» обеспечивает полную видимость выполнения программы во встроенном ядре. Данные трассировки создаются для последовательности выполнения инструкций (иногда называемой трассировкой инструкций) и передачи данных (иногда называемой трассировкой данных). SoC может генерировать несколько основных трассировок.
- «Трассировка шины» обеспечивает полную видимость передачи данных по конкретной шине.
- «Системная трассировка» обеспечивает видимость различных событий/состояний внутри встроенной системы. Данные трассировки могут генерироваться кодом приложения прибора и аппаратными модулями внутри SoC. SoC может генерировать несколько системных трассировок.
Видимость внутренних операций SoC
[ редактировать ]
Трассировка — это инструмент для мониторинга и анализа того, что происходит в сложной SoC. Существует несколько хорошо зарекомендовавших себя стандартов трассировки ядра и шины, не относящихся к MIPI, для рынка встраиваемых систем. Таким образом, рабочей группе по отладке MIPI не было необходимости указывать новые. Но когда в 2006 году рабочая группа по отладке опубликовала свою первую версию протокола трассировки системы MIPI (MIPI STP), стандарта для «системной трассировки» не существовало.
Трассировка системного программного обеспечения MIPI (MIPI SyS-T)
[ редактировать ]Генерация данных трассировки системы из программного обеспечения обычно выполняется путем добавления дополнительных вызовов функций, которые предоставляют диагностическую информацию, ценную для процесса отладки. Этот метод отладки называется инструментированием. Примеры: функции генерации строк в стиле printf, информация о значениях, утверждения и т. д. Целью MIPI System Software Trace (MIPI SyS-T) является определение многократно используемого протокола данных общего назначения и инструментального API для отладки. Спецификация определяет форматы сообщений, которые позволяют инструменту анализа трассировки декодировать отладочные сообщения либо в удобочитаемый текст, либо в сигналы, оптимизированные для автоматического анализа.
Поскольку подробные текстовые сообщения нагружают ограничения пропускной способности для отладки, предоставляются так называемые «сообщения каталога». Сообщения каталога — это компактные двоичные сообщения, заменяющие строки числовыми значениями. Преобразование числового значения в строку сообщения выполняется инструментом анализа трассировки с помощью дополнительной информации XML . Эта информация предоставляется в процессе сборки программного обеспечения с использованием схемы XML, которая также является частью спецификации.
Протокол данных SyST-T предназначен для эффективной работы поверх транспортных каналов более низкого уровня, таких как те, которые определены протоколом трассировки системы MIPI . Функции протокола SyST-T, такие как отметка времени или контрольные суммы целостности данных, можно отключить, если транспортный канал уже предоставляет такие возможности. использование других транспортных каналов, таких как UART , USB или TCP/IP Также возможно .
Рабочая группа по отладке MIPI предоставит эталонную реализацию с открытым исходным кодом для инструментального API SyST-T, красивый принтер сообщений SyST-T и инструмент для генерации дополнительных данных XML, как только будет выпущена Спецификация для трассировки системного программного обеспечения (SyS-T). Т) одобрено. [3]
Протокол трассировки системы MIPI (MIPI STP)
[ редактировать ]
Протокол трассировки системы MIPI (MIPI STP) определяет общий протокол, который позволяет объединять потоки трассировки, исходящие из любого места SoC, в поток трассировки 4-битных кадров. Он был специально разработан для объединения информации трассировки системы. Протокол трассировки системы MIPI использует топологию «канал/главный», которая позволяет инструменту анализа получения трассировки сопоставлять отдельные потоки трассировки для анализа и отображения. Протокол дополнительно предоставляет следующие функции: синхронизацию и выравнивание потоков, маркеры триггера, глобальную метку времени и синхронизацию времени нескольких потоков.
Поток пакетов STP, создаваемый модулем системной трассировки, может быть непосредственно сохранен в ОЗУ трассировки, напрямую экспортирован за пределы кристалла или может быть перенаправлен в модуль протокола оболочки трассировки (TWP) для объединения с дальнейшими потоками трассировки. ARM , Система отслеживания Macrocell системы CoreSight от [4] который совместим с MIPI STP, сегодня является неотъемлемой частью большинства многоядерных чипов, используемых в мобильной сфере.
Последняя версия спецификации протокола системной трассировки (STP), принятая платой MIPI. СМ ) — версия 2.2 (февраль 2016 г.). [5]
Протокол MIPI Trace Wrapper (MIPI TWP)
[ редактировать ]Протокол MIPI Trace Wrapper позволяет объединить несколько потоков трассировки в один поток трассировки (потоки байтов). Уникальный идентификатор присваивается каждому потоку трассировки протоколом упаковки. Обнаружение границ байта/слова возможно, даже если данные передаются как поток битов. Инертные пакеты используются, если требуется непрерывный экспорт данных трассировки. Протокол MIPI Trace Wrapper основан на протоколе форматирования трассировки ARM , указанном для ARM CoreSight.
Последняя принятая платой MIPI версия спецификации протокола Trace Wrapper (TWP). СМ ) — версия 1.1 (декабрь 2014 г.). [6]
От специализированных до функциональных интерфейсов
[ редактировать ]
Выделенные интерфейсы отладки
[ редактировать ]
На ранних стадиях разработки продукта обычно используются платы разработки со специальными и легкодоступными интерфейсами отладки для подключения инструментов отладки. SoC, используемые на рынке мобильных устройств, полагаются на две технологии отладки: отладка в режиме остановки с помощью цепочки сканирования и отладка в режиме остановки с помощью регистров отладки, отображаемых в памяти.
Следующие стандарты отладки, отличные от MIPI, хорошо зарекомендовали себя на рынке встраиваемых систем: IEEE 1149.1 JTAG (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 и предоставления информации о состоянии.

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-битные интерфейсы параллельной трассировки (в основном используемые для системной трассировки), дополненные стандартом последовательной проводной отладки (SWD), специфичным для ARM. [10] Разъемы отладки MIPI10/20/34 стали стандартом для встраиваемых систем на базе ARM.
Многие встраиваемые конструкции в мобильной сфере используют высокоскоростные параллельные порты трассировки (до 600 мегабит в секунду на контакт). MIPI рекомендует 60-контактный разъем Samtec QSH/QTH под названием MIPI60, который позволяет использовать JTAG/cJTAG для управления работой, до 40 сигналов данных трассировки и до 4 тактовых импульсов трассировки. Чтобы свести к минимуму сложность, в рекомендации определены четыре стандартные конфигурации с одним, двумя, тремя или четырьмя каналами трассировки различной ширины.
Последней принятой платой MIPI версией Рекомендации Альянса MIPI для соединителей отладки и трассировки является версия 1.1 (март 2011 г.). [11]
PHY и интерфейсы с наложением контактов
[ редактировать ]

Легкодоступные интерфейсы отладки недоступны в окончательном форм-факторе продукта. Это затрудняет выявление ошибок и оптимизацию производительности конечного продукта. Поскольку логика отладки все еще присутствует в конечном продукте, необходим альтернативный путь доступа. Эффективным способом является оснащение стандартного интерфейса мобильного терминала мультиплексором, обеспечивающим доступ к логике отладки. Переключение между основной функцией интерфейса и функцией отладки может быть инициировано подключенным инструментом отладки или программным обеспечением мобильного терминала. Стандартные средства отладки можно использовать при следующих условиях:
- Протокол переключения реализован в средстве отладки и в мобильном терминале.
- Существует адаптер отладки, который подключает инструмент отладки к стандартному интерфейсу. При необходимости адаптер отладки должен поддерживать протокол переключения.
- Указано сопоставление контактов стандартного интерфейса с контактами отладки.
Узкий интерфейс MIPI для отладки и тестирования (MIPI NIDnT) охватывает отладку через следующие стандартные интерфейсы: microSD , разъем USB 2.0 Micro-B/-AB, разъем USB Type-C и DisplayPort. Последняя версия спецификации узкого интерфейса для отладки и тестирования, принятая платой MIPI (NIDnT). СМ ) — версия 1.2 (декабрь 2017 г.). [12]
Сетевые интерфейсы
[ редактировать ]
Вместо повторного использования контактов отладку можно также выполнять через стек протоколов стандартного интерфейса или сети. Здесь отладочный трафик сосуществует с трафиком других приложений, использующих тот же канал связи. Рабочая группа MIPI Debug назвала этот подход GigaBit Debug . Поскольку для этого подхода не существовало протокола отладки, рабочая группа по отладке MIPI определила свой протокол отладки SneakPeak.
Протокол MIPI SneakPeek (MIPI SPP) перешел от выделенного интерфейса для базовой отладки к интерфейсу, управляемому протоколом:
- Он преобразует входящие пакеты команд в доступ для чтения/записи к памяти, регистрам отладки, отображаемым в памяти, и другим системным ресурсам, отображенным в памяти.
- Он преобразует результаты команд (информацию о состоянии и данные чтения, поступающие из памяти, регистров отладки, отображаемых в памяти, и других системных ресурсов, отображаемых в памяти) в исходящие пакеты ответов.
- Поскольку SneakPeek принимает пакеты, поступающие через входной буфер, и доставляет пакеты через выходной буфер, его можно легко подключить к любому стандартному вводу-выводу или сети.
Спецификация Альянса MIPI для протокола SneakPeek описывает основные концепции, необходимую инфраструктуру, пакеты и поток данных. Последняя версия спецификации протокола SneakPeek (SPP), принятая платой MIPI. СМ ) — версия 1.0 (август 2015 г.). [13]
Семейство спецификаций гигабитной отладки MIPI предоставляет подробную информацию для сопоставления протоколов отладки и трассировки со стандартными вводами-выводами или сетями, доступными в мобильных терминалах. Эти детали включают в себя: адресацию конечных точек, инициализацию и управление ссылками, упаковку данных, управление потоками данных, а также обнаружение и восстановление ошибок. Последней версией спецификации гигабитной отладки для USB (MIPI GbD USB), принятой платой MIPI, является версия 1.1 (март 2018 г.). [14] Последней принятой платой MIPI версией спецификации гигабитной отладки для сокетов интернет-протокола (MIPI GbD IPS) является версия 1.0 (июль 2016 г.). [15]
I3C как шина отладки
[ редактировать ]Текущие решения для отладки, такие как JTAG и ARM CoreSight , имеют статическую структуру, что ограничивает масштабируемость в отношении доступности компонентов/устройств отладки. MIPI Debug для I3C представляет собой масштабируемое 2-контактное одностороннее решение для отладки, преимущество которого заключается в том, что оно доступно в течение всего срока службы продукта. Шину I3C можно использовать только в качестве шины отладки, или шину можно использовать совместно для отладки и выполнения ее основной функции в качестве шины сбора данных для датчиков. Отладка по I3C в принципе работает следующим образом:
- Шина I3C используется для физического транспорта, а собственные функции I3C используются для настройки шины и горячего соединения новых компонентов.
- Протокол отладки заключен в специальные команды I3C. Поддерживаемые протоколы отладки: JTAG, ARM CoreSight и протокол MIPI SneakPeek. [13]
Ссылки
[ редактировать ]- ^ «Рабочая группа по отладке» . МИПИ Альянс . 2019 . Проверено 7 июня 2019 г.
- ^ «Обзор архитектуры для отладки» (PDF) . МИПИ Альянс . Версия 1.2. 13 июля 2018 года . Проверено 7 июня 2019 г.
- ^ «Системное программное обеспечение MIPI — трассировка (MIPI SyS-T)» . МИПИ Альянс . Версия 1.0. Апрель 2018 года . Проверено 7 июня 2019 г.
- ^ «Системная трассировка макроячейки» . ARM-разработчик . 2019 . Проверено 7 июня 2019 г.
- ^ «Протокол трассировки системы MIPI (MIPI STP)» . МИПИ Альянс . Версия 2.2. Февраль 2016 года . Проверено 7 июня 2019 г.
- ^ «Протокол MIPI Trace Wrapper (MIPI TWP)» . МИПИ Альянс Версия 1.1. Декабрь 2014 года . Получено 7 июня.
- ^ «Интерфейс параллельной трассировки MIPI (MIPI PTI)» . МИПИ Альянс Версия 2.0. Октябрь 2011 года . Получено 8 июня.
- ^ «Обзор архитектуры CoreSight: высокоскоростной последовательный порт трассировки (HSSPT)» . ARM-разработчик . 2019 . Проверено 8 июня 2019 г.
- ^ «Интерфейс высокоскоростной трассировки MIPI (MIPI HTI)» . МИПИ Альянс . Версия 1.0. июль 2016 года . Проверено 8 июня 2019 г.
- ^ «Отладка последовательного провода» . ARM-разработчик . 2019 . Проверено 8 июня 2019 г.
- ^ «Рекомендации Альянса MIPI для соединителей отладки и трассировки» . МИПИ Альянс .
- ^ «Узкий интерфейс MIPI для отладки и тестирования (MIPI NIDnT)» . МИПИ Альянс . Версия 1.2. Декабрь 2017 года . Проверено 9 июня 2019 г.
- ^ Jump up to: а б «Протокол MIPI SneakPeek (MIPI SPP)» . МИПИ Альянс Версия 1.0. Август 2015 года . Получено 9 июня.
- ^ «MIPI Gigabit Debug для USB (MIPI GbD USB) » МИПИ Альянс Версия 1.1. Март 2018 года . Получено 9 июня.
- ^ «Гигабитная отладка MIPI для IP-сокетов (MIPI GbD IPS) » МИПИ Альянс Версия 1.0. июль 2016 года . Получено 9 июня.
Внешние ссылки
[ редактировать ]- Шульц, Норберт (Intel Corporation) (26 сентября 2016 г.). Как спецификации отладки MIPI помогают мне разрабатывать системное ПО . MIPI DevCon 2016 . Проверено 9 июня 2019 г.