资料介绍
Windows CE是微软推出的一款32位的嵌入式操作系统。它具有良好的多媒体功能和友好的人机交互界面,支持PowerPC、X86、ARM和MIPS等多个系列处理器的体系结构,并为所支持的处理器提供完善的系统库[1]。它还提供了完善的设备驱动程序和软件开发包,大大缩短了开发周期,节约了电子智能产品的上市时间。在这些产品开发过程中,系统启动时间的时延是影响客户体验(QoE)的重要因素。启动速度受很多因素的影响,包括定制系统镜像文件的大小、系统内核加载驱动的多少、内存占用的大小等。为了减少系统启动时延,目前比较流行的做法是在Bootloader中添加LOGO启动画面,从而在视觉上降低客户的时延感受[2]。从本质上讲,这种方法并没有从根本上减少系统的启动时延,仅仅是从视觉的角度转移了客户的注意力。
本文在分析Windows CE 6.0系统启动过程的基础上,设计了一种在Bootloader中实现BinFS文件系统进而完成Multi-bin加载的方法,从而真正达到缩短启动时间的效果,同时还为用户节省了大量的内存空间。实验结果表明,该方法性能稳定,可移植性强,并已经应用到一款基于Samsung 2440处理器的IPTV手持式测试仪系统上。
1 Windows CE系统启动过程
Windows CE系统启动过程如图1所示。
在Windows CE操作系统中,当基于Windows CE的目标设备上电启动或者复位时,系统首先加载并运行Bootloader程序,Bootloader程序进行必要的硬件初始化,然后通过Bootloader再加载并启动操作系统内核映像。启动操作系统内核的过程实际上就是加载并运行OAL(OEM Adaptation Layer)程序的过程。OAL是Windows CE操作系统内核的重要组成部分,OAL并不能被单独加载并运行,它最终被编译进操作系统内核,从而通过操作系统内核存在并发挥作用,操作系统的启动过程就是一个加载并运行OAL程序的过程[3]。
系统从启动加载内核映像文件到最后的显示桌面会有一段时间,这个时间段就是通常所说的启动时延。通常情况下为10 s~13 s。为了缩短这段时延,可以将系统映像分为多块,将系统核心启动部分的内容放到内存中,其他部分放到固态存储器(如Nand Flash)中,使用BINFS文件系统读出。即在系统启动过程中,先加载操作系统内核映像的核心部分,而操作系统内核映像的其他部分仍然驻留在Nand Flash中,需要时再从Nand Flash中进行加载,从而大大减少开机读取系统的时间。同时,也不再需要为操作系统预留全尺寸的内存空间,而只需预留最小开机核心部分的内存空间,剩下的作为通用内存空间。这样就使得操作系统内存的使用有了很大灵活性,同时可用系统内存大大增加。从而,在根本上达到了按需加载系统模块到内存的要求。这就是所谓的Multi-bin技术。
2 Windows CE .bin镜像文件解析与下载
由Windows CE的开发工具Platform Build编译生成的Windows CE操作系统及Bootloader的镜像文件主要有两种格式类型:以.bin为文件名后缀的记录型镜像文件和以.nb0为后缀的原始型(raw)镜像文件。前者以记录(Record)为单位组织镜像的数据,后者则是镜像在嵌入式系统中运行时的二进制数据快照。其中,.bin文件是一个描述性质的镜像文件,它由文件头(Head)、镜像数据目的起始地址(ImageStart)、镜像数据长度(ImageLength)和多条相对独立的记录(Record)构成。本文以实现Multi-bin的操作系统xip.bin为例进行分析,使用UltraEdit将其打开,如图2所示。
从图2可以看出,文件头(head)由7个字节组成,内容是:42 30 30 30 46 46 0A,即“B000FF\x0A”,这是判断镜像文件是.bin类型的依据。镜像数据目的起始地址(ImageStart,00 00 07 80)由4个字节组成,它定义了镜像文件解析后装载在内存中的起始地址是0x80070000。镜像数据长度(ImageLength,68 07 13 02)也由4个字节组成,它表示.bin镜像文件解析后在内存中占用的总的存储空间大小为(0x02130768)。每条记录(Record)由4字节的起始存储地址(RecordStart)、4字节的数据长度(RecordLength)、4字节的校验码(RecordCheckSum)和RecordLength个字节的记录数据(RecordData)组成。以第一条记录(阴影部分)为例,分别为0x80070040、0x00000008、0x000001E3和0X8007004C434543454。
本文在分析Windows CE 6.0系统启动过程的基础上,设计了一种在Bootloader中实现BinFS文件系统进而完成Multi-bin加载的方法,从而真正达到缩短启动时间的效果,同时还为用户节省了大量的内存空间。实验结果表明,该方法性能稳定,可移植性强,并已经应用到一款基于Samsung 2440处理器的IPTV手持式测试仪系统上。
1 Windows CE系统启动过程
Windows CE系统启动过程如图1所示。
在Windows CE操作系统中,当基于Windows CE的目标设备上电启动或者复位时,系统首先加载并运行Bootloader程序,Bootloader程序进行必要的硬件初始化,然后通过Bootloader再加载并启动操作系统内核映像。启动操作系统内核的过程实际上就是加载并运行OAL(OEM Adaptation Layer)程序的过程。OAL是Windows CE操作系统内核的重要组成部分,OAL并不能被单独加载并运行,它最终被编译进操作系统内核,从而通过操作系统内核存在并发挥作用,操作系统的启动过程就是一个加载并运行OAL程序的过程[3]。
系统从启动加载内核映像文件到最后的显示桌面会有一段时间,这个时间段就是通常所说的启动时延。通常情况下为10 s~13 s。为了缩短这段时延,可以将系统映像分为多块,将系统核心启动部分的内容放到内存中,其他部分放到固态存储器(如Nand Flash)中,使用BINFS文件系统读出。即在系统启动过程中,先加载操作系统内核映像的核心部分,而操作系统内核映像的其他部分仍然驻留在Nand Flash中,需要时再从Nand Flash中进行加载,从而大大减少开机读取系统的时间。同时,也不再需要为操作系统预留全尺寸的内存空间,而只需预留最小开机核心部分的内存空间,剩下的作为通用内存空间。这样就使得操作系统内存的使用有了很大灵活性,同时可用系统内存大大增加。从而,在根本上达到了按需加载系统模块到内存的要求。这就是所谓的Multi-bin技术。
2 Windows CE .bin镜像文件解析与下载
由Windows CE的开发工具Platform Build编译生成的Windows CE操作系统及Bootloader的镜像文件主要有两种格式类型:以.bin为文件名后缀的记录型镜像文件和以.nb0为后缀的原始型(raw)镜像文件。前者以记录(Record)为单位组织镜像的数据,后者则是镜像在嵌入式系统中运行时的二进制数据快照。其中,.bin文件是一个描述性质的镜像文件,它由文件头(Head)、镜像数据目的起始地址(ImageStart)、镜像数据长度(ImageLength)和多条相对独立的记录(Record)构成。本文以实现Multi-bin的操作系统xip.bin为例进行分析,使用UltraEdit将其打开,如图2所示。
从图2可以看出,文件头(head)由7个字节组成,内容是:42 30 30 30 46 46 0A,即“B000FF\x0A”,这是判断镜像文件是.bin类型的依据。镜像数据目的起始地址(ImageStart,00 00 07 80)由4个字节组成,它定义了镜像文件解析后装载在内存中的起始地址是0x80070000。镜像数据长度(ImageLength,68 07 13 02)也由4个字节组成,它表示.bin镜像文件解析后在内存中占用的总的存储空间大小为(0x02130768)。每条记录(Record)由4字节的起始存储地址(RecordStart)、4字节的数据长度(RecordLength)、4字节的校验码(RecordCheckSum)和RecordLength个字节的记录数据(RecordData)组成。以第一条记录(阴影部分)为例,分别为0x80070040、0x00000008、0x000001E3和0X8007004C434543454。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- Windows CE.net操作系统的内核定制
- AD7156-适用于单片机平台的无操作系统驱动程序
- AD7303-适用于单片机平台的无操作系统驱动程序
- AD7193-适用于单片机平台的无操作系统驱动程序
- AD7780-适用于单片机平台的无操作系统驱动程序
- 适用于Blackfin的安全、可现场升级的操作系统体系结构
- 嵌入式操作系统Windows CENET中Nkbin文件的自启动 0次下载
- 基于Windows CE的数据管理系统的开发 0次下载
- Windows CENET操作系统的架构 0次下载
- Windows CE详解 67次下载
- 基于MIPS的Win CE多媒体操作系统的研究
- 嵌入式操作系统Windows CE的研究
- 基于Windows CE.Net 4.2嵌入式操作系统多媒体
- Windows CE板卡支持包介绍
- Windows XP操作系统 ppt课件 0次下载
- Windows操作系统中的常用命令 244次阅读
- 深度解析全球操作系统格局 671次阅读
- 树莓派4B操作系统安装方案 3135次阅读
- 基于pSoSystem操作系统实现通用网络代码框架的设计 1986次阅读
- 如何才能将不同的操作系统移植到Android上 849次阅读
- 基于S3C2410处理器对Windows CE 5.0操作系统实现BSP移植 977次阅读
- Linux操作系统的目录结构 3431次阅读
- 海天雄电子:Cortex-A8嵌入式教学实验系统 2676次阅读
- 现在使用的电脑操作系统有哪些?分别有什么特点 9552次阅读
- windows10操作系统安全模式的使用技巧 1055次阅读
- 适用于测控领域的4种实时操作系统对比分析 3531次阅读
- ARM嵌入式Wince的开发心得 6909次阅读
- Windows CE.NET 4.2下的串行通信技术讲解 1596次阅读
- 简要介绍了操作系统虚拟化的概念,以及实现操作系统虚拟化的技术 1.3w次阅读
- uC/OS和uClinux操作系统的区别 4403次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多