Embedded HandbookПриложения
Все разделы › 0. О справочнике
STM32F103, STM32F407 · уровень средний · 6 мин чтения
Открыть в интерактивном справочнике

0в. Маршруты по темам: от макета к изделию

Макет работает на столе — и тут выясняется, что до прибора, который можно отдать или продать, ещё полпути. Программа должна пережить помеху и собственную ошибку, образ — дойти до прибора и не быть подменённым, плата — собраться на заводе и пройти тест на линии, а изделие — получить документы и подтверждение соответствия. Всё это в справочнике есть, но разложено по семи частям.

Маршрут Е: от макета к изделию собирает эти разделы в один порядок — четырнадцать шагов от карты этапов до сертификации. Правила те же, что у маршрута новичка (0а.1) и маршрута Д (0б.1): один шаг — один раздел или пара разделов, из каждого выносится столбец «Что вынести».

Опоры: маршрут новичка (0а) или маршрут А (0.3) — прибор, который уже работает; раздел 0 — уровни и платы (0.1, 0.2).

Как это называется в документации

Оригинал Перевод
first article первый образец из серии: его проверяют до запуска партии
release candidate кандидат в выпуск
field failure отказ у пользователя, в поле
product lifecycle жизненный цикл изделия

0в.1 Как идти по маршруту Е

Маршрут идёт в том порядке, в каком вопросы встают перед изделием: сначала программа, которая переживает сбой (шаги 2–5), потом путь образа от сборки до прибора (6–9), потом плата на заводе (10–11) и само изделие — стойкость, документы, соответствие (12–14).

Первый шаг — карта: раздел 79 показывает весь путь сразу, остальные шаги — его этапы крупным планом. Уровень маршрута — базовый → продвинутый: шаг 1 базовый, продвинутые — 36в, 48 и 48а, 11в.


0в.2 Маршрут Е: от макета к изделию

Уровень маршрута: базовый → продвинутый. Четырнадцать шагов: программа, которая переживает сбой, путь образа до прибора, плата на заводе и изделие целиком.

Шаг Раздел Что вынести Что пока пропустить
1 79 этапы образуют петлю, и ошибка тем дороже, чем позже найдена; требование измеримо; программа с первого дня — как для серии 79.9 команда
2 12 сторожевые таймеры IWDG и WWDG, как узнать сброс от сторожа; аппаратный CRC 12.6 RTC
3 36в помеху ловят не саму, а её последствия; ловушка в свободной флеш-памяти, ни одного пустого вектора, контроль хода программы 36в.5 двойное хранение настроек — к повторному проходу
4 35в запись о сбое в области, которую не обнуляет старт, переживает сброс; разбор на компьютере по ELF 35в.6 что переживает запись, а что нет
5 184 три уровня тестов и что ловит каждый; модуль, который проверяется без платы; что держать в конвейере 184.5–184.6: мутации, санитайзеры и случайные входы
6 110, 110а сборка в контейнере, версия из истории, красная сборка останавливает выпуск; дельта размера на каждую правку 110.5 матрица из двух плат
7 48, 48а свой загрузчик: раскладка, заголовок, проверка образа; подпись защищает от подмены, в приборе — только открытый ключ 48.10 обновление по воздуху
8 11в что обещает защита чтения и чего она не даёт на F1; что даёт каждый уровень у F1, F4 и U5 11в.4 проверка на модели ядра
9 201а версия из метки git, метаданные в фиксированном месте флеш-памяти, CRC считает скрипт выпуска, один файл на линию 201а.4 воспроизводимая сборка
10 199, 200 что завод хочет от вас: перечень, файл установки, гербер; оживление платы по порядку — осмотр, прозвонка, питание с ограничением тока, SWD 199.6 панелизация
11 201 тест на линии отвечает «собрана ли плата», а не «правилен ли код»; ложе с иглами, прошивка из скрипта, серийный номер, байты конфигурации 201.3 расчёт времени прошивки
12 203, 204 ЭМС: сам шумишь — и тебя глушат, проверка в мастерской; надёжность: что стареет первым, запасы, испытания у себя 204.1 надёжность в числах
13 205, 205б комплект документов, ревизии платы и версия прошивки, журнал изменений; лицензии взятого открытого кода и SBOM 205.3 обозначения
14 206 продажа прибора — это подтверждение соответствия; радиомодуль или своё радио; отсеять ошибки дома до лаборатории 206.6 маркировка и документы после испытаний

Маршрут Е: четырнадцать шагов змейкой — этапы, сторож, помехоустойчивая прошивка, слепок сбоя, тесты, конвейер, загрузчик и подпись, защита чтения, выпуск, завод и первое включение, тест на линии, ЭМС и надёжность, документы, сертификация — и восемь развилок; цвет блока — уровень самого сложного раздела в нём

Порядок держится на одном: каждый шаг опирается на предыдущий. Слепок сбоя (4) пишет обработчик, до которого программа доходит благодаря ловушкам (3); конвейер (6) гоняет тесты (5); выпуск (9) ставит в образ заголовок, который проверяет загрузчик (7); тест на линии (11) прошивает файл выпуска (9) и выставляет защиту чтения (8).


0в.3 Что нужно на столе


0в.4 Куда дальше: развилки после маршрута Е


0в.5 Грабли

Думать о серии после макета. Программа «как для серии» начинается с первого дня, а не после того, как макет заработал (79.5): сторож, проверку образа и версию дороже встраивать в код, который о них не знал.

Подписать образ и не сравнивать версию. Честно подписанный старый образ подпись пропускает; от отката на него спасает только сравнение версии после проверки подписи (48а.2).

Считать защиту чтения F1 защитой прошивки. На F1 первый уровень — защита от случайного копирования, а не от целенаправленной атаки (11в.8).

Собирать выпуск на своей машине. Коммит после метки или правка без коммита — отказ выпуска (201а.6); выпуск собирает конвейер (110).

Включить новую плату без ограничения тока. Первое питание — от источника с пределом тока (200.3): дефект тогда греется милливаттами, а не сгорает.


0в.6 Итоги


Дальше: раздел 0г «Маршруты по темам: прибор на RTOS — архитектура и наблюдение» — третий маршрут по теме: как сложить прибор из задач FreeRTOS и как увидеть, что в нём происходит.

Открыть в интерактивном справочнике