没有合适的资源?快使用搜索试试~ 我知道了~
首页WinCE内存管理:节约资源的实时系统策略
WinCE内存管理是Windows CE.NET内核的核心组成部分,它涉及到进程、线程管理和物理内存的高效利用。Windows CE作为一种嵌入式实时系统,其内存管理策略与传统的桌面Windows操作系统有所不同,更加注重内存的节省和资源效率。 首先,WinCE支持32位虚拟内存机制,允许应用程序在运行时动态请求内存,根据需要分配和释放,实现按需分配内存。这种机制使得应用程序可以根据自身的运行情况动态调整内存使用,提高系统的灵活性。 其次,内存映射文件功能也是WinCE内存管理的一部分。通过内存映射,文件内容可以直接映射到进程的地址空间,无需将整个文件加载到内存中,从而降低内存占用。这对于内存有限的嵌入式设备来说尤为重要。 然而,由于Windows CE的实时性和资源限制,其内存管理强调物理内存的节省。例如,ROM和RAM的使用上,早期的CE设备通常采用ROM(只读存储器)和RAM(随机访问内存)的组合。如果ROM中的文件被压缩,会在运行时解压到RAM中;若文件非压缩且ROM支持线性访问,可以直接在ROM上执行(XIP,执行就地),进一步减少内存使用。 本地执行技术是WinCE内存管理的一个关键特性,它允许代码段在不加载到物理内存的情况下执行,只需分配虚拟地址空间。这样不仅可以节省内存,还能提高执行速度,因为内核无需频繁访问物理存储设备。 WinCE内存管理的设计目标是提供一种高效、节省资源的内存管理方案,以适应嵌入式环境下的苛刻要求。尽管与桌面Windows在API声明上有相似之处,但开发者必须理解这些差异,并根据平台特性进行相应的优化,才能确保程序在WinCE上稳定且有效地运行。
资源详情
资源推荐
WinCE内存管理内存管理
进程、线程、内存管理是一个内核基本的服务,也是一个内核主要的组成部分。这里介绍一下内存管理。
同其它Windows操作系统一样,Windows CE.NET也支持32位虚拟内存机制、按需分配内存和内存映射文件
等。但是与其它Windows操作系统又有明显的不同。毕竟Windows CE是一种嵌入式实时性的操作系统,在内存
管理方面必须要比其它Windows操作系统更节约物理内存和虚拟地址空间。在内存管理API方面,为了便于移植
程序,Windows CE和其它Windows操作系统函数声明基本一致,这使一个在其它Windows下开发的程序员可以
直接使用早就熟悉的API函数, 但是CE下内存管理的
进程、线程、内存管理是一个内核基本的服务,也是一个内核主要的组成部分。这里介绍一下内存管理。
同其它Windows操作系统一样,Windows CE.NET也支持32位虚拟内存机制、按需分配内存和内存映射文件等。但是与
其它Windows操作系统又有明显的不同。毕竟Windows CE是一种嵌入式实时性的操作系统,在内存管理方面必须要比其它
Windows操作系统更节约物理内存和虚拟地址空间。在内存管理API方面,为了便于移植程序,Windows CE和其它Windows
操作系统函数声明基本一致,这使一个在其它Windows下开发的程序员可以直接使用早就熟悉的API函数, 但是CE下内存管
理的原理开发者还是应该熟悉的。
1、、ROM和和RAM
对于早期采用的存储设备一般采用ROM + RAM ,在ROM中存放的所有文件可以是压缩的也可以是不压缩的,这取决于
OEM(原始设备制造商)。OEM在定制CE内核时可以设置一个标志告诉ROM镜像制作工具(romimage.exe)是否压缩文
件。对于ROM中存放的模块(DLL、EXE文件)来说,如果是压缩的,模块在运行前先解压并全部存放到RAM中。如果是不
压缩的,并且ROM介质支持线性访问(line-Accessed),就可以本地执行(executed in place,缩写为XIP)。利用本地执行
方式运行应用程序、DLL的优点是:采用这种技术在加载EXE或DLL时,其中的代码段数据不加载到物理内存中,内核只是分
配虚拟地址空间给代码段,当执行代码时内核会到实际存放在ROM存储设备上的文件中寻找代码并执行。采用这样的技术既
可以节省可用内存又可以减少加载的时间。但是这种技术有一定的局限性,如果要让CPU到ROM中去寻找代码执行,那么
ROM介质必须支持线性访问,这就要求ROM介质支持线性访问,而不是块访问。XIP这种加载方式的缺点就是执行速度相对
较慢,CPU访问ROM的速度肯定远慢于访问RAM的速度。
基于Windows CE的产品开始采用FLASH、IDE等存储设备时,内核镜像(。bin)和其它应用程序文件开始存放到存储设
备中而不是ROM中,这不仅仅是因为硬盘或者FLASH的I/O速度比ROM快,更因为现在的内核包含的功能多并且文件数量增
加,因而需要的存储空间很大,一般都在20MB左右。再加上其它开发商开发的应用程序文件,要求的空间就更大了。CE启动
时内核镜像由加载程序解压并将系统文件加载到RAM的NK,NK是在config.bib中定义的一段RAM区域,专用于保存内核镜像
解压出来的所有文件。Windows CE将NK看作是ROM,当执行一个应用程序时,CE内核将这个应用程序需要的系统DLL(在
NK中保存)加载到Slot 1(地址范围0x0200 0000-0x03FF FFFF,在Windows CE.NET中Slot 1专用于XIP DLL使用)。Slot
1是一段虚拟地址,当CPU执行DLL的代码时,CPU会根据地址映射关系到NK中寻找实际的代码执行,因为NK是一段实际的
物理内存,I/O速度非常快,所以相对于在ROM中执行,DLL的运行效率得到很大提高。
非XIP DLL在加载时CE内核会在调用DLL的进程的地址空间中申请足够大的地址空间,并且执行代码时按需提交物理内
存。
RAM和ROM文件系统是Windows CE默认的文件系统。RAM文件系统的优点是支持文件压缩、支持事务机制(和数据库
中的事务机制相似)、数据I/O较快。Windows CE.NET启动时把除了NK以外的RAM分为对象存储(object store)区域和应
用程序内存(program memory)区域,并且默认各使用一半RAM。在基于Windows CE的设备没有采用存储器之前,对象存
储的作用相当于存储器,对象存储区域采用RAM文件系统来保存文件,对象存储中可以存储的对象类型有文件、目录、数据
库、记录、数据库卷。默认在对象存储中存储的对象全部是压缩的。当整个系统关闭时,设备的电源还继续提供电力给
RAM,这样对象存储中保存的所有数据就不会丢失。应用程序内存区域留给所有应用程序运行时使用。基于Windows CE的设
备采用存储器后,对象存储的作用就被存储器替代了,所以采用存储器后,应该减小对象存储区域的大小。如果定制的
Windows CE的内核包含了资源管理器(eXPlorer.exe),那么打开“控制面板”,在“系统”-“内存”中,可以调节这两个存储区
域的比例。滑块向左,则释放对象存储区域的一些可用内存并将这些内存划到应用程序内存区域中。滑块向右则相反。
2、内存结构、内存结构
Windows CE.NET只能管理512MB的物理内存和4GB大小的虚拟地址空间。不同的CPU内存管理方法也不同。对于MIPS
和SHX系列CPU来说,物理地址映射是由CPU完成的,CE内核可以直接访问512MB的物理内存。对于x86系列和ARM系列的
CPU来说,在内核启动过程中它会将现有物理内存地址全部映射到0x8000 0000以上的虚拟地址空间中供内核以后使用。
OEM可以通过OEMAddressTable来详细定义虚拟地址和物理地址的映射关系。OEMAddressTable本身并不是一个文件,它
只是存在于其它文件中描述虚拟地址和实际物理地址的映射关系的数据。比如文件oem init.asm中包含一段代码:dd
80000000h, 0, 04000000h 。它表示将整个物理地址(0x0400 0000=64MB)共64MB映射到虚拟地址从0x8000 0000到
0x8400 0000中。关于OEMAddressTable我将在以后关于PB的文章中讲述。
整个4GB虚拟地址空间主要划分为两部分,从0x8000 0000以上为内核使用部分,0x8000 0000以下为应用程序使用部
分。详细见下表:
地址范围地址范围 用途用途
下载后可阅读完整内容,剩余3页未读,立即下载
weixin_38661100
- 粉丝: 6
- 资源: 904
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功