5910|13

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

物理地址到虚拟地址的转换问题? [复制链接]

2440中UART0寄存器对应的物理地址为 0x50000000,对应的虚拟地址在g_oalAddressTable表中为0x91000000

g_oalAddressTable
        DCD     0x91000000, 0x50000000,  1      ; UART control register

而在WINCE下驱动程序中利用 MmMapIoSpace()映射的虚拟地址确实 0x140000.

请问这个地址为什么不等于0x91000000 ?是怎么得到的?

最新回复

g_oaladdresstable的映射是control register的,而MmMapIoSpace()是申请一段虚拟地址空间并和UART DMA地址绑定起来.  详情 回复 发表于 2009-9-4 23:00
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你的问题我怎么看的有点模糊呢?
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 gooogleman 的回复:
你的问题我怎么看的有点模糊呢?


也许我没说清楚。

我想问的是:为什么物理地址0x50000000通过MmMapIoSpace函数映射的虚拟地址为0x140000 ?
而不是g_oalAddressTable表中的 0x91000000?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 
就是,感觉好奇怪,我的DM9000A的驱动上打印出来的信息就是这样
MmMapIoSpace不是到是怎么映射的,而且我在基地址上加偏移量之后还超限
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 2 楼 winamp123 的回复:
引用 1 楼 gooogleman 的回复:
你的问题我怎么看的有点模糊呢?


也许我没说清楚。

我想问的是:为什么物理地址0x50000000通过MmMapIoSpace函数映射的虚拟地址为0x140000 ?
而不是g_oalAddressTable表中的 0x91000000?


MmMapIoSpace申请的是堆内存,不是直接的虚拟内存,当然不是那个了。

 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 gooogleman 的回复:

MmMapIoSpace申请的是堆内存,不是直接的虚拟内存,当然不是那个了。




那这个堆内存地址与物理地址有个什么映射关系? 是在哪里确定的?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
我也不懂,但是我就看微软上面有说,具体的要看操作系统源码了。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

8
 
MARK,下班后研究一下源码
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

9
 
mark
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

10
 
MmMapIoSpace是用于把一个系统物理地址映射到当前的执行流所在的进程虚拟地址空间中,像楼主这种情况转换的是GPIO控制器的基地址,不是UART端口的地址
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

11
 
用MmMapIoSpace是将物理地址动态映射到虚拟内存,每次映射得到的值可能都不一样。而g_oalAddressTable 表里的地址是静态的、固定不变的。
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

12
 
g_oalAddressTable 表的虚拟地址是供内核使用的,你在驱动里面的地址是又经过一层映射到你的驱动程序空间的虚拟地址
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 11 楼 kuron 的回复:
g_oalAddressTable 表的虚拟地址是供内核使用的,你在驱动里面的地址是又经过一层映射到你的驱动程序空间的虚拟地址

有根据?
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

14
 
g_oaladdresstable的映射是control register的,而MmMapIoSpace()是申请一段虚拟地址空间并和UART DMA地址绑定起来.
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表