我想访问物理地址0xfee00020
,这是APIC寄存器的内存映射的位置。我想使用" MOV
"指令将数据读取或写入此位置。我应该先进行物理到虚拟地址的转换吗?如何在内联汇编中编写代码段?
谢谢。
您应该使用以下函数,而不是直接访问地址(这可能有效,但绝对不可移植):
-
request_mem_region()
-
ioremap()
-
writeb()/writew()/writel()
或readb()/readw()/readl()
是的,您需要在地址上进行物理到虚拟地址的转换,通常使用 ioremap,然后才能使用它。在某些平台上,您可以直接使用 ioremap 中的返回值作为指向要访问的内存的指针。