3347|8

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince5.0下直接读写内存 [复制链接]

想在wince5.0下直接读写内存,往指定的空间读写数据,该怎么实现,忘达人们给点建议!!谢谢!!
此帖出自WindowsCE论坛

最新回复

嘿,给你转个文档,先好好看看吧http://www.xrss.cn/Info/9328.Html VirtualAlloc对虚拟内存的申请分为两步,保留MEM_RESERVE和提交MEM_COMMIT。其中MEM_RESERVE只是在进程的虚拟地址空间内保留一段,并不分配实际的物理内存,因此保留的虚拟内存并不能被应用程序直接使用。MEM_COMMIT阶段才真正的为虚拟内存分配物理内存   详情 回复 发表于 2007-9-14 23:36
点赞 关注
 

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
最好不要这样做,你可以写一个驱动来实现这种功能,让后用应用程序去调用驱动。
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
什么意思,是直接向物理内存地址写吗?
VirtualAlloc ,VirtualCopy结合使用,前提是你
有访问这块内存的权限,也可以用DMA直接读写
此帖出自WindowsCE论坛
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

4
 
可以用汇编语言实现.代码量少可以的,不过不推荐这样做,除非你对硬件的了解超过软件的


例如
__asm
{
   mov al,0000H
   mov dx,0443H
   out dx,al
}
此帖出自WindowsCE论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢谢各位!
我现在的情况是用virtualalloc 和virtualcopy 函数在应用程序中能申请到空间,读写也好像正确,但在流驱动中去用两个函数的时候就出错,不能读写,为什么?在驱动中没有读写权限了?
我对硬件不怎么了解,这样汇编可以吗?只要不与内核区冲突就可以了吧,是吗?而且我想要读写的一个内存区域比较大。
此帖出自WindowsCE论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
这是我在流驱动INIT函数中添加的相关代码,大家帮我看看,谢谢!

volatile int *lpv;

lpv = (volatile int*)VirtualAlloc(0, SIZE, MEM_RESERVE, PAGE_NOACCESS);
        if(lpv!=NULL)
        OutputDebugString(TEXT("VirtualAlloc succeed!\r\n"));

        bRet = VirtualCopy((LPVOID)lpv,(LPVOID)(PHYSADDR>>8), SIZE, PAGE_READWRITE | PAGE_NOCACHE | PAGE_PHYSICAL);
        if(bRet)
                OutputDebugString(L"VirtualCopy succeed!\r\n");
          *(lpv) = 3;        //出错,调试的时候直接跳过
         int temp = *(lpv);  //显示结果根本不是3
此帖出自WindowsCE论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

7
 
是不是沉了,自己顶起来~
此帖出自WindowsCE论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

8
 
关注
此帖出自WindowsCE论坛
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

9
 
嘿,给你转个文档,先好好看看吧http://www.xrss.cn/Info/9328.Html

VirtualAlloc对虚拟内存的申请分为两步,保留MEM_RESERVE和提交MEM_COMMIT。其中MEM_RESERVE只是在进程的虚拟地址空间内保留一段,并不分配实际的物理内存,因此保留的虚拟内存并不能被应用程序直接使用。MEM_COMMIT阶段才真正的为虚拟内存分配物理内存

此帖出自WindowsCE论坛
 
 
 

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

随便看看
查找数据手册?

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