### WinCE 6.0 移植文档精要解析
#### 一、WinCE 6.0 开发环境概述
**WinCE 6.0**是Microsoft推出的一款嵌入式操作系统,广泛应用于移动设备、消费电子产品等领域。对于进行WinCE 6.0系统移植的工程师而言,了解其开发环境的搭建是非常重要的第一步。
- **开发工具**: WinCE 6.0 的开发环境主要基于 **Platform Builder 6.0**,这是一个集成在 **Visual Studio 2005** 中的插件。不同于之前的版本,PB 6.0不再独立存在,而是作为VS 2005的一个扩展。
- **安装步骤**:
- 首先安装 **Visual Studio 2005** 及其 **Service Pack 1(SP1)**。
- 然后安装 **Platform Builder 6.0** 及其 **SP1** 和 **R2** 版本更新。
- 建议将这些软件安装在 **C盘**,以避免因路径问题导致的安装错误,并确保C盘有足够的空间(至少10GB)。
#### 二、WinCE 6.0 目录组织结构详解
WinCE 6.0 的源代码及其相关文件被组织在不同的目录下,清晰地划分了各个组成部分的功能和用途,这对于理解整个系统的架构至关重要。
- **CRC** 目录: 存放了PB 6.0安装过程中使用的校验文件 **crc.ini**。
- **OSDesigns** 目录: 用于存放Platform Builder的项目文件,相当于PB 5.0中的 **PBWORKSPACES**。
- **OTHERS** 目录: 包含一些运行库、二进制文件、注册表文件等。
- **PLATFORM** 目录: 存放了与硬件平台相关的 **BSP**(Board Support Package) 文件以及其他与特定硬件平台相关的代码。
- **PRIVATE** 目录: 存放了WinCE 6.0开放的部分源代码。
- **PUBLIC** 目录: 包含了WinCE 6.0的相关组件,主要是软件代码和库文件。
- **SDK** 目录: 存放了用于编译WinCE 6.0的各种工具和DLL文件。
#### 三、PLATFORM 目录详解
- **PLATFORM\COMMON** 目录: 这个目录包含了所有可重用的代码,这些代码在BSP之前就会被编译。
- **SRC\COMMON** 目录: 存放了被BSP重用的通用代码,这些代码是与硬件平台无关的,例如常见的IOCTL处理函数、与内核交互的公共中断程序等。
- **SRC\<CPU>** 目录: 这里存放了不同体系结构(MCU)的代码,如 **ARM**、**MIPS**、**SH** 和 **X86**。这些代码仅针对MCU的内核,而不涉及具体芯片的细节。
- **SRC\SOC** 目录: 该目录下存放了不同的MCU对应的代码,可以视为 **CSP**(Chipset Support Package)。这部分代码通常不能直接修改,如果需要移植类似平台的BSP,应先复制并重命名后再做修改。
#### 四、PQOAL 概念解析
**PQOAL**(Production Quality OAL) 是WinCE 5.0中引入的一个概念,旨在提高BSP的质量和可维护性。PQOAL的核心原则包括:
- 不同芯片或片上系统的代码必须分离。
- BSP中的代码应当组件化且逻辑上组织在一起。
- 芯片级代码、片上系统的代码以及BSP代码均需具备高质量,以利于代码重用。
#### 五、总结
对于WinCE 6.0的移植工作来说,正确理解并遵循 **PQOAL** 的原则对于简化移植过程、提升移植质量具有重要意义。通过合理组织 **PLATFORM** 目录下的代码,可以有效地管理和维护复杂的BSP项目,从而确保最终产品的稳定性和可靠性。此外,熟悉WinCE 6.0的目录组织结构对于开发者来说也是不可或缺的基础知识,有助于快速定位所需文件,提高开发效率。