关于VirtualAlloc和VirtualCopy _virtualcopy 详解-程序员宅基地

技术标签: wince  Wince_驱动开发  Wince_应用程序  ARM_MEM  

弄清楚这个问题首先要了解VirtualCopy和VirtualAlloc这2个函数的实现和目的,以及wince下动态虚拟内存映射和静态虚拟内存映射
先说VirtualAlloc 和VirtualCopy
VirtualAlloc 首先会从我们的虚拟地址空间中申请(或者说预留)一块虚拟空间,准备接下来要用它。注意此时,可用的物理内存并没有减少,只是虚拟地址少了一块可用的区域。
真正把这块之前reserved的虚拟空间映射到物理的内存区域就是由VirtualCopy来干的,此时,MMU的页表就会增加一个entry,来表示物理--虚拟的映射关系。


再说动态虚拟内存映射和静态虚拟内存映射
OEMaddressTable只是建立了一个一级的静态虚拟--物理的映射关系,一般给kernel(NK.EXE)通过直接访问的形式来用(OALPAtoVA);
MmMapIOSpace(VirtualAlloc +VirtualCopy)是一种动态虚拟映射的手段,一般给驱动根据当前需要(对硬件操作)动态申请并建立映射。

 

 

那就是说VirtualCopy 可以直接把物理内存映射到虚拟内存中
而OEMaddressTable所建立的静态虚拟--物理的映射不是必须的

也就是说比如对寄存器的映射:
可以通过VirtualAlloc申请(预留)一块虚拟内存给寄存器(如:v_pIOPregs)
然后用
VirtualCopy直接把寄存器的物理地址映射到刚才申请(预留)的虚拟地址空间

而在OEMaddressTable中所做的寄存器物理地址与虚拟地址的映射这步可以省略

不是省略不省略的问题,是这两种方法是在不同的场合下使用的,如2楼说的,内核部分就要用这个OEMaddressTable来转换,wince5.0下 用户态的驱动(wince6.0驱动貌似是在内核态)就要用这个VirtualAlloc+VirtualCopy来进行地址映射。

OEMaddressTable的定义,你可以查看 bsp/src/inc/oemaddrtab_cfg.inc ,那个g_oalAddressTable便是。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zmq5411/article/details/5974067

智能推荐

ARCGISEngine中对文件的打开,保存,另存为的代码实现_arcgis engine save-程序员宅基地

文章浏览阅读2.8k次,点赞5次,收藏21次。目录打开文件:保存文件:另存为:导出地图:打开文件: OpenFileDialog openMXD = new OpenFileDialog(); openMXD.Title = "打开地图"; openMXD.InitialDirectory = "E:\\大三上学期实验\\ARCGIS Engine..._arcgis engine save

BitmapFactory.Options对图片进行缩放-程序员宅基地

文章浏览阅读140次。package com.pingyijinren.helloworld.activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.support.v7.app.AppCompa..._bitmapfactory.options 缩放图片

反编译工具jad下载、安装及使用(无需集成环境一键使用)_jad.exe-程序员宅基地

文章浏览阅读1.1w次,点赞3次,收藏8次。一、下载安装1.下载地址:http://www.kpdus.com/jad.html2.下载完成将压缩包解压至方便自己查找的位置3.进入DOS界面(按键win+r,输入cmd)4.进入jad.exe所在的路径4.1直接在本地找到jad.exe,在搜索栏输入cmd回车进入4.2在dos界面结合各命令进入jad.exe路径补充:4.2.1直接输入d:,切换至d盘4.2.2输入cd gongju,切换至工具目录4.2.3输入dir显示所有目录5.拿到需要进行反编译的Java文件,保存_jad.exe

特征选择的几种常见方法_以下属于常见的特征选择方法-程序员宅基地

文章浏览阅读1.6w次。最近参加秋招笔试,发现关于特征选择的题目出现了不少,于是打算网上查查资料总结一下,发现下面两篇文章写得很好,两篇一起看,通俗易懂。特征选择 特征选择常用算法综述..._以下属于常见的特征选择方法

Tomcat重新部署与热部署与重启服务_重新部署和重启服务器-程序员宅基地

