|
WinCE的Boot Loader是如何工作的
前提:此Boot Loader是位于NOR FLASH的零地址的,CPU配置成复位后在此执行。
1.前期CPU初始化:
l 进入超级用户模式(Supervisor Mode)。显式通过软件指令初始化进入。
l 清除指令和数据cache。
l 清除TLBs(Translation Look-aside Buffers)。
l Drain the write and fill buffers。
l 配置并使能RAM控制器。
l 确保中断使能位已清除、中断屏蔽位被设置。
l 初始化使用到的PLLs(Phase-Locked Loops)。
l 初始化必需的定时器,如RTC、系统滴答(tick counter)。
2.[可选项]将自身的运行时映像重定位到RAM内运行。
3.[可选项]使能MMU和cache。
4.拷贝copy-section data到目标位置/内存。如初始化全局变量。
5.创建并布署一块与OS共享的保留内存区,用来传递部分启动变量或信息到OS。
6.前期板级初始化:
l 初始化调试用串口。
l [可选项]提供一个配置启动选项的用户菜单。
l 初始以太网控制器。
7.[可选项]从DHCP服务器获得一个IP地址。或分配一个静态IP地址。
8.初始化TFTP连接。PB用来从开发机上下载运行.bin文件到设备。
9.接收.bin文件的分包记录、校验并存储到正确的地址。如果.bin文件已存储在FLASH中则加载之。
10. 获取用户通过PB设置的参数。如boot clean和是否建立KITL连接,IP及端口设置。
11. 确保系统状态被正确设置,转到所下载的.bin的入口地址执行。
|
|