打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
WINCE600的目录组织及PQOAL
2008-12-03 11:02:07|  分类:引用网友文章 |字号 订阅
在介绍S3C2410的WinCE6.0移植之前,我们先熟悉一下WINCE600的目录组织和PQOAL的相关概念。
这里简单说一下WinCE6.0开发环境的搭建。WinCE6.0的开发环境是Platform Builder6.0,但与Platform Builder 5.0不同的是,它作为VS2005的一个插件来用。所以,我们需要先安装VS2005,并且安装相应的SP1。PB6.0目前应该是不支持VS2008的。然后顺序安装PB6.0、PB6.0的SP1、 R2。虽然微软没有严格说明,但还是建议将这些软件都默认安装到C盘,以免出现意外的情况。当然,这要求C盘足够大,至少得有10G的可用空间,以免安装的过程中出错。
安装完成后, C盘的根目录下产生一个WINCE600的目录,这里包括WinCE6.0的源代码、BSP和一些编译WinCE时需要用到的工具和库文件。另外还产生一个C:\Program Files\Microsoft Platform Builder\6.00的目录,这里主要包括PB6.0的开发环境工具、帮助文件和其他一些开发时用到的工具。
下面我们看一下WINCE600的目录组织。
目录
说明
CRC
存放了一个PB6.0安装时用到的校验文件crc.ini
OSDesigns
用来存放PB的工程,对应PB5.0中的PBWORKSPACES
OTHERS
存放了一些运行库、用于编译操作系统的二进制文件、注册表文件、批处理文件
PLATFORM
存放了和硬件平台相关的BSP及MCU相关的代码和其他一些文件
PRIVATE
存放了WinCE6.0开放的源代码
PUBLIC
存放了WinCE6.0的相关组件,这里应该是纯软件的代码和库
SDK
存放了用于编译WinCE6.0的相关工具和DLL文件
更详细的目录组织说明请参看MSDNhttp://msdn.microsoft.com/en-us/library/aa908702.aspx
一般来说,在移植BSP的过程中,我们只会修改PLATFORM下的相关目录和文件,而其他的除OSDesigns之外的目录,最好都不要修改,以免出错。PLATFORM目录下除了COMMON目录外,其他都是特定硬件平台的BSP,而COMMON目录中则包涵了不同体系结构的相关代码(ARM、X86、MIPS、SHX)、与平台无关的代码(COMMON)和SOC的相关代码(SOC),这些代码都不能直接修改,如果需要修改,应该先CLONE出来,再做修改。
PQOAL这个概念在WinCE5.0中就引入了,全称为Production Quality OAL,产品级的OAL。它的基本原则如下:
不同芯片或片上系统的代码必须分离开来;
BSP中的代码应该是组件化的并且有逻辑的组织在一起;
芯片级代码、片上系统的代码和板级支持包(BSP)中的代码都应该是高质量的,以便于代码重用。
PQOAL并不是一个硬性的规定,你可以按照自己的想法来组织BSP的目录及相关文件。但我还是建议尽量按照PQOAL的原则来组织,这会给后期的调试、移植和发布带来很大的便利。这是前人成功的经验,没有理由不用。
下面就从PQOAL的角度分析PLATFORM的目录组织。
PLATFORM\COMMON:这里存放了所有可重用的代码。这一部分代码将在BSP之前编译。
PLATFORM\COMMON\SRC\COMMON:这里存放了被BSP中重用的通用代码,这一部分代码是跟硬件平台无关的。譬如一般的IOCTL处理函数、与内核交互的公共的中断程序等等,另外还包括一下库文件,如OAL_IOCTL.lib、oal_intr.lib、oal_log.lib、kitl_log.lib等等。这一部分代码由微软提供,一般不能修改。
PLATFROM\COMMON\SRC\<CPU>:CPU表示MCU的不同体系结构,如ARM、MIPS、SH和X86。这些目录分别存放了各体系结构的MCU的相关代码,如CACHE相关代码、物理地址和虚拟地址转换的代码等等。这部分代码只针对MCU的内核,不涉及具体的芯片。这一部分代码也由微软提供,不建议修改。
PLATFORM\COMMON\SRC\SOC:该目录下存放了不同的MCU对应的代码,跟BSP对应,这里可看做是CSP(CHIPSET SUPPORT PACKAGE)。这一部分的代码一般来说不能直接修改,如果需要移植类似平台的BSP,应该复制一个,重命名后再做修改。这里的目录和其中链接后的库文件的命名也遵循一定的规则(芯片名称_厂商名称_版本号)。这里需要注意的是SOC目录下dirs文件需要包括体系结构的说明,如PLATFORM\COMMON\SRC\SOC\PXA27X_MS_V1中的dirs文件以DIRS_ARM= \打头。这与BSP中的一般的DIRS文件不同。我在移植BSP的时候,并没有在这里做任何修改,只是将其中相关的文件拷贝到我自己的BSP目录下,这样方便BSP的发布。
PLATFORM\BSPName:这里存放了跟开发板对应的相关代码。在编译WinCE操作系统时,它在\PLATFORM\COMMON的目录之后编译。我们在针对一款新的硬件平台移植WinCE6.0时就是在这里做相应的添加和修改。
WinCE6.0中BSP的目录组织如下:
目录
说明
CATALOG
存放BSP的CATALOG file
CESYSGEN
编译的过程中,bib和reg文件将被拷贝到这
FILES
存放BSP的bib、reg、dat等配置文件和无须编译的二进制文件
SRC
存放BSP的所有源代码
SRC\BOOTLOADER
存放BOOTLOADER的源代码
SRC\COMMON
存放共享代码,链接后的库可被BOOTLOADER、OAL和驱动使用
SRC\DRIVERS
存放设备驱动的代码
SRC\INC
存放相关头文件
SRC\KITL
存放KITL的相关代码
SRC\OAL\OALEXE
链接OAL.lib和其他一些库,生成OAL.exe
SRC\OAL\OALLIB
存放OAL的源代码,编译生成OAL.lib
本文分析了WINCE600的目录组织,并从PQOAL的角度分析了PLATFORM目录
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
WinCE6.0的EBOOT概要 Windows Mobile 德仔工作室 脚踏实地 用心...
wince6.0编译环境
WinCE的编译系统 - 开发板教程专区 - 天嵌科技 ARM开发社区 TQ2440,SK...
S3C2410下WinCE6.0的启动过程详解
如何在CE6.0 image中加入MFC的支持, 及如何导出相关的SDK
WinCE6.0BSP移植(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服