天嵌 ARM开发社区

 找回密码
 注册
查看: 2861|回复: 2

MMU的功能

[复制链接]
phonelong 发表于 2012-7-25 22:56:53 | 显示全部楼层 |阅读模式
请教高手,mmu除了能映射存储空间,还能够映射寄存器空间吗?
比如2440的watchdog的控制寄存器是0X53000000的物理地址,那在linux下他的地址是多少,是通过MMU控制的,还是在arm-linux中配置的,如果是在arm-linux中配置的,那是如何配置的?
请高手解答!
Jangel 发表于 2012-7-27 17:07:15 | 显示全部楼层
看下这个文件 /linux-2.6.30.4/drivers/watchdog/s3c2410_wdt.c
虚拟地址到物理地址的转换因为是由硬件完成的,所以内核态的虚拟地址一样会自动被转换为物理地址。
summersunboy 发表于 2012-7-28 11:16:48 | 显示全部楼层
本帖最后由 summersunboy 于 2012-7-28 14:41 编辑

发表个人观点,欢迎拍砖:
    mmu 既可以映射存储空间,也可以映射寄存器空间。
   在使用寄存器的时候,驱动往往会调用 ioremap获得映射后的地址,然后通过映射后的地址来操作。如 wdt_base = ioremap(res->start, size);,将 res->start (WTCON 0x53000000)这个地址,映射到内核空间(0xC000000以上的地址)处,内核空间的这个地址是由函数get_vm_area(size, VM_IOREMAP);分配的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-6-3 18:09 , Processed in 1.031250 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表