私はARM MMUをセットアップするコードを作成していました。私は高速モデルを使用しています。 VTTBRレジスタにいくつかのダミー値を入れて、データを中止しました。 私はこのポストHow to handle this Data Abort exception in ARM 7? mode in CPSR 0x17 and board stucked at 0x10を見て、私はリンクレジスタを見ようとしました。 そこから、この命令で中止が起こったことがわかりました:MOVT r3,#0x8400
。ARM v7でデータのタイプを見つける方法は?
しかし、これ前にはすでに移動がMOV r3,#0x9240
のように起こっています。私は第2の動きで何がうまくいかなかったのか、かなり困惑しています。私は可能な4つのタイプの中で起こったどのタイプのデータアボートが正確に知りたいのですか(1.アラインメントフォールト2.トランスレーションフォールト3.ドメインフォールト4.permission faults)。
私のコードは、私がMOVTは、下ハーフワードに影響を与えることなく、上位(トップ)ハーフワードの中の値を動くことを知っているこの
840000A4 : MOV r3,#0x9240
840000A8 : MOVT r3,#0x8400
のようになります。
私のLR
には、840000A8
が含まれています。
アームのドキュメントを読んで、どのコプロセッサーのcsrsにどのようなステータスが含まれているかを伝えます。 –