当前位置:首页 > 工业控制 > 电子设计自动化
[导读]在WinCE系统中,当我们完成了相关的开发和系统定制工作以后,会编译WinCE系统,最后生成NK.bin和NK.nb0。我现在用WinCE6.0 在自己的PC上面编译一次用时19分16秒(有一天无聊,就测了一下)。下面介绍一下WinCE系统的编

在WinCE系统中,当我们完成了相关的开发和系统定制工作以后,会编译WinCE系统,最后生成NK.bin和NK.nb0。我现在用WinCE6.0 在自己的PC上面编译一次用时19分16秒(有一天无聊,就测了一下)。下面介绍一下WinCE系统的编译过程,大致分为4个阶段:编译阶段 (Compile phase),系统产生阶段(Sysgen phase),文件拷贝阶段(Release copy phase)和生成映像阶段(Make Run-time image phase)。

过程如图:


从图中可以看出,整个编译都是通过调用Blddemo.bat来实现的,实际上也是这样,编译WinCE就是用Blddemo.bat,只不过后面可以跟不同的参数。编译阶段和系统产生阶段由Cebuild.bat完成,文件拷贝阶段由Buildrel.bat完成,最后的生成映像阶段由 Makeimg.exe完成。下面介绍一下各个阶段。

1. 编译阶段(Compile phase)

这个过程指对WinCE路径下的Private和Public目录进行编译,将里面的源代码编译成库文件等,这个过程可能会花费几个小时。除非改动了 Private或Public目录下的源码,否则是不需要编译的。一般我们编译自己的工程的时候,不需要这个步骤。

2. 系统产生阶段(Sysgen phase)

在这个过程中,系统会根据你在PB中Catalog中的选项,删除和设置相应的SYSGEN环境变量,链接相应的静态库,过滤头文件,为SDK创建所需的导入库,同时还会为WinCE系统创建一些配置文件。最后会编译当前的BSP和应用程序。

3. 文件拷贝阶段(Release Copy phase)

拷贝所有所需的文件到工程的release目录下面,主要是前面系统产生阶段所产生的所有文件。

4. 生成映像阶段(Make run-time image phase)

该过程首先调用cenlscmp.exe根据国际语系与地区设定生成wince.nls文件。然后调用Fmerge.exe合并一些配置文件,合并所有 bib文件为ce.bib,合并所有的reg文件为Reginit.ini,合并所有的dat文件为Initobj.dat,合并所有的db文件为 Initdb.ini。之后调用Regcomp.exe压缩reginit.ini为default.fdf。根据LOCAL环境变量的设置调用 Res2exe.exe更新所有的dll,exe和cpl文件中的资源文件,主要是更新其中的语言部分。再调用Txt2ucde.exe转换所有 ASCII码字符串为UNICODE。最后调用Romimage.exe合并所有文件为NK.bin。

在整个编译过程中有时会遇到编译错误,这个可以通过察看Build.log,Build.err和Build.wrn文件来分析问题,这三个文件应该是位于”WINCE600”目录下面。编译错误可能在不同的编译阶段产生,我们也可以根据这一点来分析问题。

一般在系统产生阶段(Sysgen phase)出现错误很可能是由于丢失组件或文件造成的,这时候Build.log会提供更多信息帮助分析问题。在这个阶段产生错误,很可能是由于在当前工程中添加或者删除WinCE组件造成的,其中有些组件的更改是需要进行”clean sysgen”的,而不能只使用”sysgen”命令。所以我的建议是每次添加或删除组件都做”clean sysgen”。

如上面介绍系统产生阶段(Sysgen phase)也会编译BSP和部分应用。所以如果错误出现在系统产生阶段的编译过程中,一般一种可能就是你的代码有语法错误,当然这种错误很好查。还有一种可能出现的错误是连接错误,有可能是丢失了lib库文件或者链接错了库文件,也有可能是调用了错误的API函数,还有就是设置了错误的环境变量,这些查起来相对困难一点。

如果错误产生在文件拷贝阶段(Release copy phase),一种常见的问题就是和硬盘驱动器有关,检查一下release目录所在磁盘的磁盘空间。

如果问题出现在生成映像阶段(Make run-time image phase),根据编译的输出窗口的输出信息判断问题出在哪个子阶段。一种可能是你的bib文件或者reg文件中存在语法错误导致合并文件时出错,还有就是注意你的image的大小是否超过了config.bib文件中的设定,还有就是可能丢失了某个或者某些文件,这些丢失的文件很可能是由于在前面的编译过程中出现错误导致的。

当然,也有时候会遇到一些奇怪的问题,这些问题可能是由于没有正确的安装WinCE造成的,比如在安装WinCE的时候,路径中不要有中文或者空格或者其他比较奇怪的字符。补丁要按照顺序来打,要不也可能会出现问题。



来源:Etta0次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