Windows CE 6.0 Boot Loader工作流程解析
3星 · 超过75%的资源 需积分: 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,以适应特定硬件平台的需求。
2009-10-14 上传
2015-05-21 上传
2008-08-01 上传
2020-05-13 上传
2011-08-07 上传
2009-06-17 上传
2020-10-21 上传
2008-02-01 上传
myspor
- 粉丝: 26
- 资源: 75