WinCE的Boot Loader是如何工作的

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的入口地址执行。

posted @ 2012-10-15 21:43  jbnie  阅读(279)  评论(0编辑  收藏  举报