首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

困惑已久的地址有关问题

2012-03-27 
困惑已久的地址问题刚上手WINCE,做一个CAMERA方面的驱动,主要是将inputbuffer中的数据通过驱动转换为outpu

困惑已久的地址问题
刚上手WINCE,做一个CAMERA方面的驱动,主要是将inputbuffer中的数据通过驱动转换为outputbuffer,而且inputbu和outputbu都需要和应用程序交互,中间就有一些地址的映射转换。现在是被这些地址搞糊涂了。向各位大侠请教:
  首先程序里用
  pPhytSrcAddr/*pVirtSrcAddr*/ = (PBYTE)HalAllocateCommonBuffer(&Adapter1, 0x71000, &g_PhysSrcAddr, FALSE);
  申请了块连续的物理地址g_PhysSrcAddr,大小是320*240*12=112.5K,即0x71000。
  但这个程序返回的pPhytSrcAddr是物理地址还是虚拟地址,帮助里说返回的是虚拟地址,但下面又用函数
  VirtualCopy((PVOID)pVirtSrcAddr,(PVOID)(((DWORD)pPhytSrcAddr)>>8),0x100000,PAGE_READWRITE | PAGE_NOCACHE | PAGE_PHYSICAL)

  VirtualCopy帮助里说是将物理地址绑定到虚拟地址上,也就是说把物理地址pPhytSrcAddr绑定到虚拟地址pVirtSrcAddr上。这里我就比较糊涂了。

  打印出来
  g_PhysSrcAddr=0x30cf4000,
  pPhytSrcAddr=0x640000
  pVirtSrcAddr=ox760000
  不知道这些地址我们自己可以计算出来吗,为什么地址的前8位没有显示,是默认的80640000?


[解决办法]
pPhytSrcAddr是物理地址还是虚拟地址?

他是堆内存指针了,也不是直接的虚拟地址。

[解决办法]
这个我也比较模糊.需要向大家学习

热点排行