gychina
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2005-02-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2432回复:17

EVC应用程序直接内存读写问题?

楼主#
更多 发布于:2005-02-05 13:05
#define phyAddress 0x20000000
LPVOID pMyVm;  DWORD cbSize=0x40000;
 if(!(pMyVm=
      VirtualAlloc(0,cbSize,MEM_RESERVE,PAGE_READWRITE)))  
 { AfxMessageBox(_T("错误!")); }
 else
 {
  VirtualCopy( (LPVOID)pMyVm, (LPVOID)phyAddress, Size,    
PAGE_READWRITE|PAGE_NOCACHE|PAGE_PHYSICAL);
 在这儿进行读写pMyVm所指内存
 发现并没有操作0x20000000所在存储器的片选
请问什么原因?
    VirtualFree((PVOID)pMyVm, 0, MEM_RELEASE);
   pMyVm = NULL;
   //AfxMessageBox(_T("正确!"));
  }


wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-02-05 13:17
0x20000000这个地址是不是物理地址?我指的是芯片手册上某个片选的地址,如果是按帮助的,要左移8位吧,如果不对改用静态映射虚拟地址,在OEMADDRESSTABLE里面找0x20000000映射到哪儿。找找上几个月的帖子,N个讨论这个问题的
根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-02-05 13:18
#define phyAddress 0x20000000
LPVOID pMyVm;  DWORD cbSize=0x40000;
 if(!(pMyVm=
      VirtualAlloc(0,cbSize,MEM_RESERVE,PAGE_READWRITE)))  
 { AfxMessageBox(_T("错误!")); }
 else
 {
  VirtualCopy( (LPVOID)pMyVm, (LPVOID)phyAddress, Size,    
PAGE_READWRITE|PAGE_NOCACHE|PAGE_PHYSICAL);
 在这儿进行读写pMyVm所指内存
 发现并没有操作0x20000000所在存储器的片选
请问什么原因?
    VirtualFree((PVOID)pMyVm, 0, MEM_RELEASE);
   pMyVm = NULL;
   //AfxMessageBox(_T("正确!"));
  }
 


VirtualCopy( (LPVOID)pMyVm, (LPVOID)phyAddress, Size,    
PAGE_READWRITE|PAGE_NOCACHE|PAGE_PHYSICAL);中phyAddress的值应该还要除以256吧。
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-02-05 13:30
对头对头,右移,写错了哈:)
根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-02-05 13:42
圣人也有笔误的时候,呵呵
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-02-05 13:55
不是笔误,是记错了,不,准确地说是回忆错了,没记:))我认罪
根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-02-05 14:05
大哥,怎么搞的?老毛病又犯了?跟兄弟们谦虚啥子?:))
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-02-05 14:09
HAHA,没办法,缺点太多
根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-02-05 14:22
大哥,注意没有,你的帖子数马上到四位数了,加油啊:)
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-02-05 14:27
!HAHA,真的喔,厉害,唐僧嘛,说话,跟吃饭一样,生理需要!兄弟儿,有时间再摆,GOOD LUCK!
根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-02-05 14:33
好啊!另外,恭喜大哥又添两颗痘:)))
Come on, let us drive the world.
gychina
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2005-02-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-02-05 14:55
右移8位,问题依然存在

我用的是cirruslogic9315
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-02-05 16:35
右移8位,问题依然存在

我用的是cirruslogic9315


如果是这样,有可能是下面的物理地址有问题,你检查一下
#define phyAddress 0x20000000
Come on, let us drive the world.
gychina
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2005-02-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-02-06 10:25
我已经自己解决了。
是因为编译优化造成的。
谢谢各位。
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-02-08 12:02
我已经自己解决了。
是因为编译优化造成的。
谢谢各位。

那是把编译优化去掉了还是怎么修改的?说来听听也好帮助帮助后来的朋友
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
chang_nicolas
驱动小牛
驱动小牛
  • 注册日期2004-08-26
  • 最后登录2007-03-29
  • 粉丝0
  • 关注0
  • 积分370分
  • 威望39点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2005-02-24 09:39
那最后你是怎么改的呢,究竟有没有右移8位啊,还是按原来那样做的啊?
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2005-02-24 13:22
这里很热闹啊:))
Come on, let us drive the world.
lynjit
驱动牛犊
驱动牛犊
  • 注册日期2009-04-13
  • 最后登录2009-05-20
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2009-04-22 18:28
       
游客

返回顶部