QEMU を使用して ARM11 CPU をシミュレートしています。
私のプログラムは複雑すぎてここで説明できないので、問題をより単純なプログラムに投影します。したがって、私のプログラムには2つのcファイルが含まれています:
- main.c
- some_code.c
some_code.c を (some_code.o に) コンパイルしてから、some_code.c のコードを表す HEX 配列変数に変換します。
現在、両方のオブジェクト ファイル (main.o と some_code.o) をリンクしています。この変数 (HEX 配列変数) は、DATA セグメントにあります。
今、main.c のコードから HEX 配列変数を呼び出しています (私の意図は、この時点で some_code.c のコードが実行を開始することです)。プログラム カウンター (PC) が HEX 配列変数に到達すると、例外が発生します (例外の詳細はわかりません)。
この HEX 配列変数を DATA セクションから CODE セクションにコピーすると、PC がこの行に到達すると、例外なく正常にステップ実行できるようになります。
だから私の質問は:
- QEMU には DATA セクションからのコマンドの実行に制限がありますか?
- もしそうなら、どうすればこの制限を無効にできますか?
よろしくお願いします。
オムリ