2079267_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2079267_ja-JP

2079267_ja-JP

S32k324 ブートローダ リンカ (2 つのリンカ ファイルの物語)

S32k324にブートローダー/アプリケーションのセットアップがあります。マップをスカベンジラムに変更する必要が生じるまでは、十分に動作しました。現時点ではcore0のみを使用しています。2 番目のコアは無効です。

リンカファイルが一致(ブートローダー(0x400000)とアプリケーション(0x420080))が一致していれば問題ありません。アプリケーションのフラッシュ(現在は0x420080)のオフセットを問題なく再定義できます。ブートローダーで使用される最初のsram / itcm / dtcm設定から逸脱して、無効になっているCore1のRAMを再利用すると、アプリケーションがハードエラーになります。ブートローダー(0x400000)オフセットからアプリケーションをロードすると、アプリケーションは新しいリンカファイルで正常に動作します。

問題の原因は何ですか?


Re: S32k324 ブートローダ リンカ (2 つのリンカ ファイルの物語)

アプリケーションのベースアドレスを0x400000に設定したとき。ロードして実行します。

アプリケーションのベースアドレスが 0x420080 に設定され、ブートローダーからジャンプすると、最初の使用時または初期化時にブートローダーによって初期化されなかったメモリにハード フォールトが発生します。

rasr レジスタと rbar レジスタを確認したところ、RAM で変更されていることがわかります。

また、'S32_MPU' 内の値が rasr と rbar の値で更新されているのも確認できますが、それらが実際に適用されているかどうかはわかりません。

しかし、メモリを再構成する前に、MPU(メモリ保護ユニット)はすでに有効になっているようです。次に、キャッシュを再度有効にする前に、MPUを有効にしようとします。

これらの値を変更する前に、MPU->CTRL[0]を0に設定する必要がありますか?データシートにはそれに関する参照を見つけることができませんでした。

Re: S32k324 ブートローダ リンカ (2 つのリンカ ファイルの物語)

はい、アプリケーションはSRAMメモリを再初期化できます。ただし、すでにブートローダーによって初期化されている場合は、不要な操作です。

Re: S32k324 ブートローダ リンカ (2 つのリンカ ファイルの物語)

ブートローダーが最初に実行された場合、アプリケーションがメモリを再初期化することは可能ですか?


私のスタートアップファイルは、どちらのアプリケーションでもS32K3_RTD_2_0_0_D2203_ASR_REL_4_4_REV_0000_20220331に基づいています。

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎11-21-2025 09:33 PM
更新者: