コンテンツにスキップ

ログとクラッシュ解析

ログは一時的なデバッグ手段ではなく、製品の一部です。適切なログがあれば、立ち上げ、現場でのデバッグ、工場での調査にかかる時間を短縮できます。

最初のフィールド試験より前にログ設計を行ってください。現場でデバイスが故障した後に得られるのは、ファームウェアが事前に保存または出力する準備をしていたデータだけです。

最低限のログ設定

すべてのファームウェアビルドについて、次の情報を記録します。

  • ファームウェアのバージョン。
  • SDKのブランチまたはコミット。
  • ボード名とリビジョン。
  • 起動理由。
  • パーティション配置のバージョン。
  • 主要サブシステムの初期化結果。
  • 起動に失敗した場合のクラッシュ/assert出力。

クラッシュ解析の手順

  1. 正常動作を確認済みの基準構成を使用するボードで、問題を再現します。
  2. リセット直後からの起動ログ全体を取得します。
  3. 使用した正確なバイナリとシンボルファイルを保存します。
  4. SiFliのツールでassertまたはダンプ出力を解析します。
  5. スタックサイズ、メモリーの所有関係、DMAバッファー、キャッシュのメンテナンス処理を確認します。
  6. 最も近いSDKサンプルを使って問題を切り分けます。

ログレベル

表: ログレベル
段階 推奨するログ
ボードの立ち上げ 周辺機器と起動に関する詳細なログ。
機能開発 試験対象の機能に関するモジュール単位のデバッグログ。
低消費電力の調整 ログ出力自体が消費電力に影響するため、必要最小限にする。
リリース候補 警告、エラー、バージョン、起動理由、主要なヘルスチェック。
現場診断用ビルド 疑わしいサブシステムに絞ったログ。

適切なクラッシュレポートに含めるもの

  • リセットからクラッシュまでのログ全体。
  • 使用した正確なバイナリ。
  • シンボルファイル、または再現可能なビルド。
  • 変更していないSDKサンプルでもクラッシュするかどうか。
  • 接続している周辺機器と電源。
  • Flash全消去後に再書き込みしてもクラッシュするかどうか。

最終更新: