Boot Loader 的启动流程和开发经验总结 Windows CE 最大程度继承了桌面版Windows 的丰富功能,但是Windows CE 并不是一个通用的安装版操作系统
在形形色色的嵌入式设备世界里,一款CE 系统通常只会针对某一种硬件平台生成
一般来说,Windows CE 的开发过程可以分为:0AL(OEM Abstraction Layer)、驱动、应用程序开发三个步骤
其中,0AL 开发最基本的一步是板级支持包(BSP),而 BootLoader 设计则在BSP 开发中具有极为关键的地位
1.什么是BootLoader 嵌入式系统的启动代码一般由两部分构成:引导代码和操作系统执行环境的初始化代码
其中引导代码一般也由两部分构成:第一部分是板级、片级初始化代码,主要功能是通过设置寄存器初始化硬件的工作方式,如设置时钟、中断控制寄存器等,完成内存映射、初始化MMU 等
第二部分是装载程序,将操作系统和应用程序的映像从只读存储器装载或者拷贝到系统的RAM 中并执行
(1)什么是板级 BSP
BSP(Board Support Package)是板级支持包,是介于主板硬件和操作系统之间的一层,主要是为了支持操作系统,使之能够更好的运行于硬件主板
不同的操作系统对应于不同形式的BSP,例如 WinCE 的BSP 和Linux的BSP 相对于某CPU 来说尽管实现的功能一样,可是写法和接口定义是完全不同的
所以,BSP 一定要按照该系统BSP 的定义形式来写,这样才能与上层 OS 保持正确的接口,良好的支持上层 OS
(2)什么是Boot Loader 在BSP 中有一个重要的组成部分就是BootLoader,它是在操作系统内核运行之前运行的一段小程序
通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,为调用操