您的位置 首页 资料

WinCE BSP的BIB文件

在WinCE中使用的一个重要的文件就是BIB文件,全称Binary Image Builder File。在WinCE的编译过程中会用到BIB文件,应该是在最后的Makeimg阶段。所有的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复位向量地址的时分。

3.MODULES项和FILES项

该项列出了一切被包括在WinCE image中的模块以及文件,以及这些模块和文件以什么方法被加载到内存中。详细格局如下:

MODULES

Name Path Memory Type

Name:模块的姓名,比方一个dll或许exe文件的文件名。

Path:途径,一般都是WinCE的工程的Release目录。

Memory:指定该模块被放在哪个区域,一般都是NK区域。

Type:界说了文件的类型。详细如下:

类型

描绘

S

体系文件。

H

躲藏文件。

R

只紧缩模块的资源部分。

C

紧缩模块的一切部分。

D

制止调试。

N

模块是不行信赖的。

P

告知Romimage.exe不需要查看CPU的类型。

K

告知Romimage.exe必需固定该模块的内核地址。有该符号的模块只能被LoadKernelLibrary函数加载。

X

告知Romimage.exe对该模块签名。

M

运转时加载整个模块,不要按需分页。

L

告知Romimage.exe不要别离ROM DLL。

一般FILES项的Type只支撑S,H,N,D几个类型,而MODULES项的Type是都支撑的。

举个比方吧:

INIT.EXE %_WINCEROOT%\RELEASE\INIT.EXE NK SH

MYDLL.DLL %_WINCEROOT%\RELEASE\MYDLL.DLL NK SHC

关于BIB文件来说相同支撑“条件编译”,咱们能够经过设置环境变量来挑选性地将某些模块打包到WinCE image中。一般在BSP中,关于一些驱动模块的环境变量咱们IF来进行条件判别。而关于WinCE的体系模块来说,一般都是SYSGEN变量,应该运用@CESYSGEN IF来判别。

咱们在BSP的开发中最常见的首要便是eboot.bib,config.bib,platform.bib和project.bib。下面简略介绍一下:

project.bib:该文件首要自创立的WinCE工程中所需的一些文件。

platform.bib:该文件包括了和硬件渠道相关的文件,首要以驱动程序为主。

config.bib:该文件描绘了WinCE体系的内存的装备。

eboot.bib:该文件描绘了WinCE的eboot的内存的装备。

还有其他的一些bib文件,在WinCE体系编译后都会背拷贝到工程的release目录下面。比方common.bib,ie.bib等。这些文件列出了WinCE的组件相关的文件,依据用户订制的体系,会被挑选性的打包到WinCE image中。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/300105.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部