首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

巧手定制Windows CE系统 03

巧手定制Windows CE系统 03

二.Windows CE内核定制过程
  嵌入式开发涉及到的问题很多,其中最主要有操作系统内核的定制,驱动程序的编写,和应用程序的研发。对我们开发程序员来说,熟练的掌控嵌入式内核的定制有利于提高效率。Windows CE内核定制是研发的一个重点,它不同于一般应用程序的研发,因为它涉及到硬件。内核定制包括定制板级支持包BSP、定制系统模块、定制原始设备商适配层( OAL)及设备驱动等程序。Windows CE内核定制是在Platform Builder内完成的,它是微软提供的专业软件,能够从官方网站得到评估板。
  (1)搭建Platform Builder环境
  微软的Platform Builder集成研发环境包含一系列研发工具,利用它提供的配置文档和调试工具能够快速定制适合目标平台的Windows CE操作系统,只要适当修改和配置Platform Builder的配置文档就能够裁剪和添加相关组件,和配置各种设备驱动程序。
  Platform Builder提供了创建和调试Windows CE映射NK.BIN的集成开发环境,如向导和工具栏,支持活动模板库(ATL)、微软基本类库(MFC)和Visual Basic,为支持的处理器家庭提供编译器、内核调试器以及各种远程调试工具。通过网络通信我们可以将Windows CE操作系统映像文件NK.BIN下载到目标平台,然后让Windows CE在目标平台启动,这时也可通过Platform Builder提供的调试工具查看Windows CE的运行情况。
  (2)板级支持包(BSP)的定制
  BSP主要包括BootLoader的研发和OAL的研发。编写BootLoader是定制Windows CE系统第一步,也是关键的一步。只有得到一个稳定工作的Loader程序,才能够更进一步研发Windows CE的BSP。BootLoader是一段单独的程序代码,它存放于目标平台的非易失存储介质中,如ROM或Flash。它主要用于启动硬件和下载NK.bin到目标板上,并有一定的监控作用。
   一般来说,对于BootLoader的功能需要并不是严格定义的,不同的场合区别很大。比如,在PC的硬件平台上,由于硬件启动根本就不是通过BootLoader(而是通过BIOS),所以BootLoader就无需对CPU加电后的初始化做任何工作;而一般的嵌入式研发平台上,BootLoader是最先被执行的程序,所以就必须包括加电初始化程序。通常,BootLoader必须包含下载CE映像文档的功能。由于BootLoader涉及到基本的硬件操作,如CPU的结构、指令等,同时又涉及到以太网下载协议和映像文档格式。因此,从零实现的话,会需要相当长的过程,通常的做法是利用微软为每种类型的CPU提供的某种标准研发板的BootLoader例程。
  OAL(OEM Adaptation Layer)是OEM 适配层,是位于Windows CE内核和硬件之间,是OAL各个模块代码被编译后(.lib)和其它内核库链接到一起形成Windows CE的内核可执行文档NK.EXE。Windows CE内核在OAL层可使用大量的函数和全局变量,利用这些函数和全局变量OEM能够编写中断处理、RTC、电源管理、调试端口、通用I/O控制代码等。一般来说,Windows CE安装目录的子目录中包含了OAL的部分源码,大多数情况下开发工程师对OAL只要修改即可,甚至无需修改。
返回列表