如何建设一个查询网站苏州建设信息网
news/
2025/10/4 6:24:02/
文章来源:
如何建设一个查询网站,苏州建设信息网,产品软文模板,装饰装修网站模板建设这篇文章主要讲解PB的配置文件。从用途方面分析#xff0c;PB包含两种配置文件。分别是源码配置文件和镜像配置文件。下面分别讲解这两种配置文件。 一、源码配置文件#xff1a;源码配置文件用于编译源码时使用。这里的源码是指Windows CE公开的源码#xff0c;如驱动程序、…这篇文章主要讲解PB的配置文件。从用途方面分析PB包含两种配置文件。分别是源码配置文件和镜像配置文件。下面分别讲解这两种配置文件。 一、源码配置文件源码配置文件用于编译源码时使用。这里的源码是指Windows CE公开的源码如驱动程序、系统应用程序等。PB在编译平台时将这些公开的源码即时编译并将编译链接后的文件复制到平台工程子目录里。记得前面讲过PB在开始编译时调用cebuild.bat批处理文件cebuild.bat执行的一个步骤是针对_DEPTREES变量指定的所有目录执行build.exe和sysgen.bat。build.exe在编译源码文件时会寻找当前目录下存放的源码配置文件根据配置文件的信息来编译和链接产生EXE、DLL、LIB文件。CE的源码文件所在的目录中都包含了相应的配置文件这些配置文件只对当前目录或者子目录的源码有效具体分为三种DIRS文件
文件内容和解释如下DIRS指定哪个子目录的源码要被编译DIRS_CE只有为CE编写的源码才被编译OPTIONAL_DIRS指定可选的目录很少使用这个选项可以只编译指定目录而不是全部编译。SOURCES文件
通过宏定义来指定编译和链接涉及到的文件文件内容和解释如下TARGETNAME指定编译链接产生的主文件名TARGETTYPE指定编译链接产生的文件的类型决定了扩展名。文件共分三种.libLIBRARY和.dllDYNLINK和.exePROGRAM。TARGETLIBS定义.lib链接文件链接时需要这个文件。SOURCES源码文件。包含扩展名为*.c或*.h 或*.cpp的文件。EXEENTRY.exe文件的执行代码入口点。sources.cmn文件是通用的SOURCES文件。在这个文件中可以指定作用于所有源码文件的配置选项。MAKEFILE文件
包含默认的编译和链接选项整个编译和链接过程build.exe收集编译和链接需要的数据源码文件、链接文件、编译和链接选项产生一系列的内部环境变量然后调用nmake.exenmake.exe根据内部环境变量执行编译、链接最后产生最终文件*.lib *.exe *.dll。二、镜像配置文件镜像配置文件用于在制作CE镜像文件时使用。CE的镜像文件扩展名为.bin。制作镜像工具romimage.exe除了能够产生.bin文件外还能够产生.abx和.sre文件。整个镜像的制作过程由makeimg.exe控制它调用cenlscmp.exe、fmerge.exe、res2.exe、txt2ucde.exe、regcomp.exe、romimage.exe等。这些工具大部分在前面已经介绍过了。镜像配置文件类型有.bib、.reg、.db、.dat、.str。如果主文件名为Common表示是通用的配置文件。如果主文件名为Platform表示是某一个BSP的配置文件。如果主文件名是Project表示是定制的一个平台的配置文件。在PB中修改配置文件前如果没有把握最好先做好备份。l .bibBinary image builder定义包含在内核镜像中的文件和模块的名称、加载位置。主要的bib文件有Common.bib,Config.bib, Project.bib, Platform.bib等。.bib文件内部分为几个部分【MEMORY】用于定义有效的物理内存块在此将整个RAM分为几个部分。格式 名称 首地址 大小 内存类型名称 内存区域的唯一名称RESERVE是预定义名称可以用多次表示此区域保留首地址 内存区域的首地址十六进制表示大小 内存区域的大小十六进制表示内存类型分为三种。RAM 运行所有进程的内存区域整个区域必须是连续的且不能含空洞RAMIMAGE专用于保存镜像的内存区域。每个.bin中只能指定一个RAMIMAGERESERVED 保留内存区域这样的区域一般用于驱动程序使用如显卡缓冲区、DMA缓冲区举例;名称 首地址 大小 内存类型IF IMGRAM64NK 80220000 009E0000 RAMIMAGERAM 80C00000 03000000 RAMUMABUF 83C00000 00400000 RESERVEDENDIF注整个内核的地址都是从0x8000 0000开始的。如果是x86系列的CPU那么物理内存地址与虚拟地址映射关系在oeminit.asm中指定。【CONFIG】类似环境变量PB预设置了一些配置变量。常用的配置及说明如下AUTOSIZE格式AUTOSIZE OFF | ON默认值为OFF。在config.bib中的MEMORY部分定义了有效的内存区域其中两部分RAM、RAMIMAGE分别用于进程使用区域和保存镜像区域。如果为ONromimage.exe在创建nk.bin时将RAM和RAMIMAGE两部分合并成一个部分然后从最低地址开始保留RAMIMAGE大小的内存其余都作为RAM使用。BOOTJUMP格式BOOTJUMP address | NONE默认值为NONE。每次重新启动CE内核默认执行的代码从RAMIMAGE的首地址开始。如果在BOOTJUMP指定一个地址必须在RAMIMAGE范围内那么将从指定的地址开始执行。COMPRESSION格式COMPRESSION OFF | ON 默认值为ON。romimage.exe在创建内核时默认压缩所有可写部分。对于文件默认全部压缩。对于模块.exe、.dll默认压缩可写部分。模块的可写部分包括数据段也就是在模块运行时一定加载到内存中的部分。如果模块在.bib中定义时具有C属性表明压缩模块所有部分那么当前这个选项就忽略了。FSRAMPERCENT格式FSRAMPERCENT number 默认值为0x80808080。指定为文件系统分配的内存的百分比。number分为四个字节由十六进制表示。byte0的值单位为4KB表示在第一个2MB中其中每1MB包含的4KB的整数倍。byte1的值单位为4KB表示在第二个2MB中其中每1MB包含的4KB的整数倍。byte2的值单位为4KB表示在第三个2MB中其中每1MB包含的4KB的整数倍。byte3的值单位为4KB表示在剩下的内存中每1MB包含的4KB的整数倍。计算一下默认值0x80808080表示的百分比0x80*4K/1M 0.5因为每个字节都等于0.5所以整个占用的百分比是50%。KERNELFIXUPS格式KERNELFIXUPS OFF | ON默认值为ON。如果为ONromimage.exe创建内核前重定位内核到RAM的开始位置。OUTPUT格式OUTPUT path指定romimaeg.exe将创建完成的内核文件nk.bin放置到的路径。一般放置到%_FLATRELEASEDIR%下。ROMFLAGS格式ROMFLAGS Flags设置内核选项的位掩码多个位掩码可以组合使用。0x0001 禁止按需分页EXE和DLL默认是按需分页的。0x0002 禁止全内核模式进程运行在两种模式下用户模式和内核模式。全内核模式下所有线程运行在内核模式。全内核模式能够提高执行效率但会增加系统的不稳定性。如果允许执行用户程序那么不适合采用全内核模式。0x00000010 只信任来自ROM的模块DLL、EXE。默认ROM中的模块和所有文件系统的模块都是内核信任的。OEM能够在OAL层实现对所有运行模块的检查这个标志将忽略对来自ROM保存的模块的检查。0x00000020 停止刷新TLB。这个标志仅用于运行在x86CPU上的内核。TLBTranslation Look-aside Buffer有人翻译成变换索引缓冲区它的作用是在虚拟地址和物理地址之间转换。对于具有实时性的内核这个标志应该设置。0x00000040 按照/base链接选项中的地址加载DLL。这样内核将不采用重定位加载DLL。不建议采用。 ROMSIZE格式ROMSIZE size指定内核镜像的大小ROMSTART格式ROMSTART address指定内核镜像的首地址ROMWIDTH格式ROMWIDTH width指定数据宽度一般为32位ROMOFFSET格式ROMOFFSET address指定偏移地址。SRE格式SRE OFF | ON指定romimage.exe是否产生.src文件一般烧录ROM的程序能够识别此文件。注config中绝大多数【CONFIG】选项不需要修改。凡是配置文件都可以使用IF/ENDIF 条件语句。【MODULES】定义镜像要包含的模块并指定模块DLL、EXE如何被加载到内存表中。格式模块名称 路径 内存块 类型 模块名称一般为模块的真实名称路径为当前文件所处的位置路径中指定的文件名和前面模块名称最好一致内存块是指这个模块将被存放到哪个内存块中内存块的定义见前面MEMORY部分类型指定这个模块将被存放的属性具体类型如下S系统文件H隐藏文件R只压缩模块的资源部分默认模块是不压缩的C压缩模块所有部分D禁止调试N标志模块是非信任的P忽略CPU类型K指定romimage.exe修正模块仅用于调试或者内核跟踪X指定romimage.exe对此模块验证签名M运行时加载整个模块而不是按需分页L不分离DLL在进程地址空间和Slot 1 举例MODULES init.exe %_WINCEROOT%\RELEASE\INIT.EXE NK SH nk.exe $(_FLATRELEASEDIR)\kitlnokd.exe NK SHDnk.exe $(_FLATRELEASEDIR)\kitlnokd.exe NK SHN【FILES】定义镜像要包含的文件并指定文件如何被加载到内存表中。格式模块名称 路径 内存块 类型具体类型如下S系统文件H隐藏文件U不压缩文件默认是压缩的举例FILES initobj.dat %_WINCEROOT%\RELEASE\INITOBJ.DAT NK SH【.dat File System File】定义目录和指定文件位置。当冷启动CE平台时filesys.exe用这些数据创建目录、快捷方式、文件在RAM文件系统。举例;;创建根目录下子目录Program Filesroot:-Directory(Program Files) ;;创建目录Program Files下一个子目录My ProjectsDirectory(\Program Files):-Directory(My Projects) ;;复制文件从\Windows\Myproj.exe到\Program Files\My Projects\My Project.exeDirectory(\Program Files\My Projects):-File(My Project.exe, \Windows\Myproj.exe);;复制文件从\Windows\control.lnk到\control.lnk root:-File(\control.lnk, \Windows\control.lnk)快捷方式的运用如果要在CE平台的桌面上显示一个程序的快捷方式实现步骤为1、创建一个快捷方式。在开发机上用记事本一类的文字编辑软件写入字符格式为长度#路径。其中长度为路径的字符个数。例如“16#\windows\abc.lnk”注意路径中空格也算在内。完成后保存为ASCII码的扩展名为.lnk的文件。将此快捷方式文件*.lnk复制到%_FLATRELEASEDIR%下,也就是PB编译的所有文件存放的目录。2、在project.bib中的FILES部分下按FILES的格式键入字符。例如FILES abc.lnk $(_FLATRELEASEDIR)\abc.lnk NK S 3、在project.dat中指定abc.lnk文件所存放的位置。例如root:-Directory(\Windows)Directory(\Windows):-Directory(LOC_DESKTOP_DIR)Directory(\Windows\LOC_DESKTOP_DIR):-File(abc.lnk,\Windows\abc.lnk)【.reg Registry file】设置注册表项。关于注册表见我的文章《开发实例二保存信息》。数据类型 格式 REG_SZ my string REG_DWORD DWORD: NNNNN (十六进制) REG_MULTI_SZ multi_sz: my string REG_BINARY hex: xx,xx,xx,xx ... HEX hex(xxxxxxxx): xx,xx,xx,xx 例如[HKEY_LOCAL_MACHINE\init]Launch60myproc.exe ///REG_SZ类型Depend60hex:14,00, 1e,00 ///REG_BINARY类型 [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\TRUEFFS_UNAND\FATFS]MountFlagsdword:2 ///REG_DWORD类型【.db The database files】数据库文件保存在对象存储中。实际应用的不多在这里不再过多讲解。【.str string files】类似EVC中的字符串资源。用于指定ID与字符串的关联。CE支持很多国家语言所以内核使用的字符串可能采用不同国家的语言。为此CE将字符串用ID来定义在.str文件中指定ID对应的字符串。包含.str文件的目录名采用国家码来设置例如“C:\......\0410\cepc.str”。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926664.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!