标题:
巧手定制Windows CE系统 03
[打印本页]
作者:
samwalton
时间:
2013-10-11 19:40
标题:
巧手定制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只要修改即可,甚至无需修改。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0