私はMPC5644Aチップセットのコアテストを実行しようとしています。
現在私が使用している環境はEclipseとWind Riverです。
私はメーカーのライブラリであるe200Zx_ICST_RTMC_3.0.0をダウンロードしました。このライブラリには、複数のアセンブリソースファイル(.sファイル)が含まれています。
これらのうち、vleは正常にコンパイルされました。
しかし、book_eとspeはコンパイルに失敗します。
コンパイル中に、bc、bcl、bclr、xoris、bclrl、bcctrlなどの様々なアセンブリ命令でエラーが発生しました。book_e および spe アセンブリファイルのプロパティを開き、C/C++ ビルド --> 設定 --> Diab アセンブラ --> その他 --> その他のオプションとフラグに -tPPCE200Z4NEG:simple を追加したところ、コンパイルが正常に完了しました。しかし、デバッグ中に、実際にコアテストを実行する`fsl_self_test_icst.c`内の`Fsl_call_test_execution_icst`の直前に到達しました。次のステップに進むと、無限ループに陥ってしまう。
Eclipseの逆アセンブリで確認したところ、アドレス0x51518(`SPE_ICST_int_logical_test`の開始直後)にステップインすると、すぐに0x3f2b90(空き領域)にジャンプすることがわかりました。
どうすればいいですか?どこから始めたらいいのか分からない。
こんにちは、
SCSTはMPC56xxファミリの以下のデバイスのみをサポートしています:
MPC5644AとMPC564xBは同じe200z4 CPUコアを共有しているため、SCSTライブラリのCPU関連部分は互換性がある可能性があります。しかし、統合に関するあらゆる側面を検討する必要がある。
実際のCPUテストアルゴリズムは、同じe200z4アーキテクチャを対象としているため、ほぼポータブルであるはずです。
NXPは、旧型MPC5644Aデバイス用の公式SCSTライブラリを提供していません。しかし、MPC5644A MPC564xBファミリと同じe200z4コアを使用しているため、デバイス固有の統合詳細を確認した後、MPC564xBソリューションからCPU特化した自己テストルーチンを適用することも可能かもしれません。あるいは、MCUの組み込み安全機構(ECC、CRC、ウォッチドッグ、MPU、例外処理)を用いて、プロジェクト固有の機能安全要件を満たすカスタム起動診断実装を開発することも可能です。
どうすればいいですか?どこから始めたらいいのか分からない。
コードが0x51518でSPE_ICST_int_logical_test()に入り、すぐに空のメモリと思われる0x3F2B90に分岐する場合、私の最初の疑いはCPUの故障ではなく、リンカ/ライブラリの統合の問題です。
SCSTライブラリの場合、これは通常、以下のいずれかを意味します。
1. 関数ポインタまたは分岐テーブルが正しくリンクされていません
2. ライブラリオブジェクトが見つかりません
3. メモリモデルの誤り/VLEの不一致
4. 別のデバイス用に構築されたSCSTライブラリ
5. MMU/TLB変換の問題
よろしくお願いいたします。
ピーター