生姜学习小组 ARM9+Platform Builder+BSP介绍
又是吹水WinCE的一天
特别怀旧06年 Win CE 6.0 + MSN的情怀产品
现在开始讲真人真事:
微软亚洲研究院(MSRA)与软件学院合作,基于我院已有的在“Windows CE嵌入式系统”的教学方面的实践经验,进行国内尚未有先例的“Learning by doing”的教学模式的试点与改革(这是CMU率先提出的一种工程教学模式),以推动国内Windows CE嵌入式系统的教学与研究,并设立两万美元用于该项目的实施。
真人真事之开学参观各大实验室,选择最感兴趣的方向,我走进嵌入式实验室,参观全套设备:
根据老师记载“Windows CE嵌入式实验室,其中有30套华恒ARM9教学开发板,同时支持嵌入式Linux和Windows CE。同时,实验室还配备多台基于Windows CE的PDA和智能手机,可以供学生动手实践。”
然后开始讲学习流程(老师记载):
学习Windows CE需要的预备知识大致有如下一些:硬件知识,操作系统原理,汇编语言,C/C++高级语言,Windows程序设计等等。根据我们学生的特点,我们的学生在此之前已经学熟悉C / C++与Windows下的应用程序开发,因此我们选择了自顶向下的教学方式:应用开发 -> OS开发 -> Windows CE体系结构 -> BSP和驱动程序开发
根据老师记载,BSP放在最后是最复杂的
硬件层与软件层之间为中间层 Board Support Package
BSP所包含的内容一般来说与系统有关的驱动程序
我在ARM9文档中看见的资料:
ChatGPT生成:
在老师的课程安排中(课时安排是这样的:一共48学时,每次3节课,共16次课。这16次课分为13次课堂授课,3次实验)我用Google AI search 到裁剪内核相关知识:
基于Windows CE (WinCE) 的内核裁剪与定制是一个将通用嵌入式操作系统转变为特定硬件平台专用系统的过程。通过裁剪,可以优化系统性能、缩小系统映像(OS Image)体积并提高系统稳定性。
1. 核心工具:Platform Builder
Platform Builder (PB) 是微软提供的唯一用于定制 Windows CE 内核的集成开发环境(IDE)。它支持设计、创建、编译、测试和调试WinCE OS平台。
功能:在PB中,开发者可以交互式地选择CPU类型、网络协议、文件系统、驱动程序、字体等组件。
定制流程:
创建工作空间:通过PB新建OS设计工程。
配置组件(Catalog):在Catalog Item View中勾选或取消所需特性。
配置注册表(Reg):修改
platform.reg或project.reg文件以定制系统行为。配置BIB文件:在
.bib文件中设定模块的内存加载位置和文件列表。编译镜像:使用Make Image生成最终的内核文件(如NK.bin)。
2. 内核裁剪的关键策略
为了实现最小的系统内存占用,通常采取以下裁剪手段:
去除不必要的特性:例如移除电源管理、不需要的字体、多媒体库、复杂的网络协议栈等。
字体与内核分离:使用
FontLinkMethods技术,将中文字体等外部文件存于持久存储(如 Hard Disk),不在编译时打包进内核。精简驱动:BSP(板级支持包)中仅包含特定硬件所需的驱动程序。
3. 基于WinCE的系统四层架构
在裁剪过程中,需要理解WinCE四层体系结构以便进行合理配置:
硬件层:微处理器和必要硬件。
OEM 硬件适配层(OAL):连接操作系统和硬件的中断和I/O控制。
操作系统服务层:包括内核(Kernel)、文件系统、注册表、图形系统(GDI/GWES)。
应用层:终端用户程序。
4. 关键文件与位置
platform.reg:定义BSP和硬件相关的注册表设置。project.reg:定义工程相关的系统行为。common.bib/project.bib:管理文件打包到镜像的映射关系。
总结而言,基于Windows CE裁减内核需要熟练使用Platform Builder,从数千个组件中精细筛选,结合BSP开发,最终生成满足特定ARM、x86或MIPS硬件需求的轻量化镜像。
最后何老师还提到了和汽车学院做的一个项目:车载实时信息终端和智能化仪表系统的研究与开发。这是一个基于Windows CE的完整项目,通过这个项目的介绍,可以使同学对一个基于Windows CE的系统有一个完整的了解。

