• WINCE6.0文件系统选择


    WINCE6.0文件系统选择

     

    1.       ROM-only文件系统

    ROM-only文件系统驱动能够从ROM文件系统中读取数据,此文件系统使应用程序不能把文件保存在对象存储区中,也就是不能保存在RAM用于对象存储的区域中,而只能保存在flash和存储卡上。ROM中的数据通过Windows目录来访问,外部这里的ROM是指nk.binRAM中的内容,不管是选择ROM-only还是RAM and ROM文件系统,当我尝试去复制Windows目录都出弹出出错的对话框,如下图所示:

    1

    说明Windows就是ROM文件(也就是nk.bin)RAM中的目录。另外,外部文件系统可以再次作为一个独立的目录挂载到根目录下,如下图

    2

    如图2Flash DiskStorage Card分别为flash的一个盘符和TF卡的盘符,它们都是作为一个独立的目录挂载在根目录下。

     

     

    2.       ROM-only文件系统的优缺点

    2.1    优点

    因为ROM-only文件系统,因为根目录是映射到flash的一个分区中的,所以保存在根目录、桌面、Application DataDocuments and Settings等目录下内容也就是保存在flah中的所以重启之后不会丢失,便于安装cab安装包,而不会出现重启后丢失的情况

     

    2.2    缺点

    用户可以修改系统文件,安全性相对没有那么好,比如我把触摸屏驱动touch.dll拷贝到windows目录下,这样就会覆盖掉之前的touch.dll,如下图:

    3

    这样就可以轻易修掉系统的文件,可见有很大的安全隐患,而且使用时间长了,系统就会变得没那么稳定可靠了。

     

    应用程序不能把文件保存在对象存储区中,也就是不能保存在RAM用于对象存储的区域中,比如对于一个大小为32768KBnk.nb0(25535KBnk.bin)的存储内存(也就是对象存储区)和程序内存的分配如下图所示:

    4

    由图4可知对于ROM-only文件系统来说,是不能使用对象存储区的,如果我们试图左右移动滑动条,滑动条只能跳到最右边(这是因为ROM-only不支持动态分配存储内存和程序内存),如果这时按下ok,因为滑动条是处于最右边,所以分配给程序内存大小就为0,这时候如果我们执行任何一个应用,比如回到桌面后双击my device,会弹出Out of Memory Error的对话框,内容是There is not enough memory.Please exit some running programs and try again,这时候就只能重启设备才能解决这个问题了,因为重启之后系统又恢复图3的内存分配了。

     

    Activesync同步功能无法同步文件

    activesync同步的时候,发现无法同步的问题,PC端同步软件的同步界面如下:

    5

    如果选择同步文件,在同步过程中WINCE设备弹出出错的界面,如下图:

    6

     

    因为ROM-only文件系统不支持对象存储,比如我们对windowsMy DocumentsProgram Files等目录的操作就是读写flash,这样相对于读写RAM来说,速度相对会慢一些,而且没有读写RAM那么稳定。

     

    3.       RAM and ROM文件系统

    RAM and ROM文件系统驱动能够从ROM文件系统中读取数据,也能从对象存储区中RAM文件系统读取数据。像访问ROM一样,RAM and ROM文件系统在对象存储区中提供文件存储。对于RAM and ROM文件系统来说,文件系统的根目录是对象存储区,也就是图4左边分配的内存空间,所有保存在根目录下数据就是保存在对象存储区中,所以对于RAM and ROM文件系统来说,根据实际的需要来合理分配对象存储区,另外如flash的分区ResidentFlashTF卡的分区Storage Card这些,就成为一个独立的目录挂载在根目录下面。

     

    4.       RAM and ROM文件系统的优缺点

    4.1    缺点

    系统中的东西在重启后会恢复,比如保存在windowsMy DocumentsProgram Files目录下的文件会丢失,不利于第三方cab安装包的安装。

     

    4.2    优点

    对于连续不断对RAM供电的设备来说,选择RAM and ROM文件系统来说是最有效的,因为只要保持对RAM的刷新,对象存储区的数据操作(也就是对RAM的读写)就不会丢失,而对RAM的操作速度更快,效率更好。

     

    安全性相对好点,系统中的东西在重启后会恢复,这样基本上不会随着系统使用时间的推移会变得不稳定。

     

    不会存在上面ROM-only文件系统中列出来的缺点。

     

     

  • 相关阅读:
    Effective C++ 学习笔记(12)
    Effective C++ 学习笔记(6)
    Effective C++ 学习笔记(13)
    Effective C++ 学习笔记(11)
    Effective C++ 学习笔记(10)
    (转)C++函数后加const的意义
    Effective C++ 学习笔记(14)
    Effective C++ 学习笔记(7)
    Effective C++ 学习笔记(9)
    Effective C++ 学习笔记(8)
  • 原文地址:https://www.cnblogs.com/LoongEmbedded/p/5298691.html
Copyright © 2020-2023  润新知