Журналирование и анализ сбоев¶
Журналирование — часть продукта, а не временное средство отладки. Хорошо спроектированная система журналирования ускоряет первичную отладку платы, диагностику в полевых условиях и расследование неисправностей на производстве.
Продумайте сбор журналов до первых полевых испытаний. После отказа устройства в полевых условиях можно будет получить только те данные, которые прошивка заранее настроена сохранять или выводить.
Минимальная настройка журналирования¶
Для каждой сборки прошивки фиксируйте:
- Версию прошивки.
- Ветку или commit SDK.
- Название и ревизию платы.
- Причину загрузки.
- Версию разметки разделов.
- Результаты инициализации основных подсистем.
- Сообщения о сбое или вывод assert, если загрузка завершилась с ошибкой.
Порядок анализа сбоя¶
- Воспроизведите проблему на плате с проверенной базовой конфигурацией.
- Сохраните полный журнал загрузки, начиная со сброса.
- Сохраните точный бинарный файл прошивки и соответствующие файлы символов.
- Декодируйте вывод assert или дамп с помощью инструментов SiFli.
- Проверьте размеры стеков, владение памятью, буферы DMA и обслуживание кэша.
- Локализуйте проблему, взяв за основу наиболее подходящий пример из SDK.
Уровни журналирования¶
Таблица: уровни журналирования
| Этап | Рекомендуемый объём логирования |
|---|---|
| Первичный запуск платы | Подробные журналы периферии и загрузки. |
| Разработка функций | Отладочные журналы на уровне модулей, относящиеся к проверяемой функции. |
| Настройка энергопотребления | Сведите логирование к минимуму: вывод журналов сам влияет на энергопотребление. |
| Кандидат на выпуск | Предупреждения, ошибки, версия, причина загрузки и основные проверки состояния. |
| Сборка для полевой диагностики | Целевые журналы для подсистемы, в которой предполагается неисправность. |
Что должно быть в отчёте о сбое¶
- Полный журнал от момента сброса до сбоя.
- Точное обозначение бинарного файла прошивки.
- Файлы символов или возможность воспроизвести сборку.
- Указание, возникает ли сбой на неизменённом примере из SDK.
- Перечень подключённой периферии и источник питания.
- Указание, сохраняется ли сбой после полного стирания флеш-памяти и повторной прошивки.
Последнее обновление: