2387351_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2387351_ja-JP

2387351_ja-JP

MPC5748G: ユーザーモードでペリフェラルにアクセスしようとする際にMachineCheck例外が発生する

こんにちは、

OpenPicortoをPowerPCプラットフォームに移植したところ、問題が発生しました。

PBRIDGEの設定は正しくできているのに、ユーザーモードでペリフェラルにアクセスしようとするたびにMachineCheckの例外が出ます。

スーパーバイザーモードは問題なく動作しますが、私が求めているものではありません。ユーザー/スーパーバイザーモードのマネジメント(+MPU)と、ユーザーモードでペリフェラルにアクセスできるようにしたいです。

いろいろ試してみましたが、どれもうまくいきません。私が何か間違ったことをしているのか、それともそもそも不可能なことなのか分かりません。

現時点では、デモンストレーション目的で全てをスーパーバイザーモードにしています。現在のコードの状態は以下のとおりです。

- PBRIDGEの設定を試みた結果:

https://github.com/jnaulet/OpenPicoRTOS/blob/v1.11.x/arch/powerpc/e200z4/mach-mpc574x/startup.S

- 無効化されたユーザーモード(arch_save_first_contextでは):

https://github.com/jnaulet/OpenPicoRTOS/blob/v1.11.x/arch/powerpc/e200z4/picoRTOS_portasm.S

- このシステムのデバッグに使用している完全なデモ:

https://github.com/jnaulet/OpenPicoRTOS/tree/v1.11.x/demo/devkit-mpc5748g

どんなご協力でもありがたいです。

敬具。

Re: MPC5748G: MachineCheck exception hen trying to access peripherals in user mode

こんにちは、

ユーザーモードアクセス拒否には複数の理由があります:

おそらくPBRIDGEまたはMPU構成でしょう。

以下から確認を始めることができます:

  1. PBRIDGE PACR/OPACRの初期化。
  2. すべてのペリフェラルスロットがユーザーアクセスに設定されているかどうか。
  3. MPU領域の定義対象:
    • 0xFxxxxxxx ペリフェラル空間
    • 読み取り/書き込み権限
    • スーパーバイザー/ユーザー属性。
  4. RTOSがユーザーモードに切り替わった後のMSR値。
  5. 故障を引き起こす正確なペリフェラルアドレス。
  6. IVOR1入力時のMCSR/ESR/DEAR。

よろしくお願いいたします。

ピーター

Tags (1)
No ratings
Version history
Last update:
2 weeks ago
Updated by: