WinCE BSP的BIB文件介绍

在WinCE中使用的一个重要的文件就是BIB文件,全称Binary Image Builder File。在WinCE的编译过程中会用到BIB文件,应该是在最后的Makeimg阶段。所有的BIB文件会被合并成CE.bib文件,然后Romimage.exe会根据BIB文件中的描述来决定哪些文件最终被包含到WinCE image中。当然,BIB文件还决定了WinCE设备内存的分配,其中定义了WinCE image占用哪块内存,Framebuffer占用哪块内存等。

在BIB文件中分为4大项:MEMORY项,CONFIG项,MODULES项和FILES项。下面分别作个解释:

MEMORY:定义了内存分配的相关设置,一般在BSP中的config.bib文件中。

CONFIG:在最后的Makeimg阶段,为Romimage.exe提供一些生成WinCE image的配置属性。该项是可选的,一般也在BSP中的config.bib文件中定义。

MODULES:定义了一些会被打包到WinCE image中的模块或者文件,比如dll,exe等。这些文件会被Romimage.exe标记为加载到RAM中或者XIP。我们可以在这里添加自己的WinCE应用程序或者模块,但是不要添加Managed Binaries,一般指.NET的程序。

FILES:定义了一些操作系统会用到的其他的文件,比如字体文件,图片等。这些文件也会在WinCE运行的时候被加载到RAM中。

下面会详细介绍上面的4大项:

1.MEMORY项

一般都在config.bib文件中定义,开头会有MEMORY的字样。这里定义了为WinCE image以及其他模块预留的RAM,同时也定义了WinCE可以使用的RAM。具体格式如下:

MEMORY  NAME  Start Address    Memory Size    Type

NAME:该内存区域的名字,必须是唯一的。

Start Address:该内存区域的起始地址,用十六进制表示。

Memory Size:该内存区域的大小,用十六进制表示。

Type:内存区域的类型。包涵的多种类型如下。

类型值 描述
FIXUPVAR 用于在WinCE编译的Makeimg阶段,就初始化一个内核中的全局变量。
NANDIMAGE 当创建了一个使用BinFS的image的时候,NAND设备上的WinCE kernel重定向到RAM中的区域,当系统访问该区域的时候,BinFS会负责访问Nand设备上相应的位置,并返回数据给系统,实际上就是在Nand设备上面实现了XIP的功能。
RAM 定义了被WinCE系统使用的RAM区域,这块内存必须是连续的,这里有一点要注意就是从硬件的角度来说,这块内存不能跨越两片SDRAM,也就是说整个区域空间必须在一片硬件SDRAM上。
RAMIMAGE 定义了一块内存区域用于加载WinCE image,实际上WinCE启动以后,image会被拷贝到这块内存区域上面运行。一个image只能有一个连续的RAMIMAGE区域。
RESERVED 这块内存区域会被预留出来,一般用于Frambuffer或者是DMA Buffer,或者是一块共享内存用于EBOOT传递参数给WinCE系统。
EXTENSION 定义了一块WinCE image中的区域作为ROMHDR extension的数据区域。

2.CONFIG项

一般在config.bib文件中定义,定义了一些额外的配置参数,其中一些对于WinCE image来说也很重要。具体格式如下;

CONFIG

ITEM=Parameter

ITEM 描述
AUTOSIZE 允许未被使用的WinCE image的RAM被用作WinCE系统的RAM。默认值为ON。
COMPRESSION 允许Romimage.exe压缩WinCE image中的可写入部分。默认值为ON。
BOOTJUMP 定义了跳转跳转页在RAMIMAGE空间的地址。而不是默认情况下的RAMIMAGE的首地址。默认值为NONE。
FSRAMPERCENT 定义了文件系统使用的内存的百分比。默认值为0x80808080。Byte 0:第一个2MB中,每1MB所包含的4KB的倍数。Byte 1:第二个2MB中,每1MB所包含的4KB的倍数。Byte 2:第三个2MB中,每1MB所包含的4KB的倍数。Byte 3:剩下的内存中,每1MB所包含的4KB的倍数。
KERNELFIXUPS 定义了Romimage.exe是否重新定向内核的可写入区域。默认值为ON,内核的可写入区域被重新定向到RAMIMAGE的起始位置。
OUTPUT 定义了最终生成的image存放的路径。默认为%_FLATRELEASEDIR%。
PROFILE 定义了是否在WinCE image中包含profiler的结构和符号。默认值为OFF。
RESETVECTOR 重新指定跳转页的位置,一般针对MIPS芯片从0x9FC00000开始引导的问题。
ROMFLAGS 内核标记位,可以进行组合:0x01表示禁用按需分页。0x02表示禁用完全内核模式,完全内核模式表示所有的线程都运行在内核模式。0x10表示只信任ROM MODULES中的模块。0x20表示停止刷新TLB。0x40表示按照/base链接选项中的地址加载DLL。
ROMSTART 指WinCE image在内存中的起始地址。
ROMSIZE 指WinCE image的大小。
ROMWIDTH 指数据总线的宽度。
ROMOFFSET 指定一个偏移量来修改.bin文件中的每一个记录的地址。一般用于ROM中的.bin文件加载到RAM来运行的情况,主要是表示存储.bin的位置和运行.bin的位置不一样。
SRE 使Romimage.exe产生一个.sre文件。默认值为OFF。
X86BOOT 定义是否插入一条跳转指令,在x86复位向量地址的时候。
时间: 2024-08-01 17:35:16

