Windows CE 6.0 Boot Loader工作流程解析

3星 · 超过75%的资源 需积分: 9 9 下载量 119 浏览量 更新于2024-09-23 收藏 97KB PDF 举报
"WinCE6中Boot Loader工作流程文档,适用于WinCE6开发初学者,详细阐述了Boot Loader从启动到加载操作系统的整个流程,包括各个关键函数及其在源码文件的位置。" 在Windows CE 6.0操作系统中,Boot Loader扮演着至关重要的角色,它是系统启动的第一步,负责初始化硬件环境并加载操作系统映像到内存中。以下是WinCE6 Boot Loader的主要工作流程: 1. **Main()** 函数:这是Boot Loader的入口点,通常在`%_TARGETPLATROOT%\SRC\BOOTLOADER\EBOOT\startup.s`中定义,用于启动汇编语言级别的初始化。 2. **BootloaderMain()** 函数:位于`%_TARGETPLATROOT%\SRC\BOOTLOADER\EBOOT\main.c`,是Boot Loader的C语言部分,负责更高级别的初始化任务。 3. **Startup()**:这个函数初始化CPU和系统硬件,包括禁用看门狗、关闭中断、检查休眠状态等。此外,它还调用`OEMDebugInit()`来初始化调试端口,如串口。 4. **OEMDebugInit()**:根据目标平台定制,初始化调试接口,便于开发者进行问题排查。 5. **清空TLB和使Cache失效**:这是为了确保内存访问的正确性,防止旧的数据缓存影响新的系统启动。 6. **OEMPlatformInit()**:执行平台特定的初始化,如初始化BSP参数结构体,初始化Flash,以及调用`InitEthDevice()`,`FMD_Init()`,`AM29LV800_Init`和`InitDisplay()`等函数,分别初始化以太网控制器、Flash存储、Nand Flash驱动和显示屏。 7. **复制Boot Loader到内存**:Boot Loader将自身从非易失性存储(如Flash)复制到RAM,以便更快地执行后续操作。 8. **判断启动模式**:Boot Loader会根据系统状态决定是正常启动还是从休眠中恢复。 9. **调用OEMPreDownload()**:准备下载OS映像,进行必要的硬件配置。 10. **开启MMU**:初始化Memory Management Unit (MMU),以管理内存空间和保护操作系统。 11. **DownloadImage()**:从网络或本地Flash下载操作系统映像。 12. **OEMLaunch()**:一旦OS映像被加载,Boot Loader将控制权交给操作系统,开始启动过程。 这个工作流程详细列出了每个步骤和对应的源代码位置,对于WinCE6的开发者来说,是理解和调试Boot Loader的重要参考资料。了解这一流程有助于开发者更好地定制Boot Loader,以适应特定硬件平台的需求。