WINCE5.0 PXA270 BSP启动流程详解
需积分: 15 132 浏览量
更新于2024-12-30
收藏 54KB PDF 举报
本文档详细介绍了Windows CE 5.0 (WinCE5.0) 在PXA270平台上的板级支持包(BSP, Board Support Package)启动流程。这个流程主要由以下几个关键步骤组成:
1. EBOOT启动阶段:
- `startup.s` 文件负责初始化硬件,如关闭看门狗、禁止中断、初始化GPIO等,但这些具体实现未提供。
- 初始化系统时钟,同样未提及具体的实现细节。
- 调整内存控制器和FLASH控制器,确保系统的内存管理有效。
- 设置堆栈,为后续程序运行提供内存空间。
- 从FLASH中复制EBOOT代码至RAM,并进行校验,如果复制失败,程序会停止;否则,继续执行。
- 建立内存映射和设置MMU,为系统内存分配和保护做好准备。
- 转入`main.c`的`main`函数,执行真正的操作系统初始化。
2. `main.c` 中的`BootloaderMain`函数:
- 这个函数是BSP核心部分,调用`blcommon.c`中的BootloaderMain,通常情况下,它不会返回,除非遇到异常情况。
- 之后调用`utils.c`的`SpinForever`函数,但在实际流程中,这部分并不会被执行。
3. `blcommon.c` 内部函数:
- `KernelRelocate` 函数将启动相关的全局变量从FLASH复制到SDRAM,如果复制过程中出现错误,会导致程序终止。
- 初始化调试串口和硬件平台,如RTC,并通过串口给出EBOOT启动提示,让用户选择引导WinCE内核或进入EBOOT菜单。
- 用户的选择决定后续操作:引导内核,执行内核下载或者进入EBOOT菜单设置参数。
4. 启动提示与下载/内核选择:
- 打印启动信息,然后根据用户输入或预设条件(下载或来自Flash),调用相应的函数,如下载内核的`DownloadImage`函数。
- 对于下载的内核,会继续执行下载过程,然后加载到内存中。
5. 内核加载和最终初始化:
- 如果是从下载的内核启动,执行`OEMPreDownload`函数来确认并可能跳转到进一步的加载步骤。
- 最终,加载的内核会被启动,并显示系统启动提示信息。
这个文档为开发人员提供了WinCE5.0在PXA270平台上运行的基础知识,了解启动流程对于理解和调试嵌入式系统设计至关重要。通过深入理解这些步骤,开发者可以更好地定位问题,优化性能,以及定制符合特定应用需求的启动过程。
107 浏览量
2010-09-24 上传
2010-09-24 上传
2009-06-02 上传
2011-12-22 上传
120 浏览量
点击了解资源详情
176 浏览量
点击了解资源详情
firekingrr
- 粉丝: 0
- 资源: 2
最新资源
- 企业信息化建设
- 自我卡萨
- react-native
- Project-2:我们的第一个全栈应用程序!
- zxing-android-eclipse-lib
- docker-elixir:Elixir的官方Docker映像
- GameOfLife:“生活游戏”的全HTML(和JavaScript)实现
- PVP-HUB-ESPADA:Reinos-Hispanos 官方插件 || 该插件包括给你一把铁剑,FULL DIAMOND,它可以让你在HUB(大厅)中战斗
- 企业信息化
- NextJS_with_MongoDB
- discord-bot-playercount:一个不和谐的机器人,可以在不和谐状态下不断显示游戏的玩家人数
- NutnetAPI
- Data-Structures-in-Real-Life-Projects
- 中小学信息技术教育的现状与发展
- seoml
- Python-Data-Journalism:适用于数据记者工具系列的Jupyter笔记本