2902|4

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于物理地址映射问题 [复制链接]

我看到介绍的驱动例程有两种形式的映射
一种是利用MmMapIoSpace,另外一种是用VirtualAlloc
如:ELECTROMOTOR_GPACON=(ULONG)MmMapIoSpace(GPACON,4,FALSE);

v_pIOPregs = (volatile S3C2410X_IOPORT_REG *)VirtualAlloc(0, sizeof(S3C2410X_IOPORT_REG), MEM_RESERVE, PAGE_NOACCESS);

这两种方式有什么相同点和不同点,各都可以用在什么情况下呢

谢谢大家!

最新回复

VirtualAlloc貌似只针对内核空间。 MmMapIoSpace提供给用户空间。 所以在用户空间希望获得内核空间的权限,必须用VirtualAlloc + VirtualCopy来配合使用。  详情 回复 发表于 2008-6-25 22:22
点赞 关注

回复
举报

60

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
This function maps a physical address space to a nonpaged, process-dependent address space. It provides a virtual address, which is directly mapped, to the device.

PVOID MmMapIoSpace(
  PHYSICAL_ADDRESS PhysicalAddress,
  ULONG NumberOfBytes,
  BOOLEAN CacheEnable
);


-----------------------------
This function reserves or commits a region of pages in the virtual address space of the calling process. Memory allocated by VirtualAlloc is initialized to zero.

 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
不解
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

4
 
其实,MmMapIoSpace函数内部就是通过VirtualAlloc和VirtualCopy函数来实现物理地址到虚拟地址映射的,MmMapIoSpace的原型代码在下面目录:
%_WINCEROOT%\PUBLIC\COMMON\OAK\DRIVERS\CEDDK\DDK_MAP\ddk_map.c

看一下你就都明白了
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
VirtualAlloc貌似只针对内核空间。

MmMapIoSpace提供给用户空间。

所以在用户空间希望获得内核空间的权限,必须用VirtualAlloc + VirtualCopy来配合使用。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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