WinCE文件目录定制及内存调整

作者:ARM-WinCE

 

这个说起来比较简单,WinCE的文件目录结构以及文件的位置都是在DAT文件中定义的。所有的dat文件会在WinCE编译时合并成initobj.dat文件,WinCE会根据DAT中的描述生成相应目录。

关于DAT的格式,可以参考我以前的一片文章:”WinCE BSP的DAT文件介绍”,看了就明白了。

 

我一般在project.dat中定制自己想要的目录结构,举个例子如下:

root:-Directory("Sounds")

root:-Directory("Movies")

Directory("/Movies"):-Directory("Chinese")

Directory("/Movies"):-Directory("English")

Directory("/Sounds"):-File("hello.wav", "/Windows/hello.wav")

 

应该比较好理解,创建两个根文件夹Sounds和Movies,在Movies中创建两个子文件夹Chinese和English,将hello.wav拷贝到Sounds目录下。

编辑完project.dat以后,重新Makeimg就可以了。启动WinCE就可以看到所创建的文件夹了。

 

接下来说一下WinCE内存的定制。WinCE系统可使用的内存被分为Storage MemoryProgram Memory两部分。Storage Memory用于Object Store,而Program Memory用于程序内存。

 

关于Object Store,在WinCE中是指一个可以永久保存数据的存储空间,即使在掉电的情况下,数据可以在备份电源的支持下不丢失,达到永久保存的效果。其实就是一块内存,一般包括文件系统,数据库和系统注册表。Object Store的最大空间不能超过256MB,其中所能包含的最大文件是32MB。Object Store中是由很多Object组成,这些Object可能是一个文件,一个数据库,一条数据库记录,一个注册表键,一个键值等。

在Object Store中,WinCE系统会分配给每一个Object一个ID,被称为CEOID。每个Object的CEOID在Volume中都是唯一的。同样,在Object Store中的每一个Volume也有一个ID,被称为CEGUID,这样使用CEGUID和CEOID就可以在Object Store中找到相应的Object了。

顺便介绍个函数:

BOOL CeOidGetInfoEx( PCEGUID pceguid,  CEOID oid, CEOIDINFO* poidInfo)

 

调用该函数可以获得Object Store中某个Object的信息,pceguid和oid是要查找对象的CEGUID和CEOID,poidInfo为Object的信息。

那么如何获得CEGUID和CEOID呢?对于不同的Object类型,有不同的函数,如下:

Directory or File:FindFirstFile(..) / FindNextFile(..) / GetFileInformationByHandler(..)

Database:CeCreateDatabaseEx2(..) / CeFindNextDatabaseEx(..)

Database record:CeSeekDatabaseEx(..) / CeReadRecordPropsEx(..) / CeWriteRecordPropsEx(..)

Mounted Database volume:CeMountDBVol(..) / CeEnumDBVolumes(..)

 

所以,在WinCE系统中,对内存的调节就是在调整Object Store和程序内存的大小。默认情况下是Storage Memory/Program Memory各占一半。有三种方法可以实现对内存的调整:

1. 在config.bib文件中调整FSRAMPERCENT,具体如何设置在BIB文件的介绍中解释过,这里不多说了。

2. 在OAL中调用pOEMCalcFSPages函数为Object Store分配内存。

3. 在WinCE启动以后,进入系统的control panel,然后打开System,选择Memory在界面中进行调整。

4. 通过函数SetSystemMemoryDivision(..)来调整。多说一句,可以通过调用GetSystemMemoryDivision(..)来获得当前Object Store的内存使用情况。

 

 

关于Storage Memory和Program Memory的调整,主要还是看系统的需求,一般情况下Storage Memory不需要太大,可以根据自己的需要适当的调整。但是要注意,两部分内存都不能调整的太小,调整的太小会导致数据丢失,甚至是死机,到时候只能重起系统了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436508.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

plus 什么是mybais_谈谈自己用mybatis-plus中的一些经验。

软件:idea 然后用spring boot 数据库用的postgersql在谈mybatis-plus之前,我先说一个开发中非常好用的插件吧。用了这款插件之后,开发起来,会快很多。他就是 ----- > Mybatis plugins我这是安装好了的,没安装好之前是install,直接点就可以了。下面开始我们今天的…

【转】ABP源码分析四十七:ABP中的异常处理

ABP 中异常处理的思路是很清晰的。一共五种类型的异常类。 AbpInitializationException用于封装ABP初始化过程中出现的异常,只要抛出AbpInitializationException异常就可以,无须做额外处理。这类异常往往是需要维护人员介入分析的。 其他四个异常都在A…

游长江有感

游长江有感——代腾飞 2007年4月14日 于重庆独自乘舟游两江清风相伴影相随依船瞭望朝天门一艘巨轮泊江中两岸景色迷人离忽闻歌声伴耳中碧波荡漾三千里愁情烦事淡风中 转载于:https://www.cnblogs.com/daitengfei/archive/2007/04/27/729171.html

服务器维护 测试化验加工费,测试化验加工费.PPT

测试化验加工费.PPT四川师范大学科研处 预算填报的重要性 一、编报方法 二、各科目支出详解 三、课题预算编报中的常见问题 以省科技厅项目申报预算要求为例。其他类型科研项目根据相应管理办法,参照执行 主要内容 四、特殊情况及具体建议 编报方法——基本原则 目标…

