如何把User Mode和kernel mode地址转换到物理地址
我使用arm 跑linux,但外接的一个硬件芯片要求输入一个物理地址让它做一些操作 在没有linux 及mmu 下,这个是可以的! 在linux kernel 下,我开始晕了!是不是用_virt_to_phys()就可以呢! 但是,如果应用程式经常要从User mode跳进Kernel Mode,要浪费很多资源跟时间 (1秒要做1000多次..)
因此我想使用mmap 在user mode 映射芯片的暂存器,然後把malloc()分配出来的 User Mode地址转换为Kernel Mode的地址,然後再把kernel mode的地址变为物理地址,那我就可以把物理地址写进出暂存器了。
有高手可以帮忙吗?
|