文章浏览阅读3.4k次,点赞7次,收藏17次。1.重启tomcat服务,只会重新编译java模块下的文件(相当于更新.classes文件)2.重新部署,将java类和.xml等配置文件都复制到tomcat的运行环境中(相当于既更新.classes文件又更新web.xml等配置文件)3.热部署,既在运行时修改java类或者jsp文件可以在不重服务器的情况下让修改生效,但是对修改配置文件(例如.xml)无效!总结:开启热部署后,不更改配置..._重新部署和重启服务器

[Vue warn]: Unknown custom element: – did you register the component correctly? 详细查错思路_[vue warn]: unknown custom element: <el-option> - -程序员宅基地

文章浏览阅读3.9w次,点赞8次,收藏6次。出现这个错误往往与组件的引入有关。具体可能的几种错误原因如下:1. 在非脚手架环境下,组件注册使用了CamelCase的话,那么组件调用的时候就要用kebab-case代替。2. 是否正确注册组件,使用如下方式注册组件: export default { data(){ return{ }, components/*注意components不能漏掉末尾的s!*/: { vTable // //注册组件 }, }}.._[vue warn]: unknown custom element: - did you register the compo

随便推点

华为鸿蒙os官网正式上线,华为鸿蒙OS官网正式上线:提供源码下载 首批支持128KB~1...-程序员宅基地

文章浏览阅读176次。鸿蒙OS 2.0终于从道听途说走上舞台,具备跨设备、服务流、快速直接访问、可见性、隐私五大能力。根据华为官方声明,鸿蒙OS 2.0基于分布式应用框架,进一步打破单一物理设备的硬件限制,将不同设备分组到不同场景;超级终端;,为智能家居、移动办公、智能旅行、视听娱乐、远程教育等场景带来更多新体验。比如在鸿蒙OS 2.0的支持下,移动导航可以配合手表提醒人们转弯变道。此外,鸿蒙OS 2.0自适应UX框架..._鸿蒙os官网已经上线

Elasticsearch使用Java初始化高级客户端(RestHighLevelClient类)_resthighlevelclient close-程序员宅基地

文章浏览阅读2.8k次。目前,官方计划在Elasticsearch 7.0 版本中关闭 TransportClient,并且在8.0版本中完全删除TransportClient。作为替代品,我们应该使用高级客户端。高级客户端可以执行 HTTP 请求,而不是序列化 Java 请求。高级客户端的主要目标是公开特定的 API 方法,这些 API 方法将接收请求作为参数并返回响应结果,以便由客户端本身处理请求和响应结果。【示例】Elasticsearch使用Java初始化高级客户端。(1)创建第一个 SpringBoot .._resthighlevelclient close

XML文件操作(如果节点中有多个同名节点,但是每个节点的属性不同)_节点中有多个同名节点,需要取第二个节点-程序员宅基地

文章浏览阅读1.6w次。localhost sa jiayuan 读取节点中的一个属性 XmlDocument doc=newXmlDocument(); doc.Load("config.xml"); XmlNodexnuser=doc.SelectSingleNode("userdata"); stringflag=xnuser._节点中有多个同名节点,需要取第二个节点

Nordic——Serial DFU(串口dfu)升级协议详解_nordic uart dfu-程序员宅基地

文章浏览阅读1.1k次,点赞28次,收藏19次。通过Uart串行通信执行安全设备固件更新,传输层使用SLIP库对数据包进行编码和解码。串行 DFU 协议 流程 分四步:第一步:检查串行通道是否 互通,向设备发送 ping id命令,等待设备回复 测试是否正常收发通信。第二步:DFU 传输 初始化操作。第三步:传输 init 包数据。第四步:传输 固件 数据。_nordic uart dfu

html2canvas 偏移_html2canvas 文字偏下-程序员宅基地

文章浏览阅读4.5k次。生成的海报在有时候会发生偏移,发现是在滚动条不为0的时候就会偏移,所以在生成海报前将滚动条滚动到顶部document.body.scrollTop=document.documentElement.scrollTop=0ps:使用的配置:_html2canvas 文字偏下

JSP实验报告-程序员宅基地

文章浏览阅读5.4k次,点赞3次,收藏3次。_jsp实验报告

推荐文章

热门文章

相关标签