当你累了,准备放弃时,看看这个吧!!!

在别的空间看到这篇文章,感觉说的很有道理,故转过来,送给所有还在坚持的朋友~~ 每个人都背负着一个沉重的十字架,在缓慢而艰难地朝着目的地前进。 途中,有一个人忽然停了下来。 他心想:这个十字架实在是…

mixin模式 python_Python中的mixin模式

转载注明,本文链接:http://www.bianbingdang.com/article_detail/167.html# MixIn和继承的关系面向对象三大特征,继承、封装、多态。第一次看到MixIn的时候,弄不懂这个和继承有什么关系/区别。首先,继承是父亲和儿子的…

梦游4k

本来还打算晚上看案例分析的, 觉得是在太困了就上床眯会儿, 一睁眼,呀,怎么就快九点了呢。 可怜我一晚上的宝贵时间就这么被我浪费过去了。 从床上蠕动到椅子上,努力扒开眼睛看看BBS, 还是跑步好啊。 跑步好…

ajax里绑定框,Select级联菜单,用Ajax获取Json绑定下拉框(jQuery)

需求类似这样 ↓ ↓ ↓--》 菜单A发生变化,动态取数据填充下拉菜单B。JS代码如下:$(function () {$("#TeamSelect").change(function () {var tid $("#TeamSelect option:selected").val();$.ajax({url: "/ajax/ajaxGetMa…

【转】CANOPEN总线的相关问题点整理分享*****

CANopen 是一个基于 CAN(控制局域网)串行总线系统和 CAL(CAN 应用层)的高层协议。CANopen 通讯协议 CiA DS-301 包括周期和事件驱动型通讯,不仅能够将总线负载减少到最低限度,而且还能确保极短的反应时间。…

WinCE系统字体的设置

作者:ARM-WinCE 确实很久没有写Blog了,感觉有些对不住曾经看我blog的朋友。刚从美国回来,由于项目原因,春节都在美国工作,现在有点时间,先写一篇简单的,介绍一下WinCE字体的设置。 WinCE系统字体…

js脚本点击按钮显示文字_JSBOX脚本聊天神器

聊天神器是一个基于JSBox的脚本JSBox 是一个可以用来运行 JavaScript 脚本的 iOS 应用,你可以通过他来执行标准的 JavaScript 脚本 这种执行不是指跑在浏览器上,而是执行在一个完全原生的环境,效率很高。并且我们提供了很多 iOS 原生的接口&a…

轻松实现无刷新三级联动菜单[VS2005与AjaxPro]

最近做一些网站程序,经常要用到多个下拉菜单选择,看了介绍开始用AjaxPro这个控件,感觉效果不错。以前使用过MagicAjax,很久不用了忘记了,最麻烦的就是在虚拟目录的时候比较麻烦,呵呵,在网上也有…

【转】为什么博士叫PhD?

作者:李青影 链接:https://www.zhihu.com/question/20950602/answer/1028008012 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 在填学历的时候遇到过这个问题,明明毕业证书上写…

dnf服务器合并信息,卤蛋带你看韩服!全体服务器合并改版信息互通

‍各位好久不见啊!我是卤蛋 本期为各位介绍韩服合区后的全部改动~在韩服合并服务器之前 一共有八个服务器:但是在合区之后大区依然存在,不过服务器是互通的在哪个大区创建角色基本上没什么区别 这样做避免了角色混乱的问题如何切换频道呢&…

在WinCE5.0和WinCE6.0下,编译选项介绍

作者:ARM-WinCE 在WinCE5.0中,在"Build OS”菜单中,我们会看到不同的编译选项: "Sysgen","Build and Sysgen"和"Build and Sysgen current BSP" Sysgen:不用多说&#…

java 无法执行export 命令_模块中的export、import以及复合模式的使用方法

export:规定模块对外接口①默认导出:export default Test(导入时可指定模块任意名称,无需知晓内部真实名称)②单独导出:export const name "Bruce"③按需导出:export { age, name, sex }(推荐)④改名导出&a…

轉:愚公移山

--《列子汤问篇》 太行、王屋二山,方七百里,高万仞。本在冀州之南,河阳之北。北山愚公者,年且九十,面山而居。惩山北之塞,出入之迂也,聚室而谋曰:“吾与汝毕力平险&#xff0…

【转】在ASP.NET Web API 2中使用Owin基于Token令牌的身份验证

基于令牌的身份验证 基于令牌的身份验证主要区别于以前常用的基于cookie的身份验证,基于cookie的身份验证在B/S架构中使用比较多,但是在Web Api中因其特殊性,基于cookie的身份验证已经不适合了,因为并不是每一个调用api的客户端都…

深入理解.bin文件和.nb0文件的结构

.bin文件是一个描述性质的映像文件,它由文件头(head)、镜像数据目的起始地址(ImageStart)、镜像数据长度(ImageLength)和多条相对独立的记录(record)构成。 文件头(head)由7个字节组成,内容是:42 30 30 30 46 46 0A,即…

ajax中怎么验证data,我应该在jQuery的ajax成功处理程序中验证响应数据吗?

假设我有一个后AJAX调用,我想将返回的数据放入一些HTML元素中。$.post(settings.url, function(data) {$(#someElement).text(data.someData1);$(#someElement2).text(data.someData2);});我是一名后端开发人员,我必须对来自用户的任何数据进行服务器端验…