もちろんだよ、ゴーサム!コミュニティ グループ (NXP フォーラム、Stack Overflow、組み込みシステム グループなど) に投稿できる、質問の明確で技術的なバージョンは次のとおりです。
こんにちは、皆さん
私はS32K144に取り組んでおり、現在カスタム MCAL ドライバを開発しています。開発には、 SEGGER J-Link デバッガーとS32 Design Studio (S32DS)を使用しています。
コードをデバッグしようとすると、レジスタとメモリのアクセスに関連するエラーと警告が連続して発生します。主なエラー メッセージは次のとおりです。
ERROR: Cannot read register 26 (FAULTMASK) while CPU is running ERROR: Cannot read register 27 (CONTROL) while CPU is running ... ERROR: Cannot read register 64 (FPS31) while CPU is running WARNING: Failed to read memory @ address 0xDEADBEEE
観察:
これらのエラーは、ターゲットの実行が開始されるとすぐに表示されます。
CPU が実行モードの間は、デバッガーはシステム レジスタや浮動小数点レジスタにアクセスできないようです。
メモリ警告は無効なアドレスを指しています: 0xDEADBEEE。
現在の設定:
MCU: NXP S32K144 (ARM Cortex-M4F)
IDE: S32 Design Studio
デバッガ:SEGGER J-Link(SWDモード、1MHz)
アプリケーション: ベアメタル、カスタム MCAL ドライバの開発とテスト
デバッグモード: GDBサーバー経由でコネクテッドし、S32DS経由でフラッシュ/デバッグ
質問:
CPU の実行中にこれらのレジスタ アクセス エラーが発生するのはなぜですか?
実行中にレジスタの読み取りを許可する設定はありますか、それとも CPU を停止する必要がありますか?
0xDEADBEEE でのメモリ アクセスの根本的な原因は何でしょうか?
これは、NXP ドライバまたは MCAL の初期化されていないポインターに使用される一般的なデフォルト値ですか?
低レベルの MCAL ドライバを開発するときに、これらのデバッガーの制限を処理するための推奨される方法はありますか?
S32K1xx MCU、MCAL 開発、または SEGGER J-Link ツールに携わったことがある方からの助言をいただければ幸いです。さらにログや設定の詳細が必要な場合はお知らせください。
よろしくお願い申し上げます。
こんにちは@Gowtham_768さん、
追加の回答で申し訳ありませんが、以下の情報の確認にご協力ください。
ボードに接続しようとするのは今回が初めてですか、それとも以前デバッグして接続できたことはありますか?
S32DS v3.6を使用していますか?そうでない場合、どのバージョンですか?また、SDKs または RTD ドライバを実装しているかどうか、またそのバージョンも教えてください。
この問題の詳細については、次のアプリケーション ノートを確認してください。 AN12130: S32K1xx MCU 向け量産フラッシュプログラミングのベストプラクティス – アプリケーションノート
よろしくお願いします、
ジュリアン