Что инициализируется в стартапе кроме тактирования
Что проверяют
Понимаете ли вы, что происходит между подачей питания и первой строкой прикладного кода, и что из этого стоит проверять. Тестировщику прошивки важно знать, какие шаги старта можно сломать и как поломка выглядит снаружи.
Как отвечать
Сначала уточните, о старте прошивки на плате идёт речь или о запуске сервиса: наборы шагов разные. Для прошивки кроме настройки тактирования происходит вот что:
- подъём питания, ожидание стабильного напряжения, выбор режима энергопотребления;
- настройка указателя стека и таблицы векторов прерываний, разрешение прерываний;
- подготовка памяти: копирование инициализированных данных из флеш-памяти в ОЗУ, обнуление секции неинициализированных переменных, настройка внешней памяти;
- включение периферии: порты ввода-вывода, последовательные интерфейсы, таймеры, АЦП, контроллер прямого доступа к памяти;
- запуск сторожевого таймера и чтение причины предыдущего сброса;
- чтение калибровок и пользовательской конфигурации из энергонезависимой памяти с проверкой контрольной суммы;
- самодиагностика и перевод выходов в безопасное состояние.
Дальше переводите список в проверки: холодный старт против тёплого, старт после сброса по сторожевому таймеру, просадка питания посреди записи конфигурации, откат на внутренний генератор при неисправном кварце, время от подачи питания до готовности, повторяемость на серии включений.
Где спотыкаются
Перечисляют шаги, но не могут сказать, как это проверить. От тестировщика ждут не пересказа документации на микросхему, а сценария: что подать на вход и по какому признаку понять, что шаг прошёл.
Второе: забывают про порядок. Периферия, настроенная до смены частоты, получает неверные делители, и интерфейс сыплет ошибками уже в работе. Такой дефект ловится тестом полного цикла включения, а не проверкой уже запущенного устройства.
Третье: проверяют только успешный путь. Самое интересное в старте это отказы: нет внешней памяти, испорчена конфигурация, питание просело. Устройство должно приходить в понятное состояние, а не зависать молча.