全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Wince程序内存和存储内存Wince 下的内存实际上是分为三个部分的. 先说这几部分的名字,对象存储, 系统内存,程序内存. 准确来讲,应该用下面公式说明Wince内存 = 系统内存 + (对象存储 + 程序内存).这里德内存也就是我们平时说的SDRAM,而我们的平台用的64M的SDRAM。在wince系统的控制面板系统中可以看到系统内存在30M左右,但是硬件上SDRAM明明是64M,为什么这里只有30M呢?因为wince系统本身运行要占用30M左右内存。这里可以把这部分内存称为系统内存。其实wince正常给我们用的内存只有30M左右,前提是你用的SDRAM是64M。下面我们就仔细分析下剩下的这30M。也就是程序内存和储存内存(对象储存)。程序内存不用解释,就是可供我们的程序用的内存。对象存储是wince里一个新的概念. 嵌入式wince操作系统一般是用在消费电子上面, 比如pocket pc, 手机, PDA等移动设备上. 这一类的设备一般都是有两个电源的, 一个是主电源(比如你的手机电池), 一个是后备电池(拆开手机,电路板上可以找到那个小电池). 后备电池的作用就是在主电源没电的情况下,维持操作系统的一些需要保存的数据, 比如注册表, 数据库等. 而这些要保存的数据就是放在对象存储里的,可以复制一个文件到wince下(SD卡,U盘除外),会发现对象存储占用空间变大,到这里,你应该理解对象存储了。现在整个wince内存分配有个清楚的概念了,但是我们在平时运用时经常会遇到应用程序开辟一段内存导致应用程序挂了的现象。这里不管你是动态申请的还是干吗。如果内存分配中程序内存过小。这里前提是你的应用程序很大很复杂,这种现象肯定会有的。那么怎么才能申请到大的内存空间呢?当然你可以在控制面板中滑动那个分配程序内存和储存内存大小的滑动条,但是这种情况在系统冷启动后有恢复成系统默认的了。就是他们两对半开。那么是不是我们不能修改这个值了呢?没关系。既然微软让你看到这个玩意肯定有地方改的。上网google下很多办法。这里我介绍两种:1.在config.bib中有个CONFIG 这里的详细内容可以参考何宗建老师的书。在CONFIG字段下面加入 FSRAMPERCENT=0x20202020 。这里为什么是0x20202020。可以参考网上牛人的公式。FSRAMPERCENT是一个4byte长度的十六进制数, 我们用代数假设 FSRAMPERCENT = 0xQXYZ, 其中Q,X,Y,Z都是十六进制数那么最终划分给Storage Memory的大小 = ( Q + X + Y + Z ) / 0x400 * TOTAL_RAM_SIZE 以我平台例子可以发现Storage Memory = (0x20+0x20+0x20+0x20)/0x400*64 = 3800KB.2.网上也有人说动态分配不过这个办法我没有试验过不知道是不是成功的。其实我个人觉得如果动态分配很稳定的话肯定是动态的好了,这样可以根据不同的应用来分配不同的程序内存大小。typedef DWORD (*SETSYSTEMMEMORYDIVISION)(DWORD);typedef BOOL (*GETSYSTEMMEMORYDIVISION)(LPDWORD,LPDWORD,LPDWORD);void SetObjectMemorySpace(int nSize)#ifdef _WIN32_WCE /从动态库中获取函数地址以设置对象存储区的大小. HINSTANCE hDll = LoadLibrary(_T(Coredll.dll); SETSYSTEMMEMORYDIVISION SetSystemMemoryDivisionProc = NULL; GETSYSTEMMEMORYDIVISION GetSystemMemoryDivisionProc = NULL; if( NULL != hDll ) /获取导出函数地址 SetSystemMemoryDivisionProc = (SETSYSTEMMEMORYDIVISION)GetProcAddress(hDll,_T(SetSystemMemoryDivision); GetSystemMemoryDivisionProc = (GETSYSTEMMEMORYDIVISION)GetProcAddress(hDll,_T(GetSystemMemoryDivision); if(SetSystemMemoryDivisionProc & GetSystemMemoryDivisionProc) DWORD dwStorePages = 0; DWORD dwRamPages = 0; DWORD dwPageSize = 0; BOOL bRet = (*GetSystemMemoryDivisionProc)(&dwStorePages,&dwRamPages,&dwPageSize); if(bRet) int nPageCount = nSize/dwPageSize; if(nSize%dwPageSize != 0) nPageCount+; (*SetSystemMemoryDivisionProc)(nPageCou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高端鲜花定制公司大型花艺装置设计管理制度
- 浙海院海洋科学论文:浅谈海洋灾害
- 2026年高端私人影院建设公司施工安全事故报告与处理管理制度
- 扣篮训练案例分享
- 2025-2026学年高一上学期期中模拟地理试卷 (陕晋青宁专用)(解析版)
- 浙海院海洋科学导论讲义第11章 海洋遥感
- 2025-2026学年广东省茂名市茂名地区高一上学期10月月考历史试题(解析版)
- 职业病常见症状及护理培训
- 痔疮常见症状及护理技术论述
- 2025天津市口腔医院第二批次派遣制人员招聘12人笔试考试备考试题及答案解析
- 购房合同协议书标准模板
- GB/T 3048.12-2025电线电缆电性能试验方法第12部分:局部放电试验
- 2025初一英语期末复习知识点总结
- 十五五规划建议专题测试及答案
- 选举大会活动方案
- 心内科护士年度工作总结
- 百万医疗保险活动方案
- 2025-2026学年人教版九年级物理《电阻的测量》教学设计
- DB2101∕T 0006-2018 聚丙烯纤维混凝土生产与应用技术规程
- 淤地坝安全管理培训课件
- 初中重点化学方程式每日一练小纸条【答案】
评论
0/150
提交评论