浅谈linux地址映射iorema

哪个医院治疗白癜风最好 http://pf.39.net/bdfyy/xwdt/

概述

对于嵌入式处理器而言,访问外设均是通过以地址指针的方式访问,不过在嵌入式系统中,因为MMU(MemoryManagementUnit)的存在,不管是内核程序还是应用程序都不允许直接访问外设的物理地址。

注意

1、MMU(MemoryManagementUnit)内存管理单元,主要完成虚拟地址和物理地址的映射。

2、操作系统启动之前都会初始化MMU,设置好内存映射。

3、CPU访问的地址均是虚拟地址。

接口

在linux中使用ioremap/iounmap完成物理地址到虚拟地址的映射,映射后访问虚拟地址就等价于直接访问对应的物理地址。

/*ioremap用于物理地址到虚拟地址的映射,iounmap用于解除映射*/externvoid__iomem*__ioremap(phys_addr_tphys_addr,size_tsize,pgprot_tprot);externvoid__iounmap(volatilevoid__iomem*addr);#defineioremap(addr,size)__ioremap((addr),(size),__pgprot(PROT_DEVICE_nGnRE))#defineiounmap__iounmap

左右滑动



转载请注明地址:http://www.sanbaicaoasb.com/scls/8419.html
  • 上一篇文章:
  • 下一篇文章:
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章