启动程序BootLoader的分析
BootLoader分析 BootLoader是一段小程序,在操作系统内核运行之前运行,用于初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境设置成一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。BootLoader严重地依赖于硬件而实现的,特别是在嵌入式系统中。 BootLoader的主要功能包括: 1. 初始化CPU速度 2. 初始化内存,包括启用内存库,初始化内存配置寄存器等 3. 初始化中断控制器,在系统启动时,关闭中断,关闭看门狗 4. 初始化串行端口(如果在目标上有的话) 5. 启用指令/数据高速缓存 6. 设置堆栈指针 7. 设置参数区域并构造参数结构和标记 8. 执行POST(加电自检)来标识存在的设备并报告有何问题 9. 为电源管理提供挂起/恢复支持 10. 传输操作系统内核镜像文件到目标机 BootLoader的实现方式有两种:ROM启动和RAM启动。ROM启动就是用XIP技术直接在Flash中执行操作系统镜像文件;RAM启动就是指把内核镜像从Flash复制到RAM中,然后再将PC指针跳转到RAM中的操作系统启动地址。 在嵌入式系统中,BootLoader的意义与作用与PC上的BIOS有点类似,它对开发板上的主要部件如CPU、SDRAM、FLASH、串口等进行了初始化,可以使用BootLoader下载文件到开发板,可以浏览目录,可以烧录flash,可以启动系统等,实际上,一个功能比较强大的BootLoader已经相当于一个微型的操作系统了。 BootLoader和主机之间文件传输的通信协议最常见的情况就是,目标机上的BootLoader通过串口与主机之间进行文件传输,传输协议通常是xmodem/ymodem/zmodem协议中的一种。但是,串口传输的速度是有限的,因此通过以太网连接并借助TFTP协议来下载文件是个更好的选择。 BootLoader选项程序员可以在自己的BootLoader中实现不同的启动选项,在此将对一些常用的选项进行讨论。如:BootLoader通信方式,串口中的启动功能等。最常见的嵌入式系统目标机和主机通信的模型。开发人员可以使用超级终端通过串口向目标机发送命令,由于串口协议是最简单、可靠的因此经常被使用在系统未启动前的阶段。
剩余23页未读,继续阅读
- 粉丝: 0
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- System.DivideByZeroException(解决方案).md
- System.FormatException(解决方案).md
- System.IndexOutOfRangeException(解决方案).md
- System.InvalidCastException(解决方案).md
- System.InvalidOperationException(解决方案).md
- System.IO.DirectoryNotFoundException(解决方案).md
- System.IO.FileLoadException(解决方案).md
- System.IO.EndOfStreamException(解决方案).md
- System.IO.FileNotFoundException(解决方案).md
- System.IO.IOException(解决方案).md
- System.NullReferenceException(解决方案).md
- System.OverflowException(解决方案).md
- System.OutOfMemoryException(解决方案).md
- System.PlatformNotSupportedException(解决方案).md
- System.RankException(解决方案).md
- System.TimeoutException(解决方案).md