WinCE BSP的BIB文件介绍的相关文章

WinCE BSP中的DAT文件介绍

DAT文件用于在WinCE启动的时候,定义文件系统的结构,也就是定义有哪些文件夹,哪些文件在什么位置等.每次冷启动的时候,Filesys模块会根据.dat文件中的内容来创建目录以及目录下的文件. 在BSP中我们可以找到platform.dat.在创建一个WinCE的工程以后,可以在工程目录下面找到project.dat.可以在这两个.dat文件中定义我们所需的根目录以及相应的子目录和文件,当然Windows文件夹及其包含的子文件夹除外.用户可以通过定义快捷方式的方法来引用Windows目录下的文

WinCE BSP中的Dirs文件和Sources文件

1.Dirs文件 关于Dirs文件,就是指定要编译的路径,这个地球人都知道.还是简单介绍一下.按照文档上面介绍有三种定义:DIRS,DIRS_CE和OPTIONAL_DIRS. DIRS:就是指定要编译的目录. DIRS_CE:只有目录下的源代码用于WinCE的映像文件时,才编译该目录. OPTIONAL_DIRS:指定可以选择编译的目录.比如:OPTIONAL_DIRS=proj1,如果想编译proj1目录,可以设置BUILD_OPTIONS=proj1,然后运行build命令就可以了. 举个

WinCE BSP工程文件pbcxml分析

每一个BSP都有一个工程文件,比如MyBSP.pbcxml,里面描述了BSP的信息.下面就来介绍一下BSP的pbcxml文件. 文件的大致格式应该是这样的: <CatalogFile -> <FileInformation -.> -. </FileInformation> <BSP -> - </BSP> <Item -> - </Item> <Item -> - </Item> <Item

bsp是什么文件?

  对于普通电脑用户来说也许接触到bsp的机会不多,bsp是一钟底层文件,承载着底层硬件的稳定运行. bsp是什么文件 BSP( Board Support Package)是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板. BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板.BSP是相对于操作系统而言的,不同的操作系

NSIS文字及字符串函数与头文件介绍

原文 NSIS文字及字符串函数与头文件介绍 文字函数,顾名思义就是处理字符串的函数.使用这些字符串函数前,必须先包含头文件WordFunc.nsh.该头文件目前包含如下一些函数:WordFind.WordFind2X.WordFind3X.WordReplace.WordAdd.WordInsert.StrFilter.VersionCompare.VersionConvert等.这些函数的主要作用都是查找字符串.下面我们就常用函数用法做以简单介绍.   WordFind 用于在给定字符串中查找

在 WinCe 平台读写 ini 文件

      在上篇文章开发 windows mobile 上的今日插件时,我发现 wince 平台上不支持例如 GetPrivateProfileString 等相关 API 函数.在网络上我并没有找到令我满意的相应代码,因此我手工自己写了相应的方法.命名规则是,在 PC API 函数的名称前面加上 "Ce" 前缀,这是为了在 PC 平台上调试和使用时,不和系统的 API 函数发生冲突.值得注意的是,在写 CeWritePrivateProfileString 方法时,如果改写后的 i

WinCE BSP中的REG文件和DB文件

1.REG文件 注册表文件,这个和Windows操作系统中使用的注册表文件基本一样,在BSP中主要是Platform.reg,该注册表文件描述了和硬件平台相关的配置,大部分是用来描述驱动的相关信息. 注册标的格式如下: [KEY1] "ValueName1"={Value Type}:{data} "ValueName2"={Value Type}:{data} [KEY2] "ValueName1"={Value Type}:{data} 其中

Eclipse中.setting目录下文件介绍

Eclipse项目中系统文件介绍 一. 写在前面 文章较长,可以直接到感兴趣的段落,或者直接关键字搜索: 请原谅作者掌握的编程语言少,这里只研究Java相关的项目: 每一个文件仅仅做一个常见内容的简单介绍,这些知识多数来自于实践理解和网络搜索,可能会不全面,更详细的可以看相关的参考资料. 二. 概述 Eclipse在新建项目的时候会自动生成一些文件.这些文件比如.project..classpath..settings目录下的所有文件等.这些文件是Eclipse项目的元数据,描述了一个Eclip

MySQL的InnoDB文件介绍

MySQL一个显著的特点是其可插拔的存储引擎,因此MySQL文件分为两种,一种是和MySQL数据库本身相关 的文件,一种是和存储引擎相关的文件.本文主要介绍和InnoDB存储引擎相关的文件. 表空间文件 InnoDB在存储上也模仿了Oracle的设计,数据按表空间进行存储,但是和Oracle不一样的是,Oracle 的表空间是个逻辑的概念,而InnoDB的表空间是个物理的概念. 你可以通过参数 innodb_data_file_path来设置默认的表空间文件,所有基于InnoDB存储引擎的表都会