Маршруты навыков

TTDD = DDTT + другие свидетели цели. Модуль отвечает за проверку с остановками; навыки-спутники добавляют взгляд без остановки ядра, снаружи и без платы.

Свидетели цели

СвидетельЧто показываетВоздействие на цельНавыки
GDB и SWD с остановками (DDTT)состояние в точке остановки: переменные, регистры, MMIO, возвраты; подмена данных и отказовядро стоит в точках остановаscenarios, run
SWD без остановки ядразначения переменных и регистров во времени, пока прошивка работаеттолько чтение памяти по шинеstm32-diag-record, stm32-ros-alt-channel
Собственный вывод прошивкилог, телеметрия и события, которые прошивка публикует саманужен канал в прошивкеstm32-rtt-console, stm32-swo-trace, stm32-ros-alt-channel
Выводы MCU снаружиреальное время: фронты, ШИМ, джиттер ISR, шины на проводенет, пассивный щупweact-logic-analyzer
Модель без платыход ELF на модели, обращения к перифериинет; подготовка, а не проверка на целиrenode, stm32-renode-emulator
Требованиячто проверять: ID требований и тест-кейсов, допуски—embedded-tech-spec

Правила

Судит требованиеОжидание берётся из требования; каждый свидетель только подтверждает или опровергает его. Расхождение свидетелей — находка.
Остановки меняют времяВремя, частоты и джиттер измеряйте свидетелем, который не останавливает ядро; DDTT — конфигурация, ветвления, отказы.
Один хозяин SWDНе запускайте два GDB-сервера на один отладчик; анализатор и UART можно вести параллельно.
Свидетельства рядомЗаписи одного опыта связываются по ID сценария или требования и лежат рядом с result.json.
Эмулятор — подготовкаМодель сокращает попытки на плате, но вывод «проверено на цели» даёт только плата.

Как выбирать навык

НавыкКогда и что датьРезультат
integrateДля первого подключения или смены версии. Дайте CMake-проект и нужный тег; сначала проверьте конфигурацию и prepare, затем один аппаратный сценарий.Закреплённый gitlink, HIL-конфигурация, пресеты и воспроизводимая команда запуска.
scenariosКогда требование к прошивке уже известно. Укажите наблюдаемое поведение и допустимые воздействия; берите ожидания из требования, а не из текущего ответа платы.Сценарий и контракт ELF; logical-time для порогов/retry, counter-cost для разности и расходов. external-capture — отдельная host-модель, не @case.
runДля конкретного прогона. Передайте session или пакет и стенд; начинайте с doctor и prepare. После изменения кода переходите к develop, а не повторяйте запуск без гипотезы.Результат команды и сценария, журналы, восстановление и объяснение FAIL/ERROR/SKIP.
resultsКогда артефакты уже есть. Дайте полный каталог попытки или кампании и соответствующие исходники; сначала проверяйте происхождение и целостность, затем трактуйте записи.Отдельные исходы сценария, захвата, анализа и очистки. neutral-workflows связывает три примера с критериями; UNKNOWN не ноль, PASS кампании не отменяет намеренные FAIL.
stand-loopДля повторения принятого неизменяемого комплекта. Задайте конечное число циклов, политику FAIL/SKIP и STOP; при изменении ELF или сценария пересоберите комплект.Раздельные попытки, сводка цикла и review.json для агента; исходный проект на стенде не обязателен.
developДля изменения прошивки с обратной связью от схемы. Дайте требование, исходники, описание стенда и бюджет итераций; фиксируйте план и исходный FAIL до исправления.Требование → исходный дефект → исправление → тот же сценарий и повтор. Не скрывать retry через reset и не подгонять временные опоры по желаемому результату.
hse-qualifyДайте номинал, допуск, плату и разрешённые воздействия; обоснуйте точность часов до аппаратного измерения.Интервал частоты, IN_TOLERANCE/OUT_OF_TOLERANCE/UNKNOWN, отдельный исход восстановления и границы эпохи.

Типовые маршруты

без платы: требования, сценариинастройка, эмуляторработа с платойразбор результатов
Новый проект
Требования и тест-кейсы → подключение модуля → сценарии → прогон → разбор.
Доработка прошивки
develop на каждом шаге использует scenarios, run и results: исходный FAIL фиксируется до исправления, после — регрессия.
Временно́е требование
Настройку периферии проверяют MMIO и SVD, анализатор измеряет вывод без остановки ядра, results сводит оба свидетельства. Частота кварца — отдельный маршрут hse-qualify.
Поведение в работе
Сценарий DDTT подводит плату к состоянию и проверяет переходы, запись по SWD или в ROS1 пишет поток; запись лежит рядом с result.json под тем же ID.
Без платы → на плату
Короткий опыт и границы модели в Renode или QEMU, затем тот же сценарий на стенде.
Диагностический канал
RTT или SWO показывают, что прошивка делает между остановками; сценарий DDTT они не заменяют, но помогают объяснить FAIL.
Автономный стенд
Конечные циклы неизменного комплекта, разбор попыток; найденная проблема — отдельный цикл develop.

Навыки модуля

Каждый навык — каталог с SKILL.md в формате Agent Skills; версия навыка совпадает с версией модуля.

Навыки-спутники

Из demo-stm32-skills: требования, эмуляторы, наблюдение без остановки ядра, сигналы на выводах.

Справочник API →