ログとクラッシュ解析¶
ログは一時的なデバッグ手段ではなく、製品の一部です。適切なログがあれば、立ち上げ、現場でのデバッグ、工場での調査にかかる時間を短縮できます。
最初のフィールド試験より前にログ設計を行ってください。現場でデバイスが故障した後に得られるのは、ファームウェアが事前に保存または出力する準備をしていたデータだけです。
最低限のログ設定¶
すべてのファームウェアビルドについて、次の情報を記録します。
- ファームウェアのバージョン。
- SDKのブランチまたはコミット。
- ボード名とリビジョン。
- 起動理由。
- パーティション配置のバージョン。
- 主要サブシステムの初期化結果。
- 起動に失敗した場合のクラッシュ/assert出力。
クラッシュ解析の手順¶
- 正常動作を確認済みの基準構成を使用するボードで、問題を再現します。
- リセット直後からの起動ログ全体を取得します。
- 使用した正確なバイナリとシンボルファイルを保存します。
- SiFliのツールでassertまたはダンプ出力を解析します。
- スタックサイズ、メモリーの所有関係、DMAバッファー、キャッシュのメンテナンス処理を確認します。
- 最も近いSDKサンプルを使って問題を切り分けます。
ログレベル¶
表: ログレベル
| 段階 | 推奨するログ |
|---|---|
| ボードの立ち上げ | 周辺機器と起動に関する詳細なログ。 |
| 機能開発 | 試験対象の機能に関するモジュール単位のデバッグログ。 |
| 低消費電力の調整 | ログ出力自体が消費電力に影響するため、必要最小限にする。 |
| リリース候補 | 警告、エラー、バージョン、起動理由、主要なヘルスチェック。 |
| 現場診断用ビルド | 疑わしいサブシステムに絞ったログ。 |
適切なクラッシュレポートに含めるもの¶
- リセットからクラッシュまでのログ全体。
- 使用した正確なバイナリ。
- シンボルファイル、または再現可能なビルド。
- 変更していないSDKサンプルでもクラッシュするかどうか。
- 接続している周辺機器と電源。
- Flash全消去後に再書き込みしてもクラッシュするかどうか。
最終更新: