4041|7

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

在WinCE6.0 的用户态驱动中如何映射物理地址 [复制链接]

请教各位大虾:
  在WinCE6.0 的用户态驱动中如何映射物理地址?

对于下面的这样一段代码, 如果这个驱动是被运行在用户态, 输出的vpReg为0.
哪位知道该如何映射物理地址, 请不吝赐教.

DWORD HDR_Init(LPCTSTR pContext, LPCVOID lpvBusContext)
{
    RETAILMSG( 1, (TEXT("Hello Driver Init \n")));

    volatile unsigned long *vpReg;
    PHYSICAL_ADDRESS PinCfg;
    PinCfg.HighPart = 0;
    PinCfg.LowPart = 0x20031038;

    vpReg = (volatile unsigned long *)MmMapIoSpace(PinCfg, (unsigned long)(4), FALSE);

    RETAILMSG( 1, (_T("Hello Driver vpReg = %08x  \n"), vpReg));

    return 0x123;
}
此帖出自WindowsCE论坛

最新回复

LS 是怎样解决的呀,最近也在做AP访问物理地址,好像是要加载一个用户态的驱动。但是还没有搞定,有经验的分享下啊,谢谢!  详情 回复 发表于 2010-2-4 22:34
点赞 关注
 

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
有知道这个问题的大虾, 请分享一下这方面的知识.
此帖出自WindowsCE论坛
 
 
 

回复

49

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
在驱动中访问虚拟地址时,必须是非缓存段(位于0xA0000000 到 0xBFFFFFFF )
此帖出自WindowsCE论坛
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

4
 
如果是ARM体系的处理器,访问挂在系统总线上的设备寄存器前,必须先把总线地址转化成CPU的地址,通过HalTranslateBusAddress实现两种物理地址的变换,然后再调用MmmapIoSpace函数作虚实地址的转换。

参考
http://www.cppblog.com/milkyway/archive/2007/03/27/20737.html
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
在MSDN中, 关于VirtualCopy有下面这样一段话, 我想可能是这个问题.

In CE 6.0 and later, VirtualCopy is a kernel-mode only API. For information about other kernel-mode only APIs, see Kernel Mode APIs.
VirtualCopy from user mode will only work if it is calling from a user mode driver, where its physical address range is specified in the registry.
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
http://blog.eeworld.net/fredzeng/archive/2007/04/04/1551898.aspx

这个看样子对你有帮助,一起学习
此帖出自WindowsCE论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

7
 
我在注册表里加了下面的语句, 都没有成功:

"IoBase"=dword:20023000
"IoLen"=dword:1000



"MemBase"=dword:20023000
"MemLen"=dword:1000

此帖出自WindowsCE论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

8
 
LS 是怎样解决的呀,最近也在做AP访问物理地址,好像是要加载一个用户态的驱动。但是还没有搞定,有经验的分享下啊,谢谢!
此帖出自WindowsCE论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表