0xfee00020
APIC レジスタのメモリ マップの場所である物理アドレスにアクセスしたい。MOV
" " 命令を使用して、この場所にデータを読み書きしたいと考えています。最初に物理アドレスから仮想アドレスへの変換を行うべきですか? インライン アセンブリでコードをどのように記述する必要がありますか?
ありがとう。
0xfee00020
APIC レジスタのメモリ マップの場所である物理アドレスにアクセスしたい。MOV
" " 命令を使用して、この場所にデータを読み書きしたいと考えています。最初に物理アドレスから仮想アドレスへの変換を行うべきですか? インライン アセンブリでコードをどのように記述する必要がありますか?
ありがとう。
アドレスに直接アクセスする代わりに、次の関数を使用する必要があります (これは機能する可能性がありますが、移植性はありません)。
request_mem_region()
ioremap()
writeb()/writew()/writel()
またreadb()/readw()/readl()
はい、アドレスを使用する前に、通常は ioremap を使用して物理アドレスから仮想アドレスへの変換を行う必要があります。一部のプラットフォームでは、ioremap からの戻り値を、アクセスするメモリへのポインターとして直接使用することで回避できます。