《嵌入式系统引导程序课件.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统引导程序课件.ppt(23页珍藏版)》请在三一办公上搜索。
1、第6章 嵌入式系统引导,引导程序与固件,计算机是在程序控制下自动运行的电子设备 系统上电或复位后,微处理器会从特定的地址读取第一条指令 没有操作系统的简单嵌入式计算机,系统上电后,通常直接进入用户应用程序 有操作系统的计算机中,上电后首先运行的是一个标准化的软件引导程序(Bootloader)固化在ROM/flash中的软件,称为固件(Firmware),PC机的引导程序BIOS,BIOS(Basic Input Output System) 固化到计算机主板上的ROM芯片中的一组程序,BIOS的主要内容,上电自测试程序。PC机启动时,首先进入ROM BIOS,接着执行加电自检POST(Pow
2、er-on self test) 系统参数设置:用于设置CMOS RAM 中的各项参数中断服务程序 :BIOS中段服务程序是软件与硬件之间的一个编程接口,PC软件通过调用这些服务程序实现对硬件模块的控制 加载操作系统 :在机器启动时,系统ROM BIOS首先读取磁盘引导记录进内存,然后由引导记录读取磁盘操作系统重要文件进内存,从而启动系统,BIOS的启动流程,嵌入式系统软件的四个层次,引导加载程序Bootloader操作系统内核(任务管理、内存管理、设备驱动)文件系统、图形用户界面应用软件,ARM7开发板中的固件,嵌入式系统Flash典型空间分配,嵌入式系统常见引导程序,U-Boot,支持多种
3、微处理器,如x86、PowerPC、ARM、MIPS等。VIVI,韩国MIZI公司开发的专门用于ARM处理器的一种引导程序。 BLOB,支持多种CPU,包括SA1100,SA1110,PXA255,PXA270等,用户可以根据目标板的特性进行定制。RedBoot,一个专门为嵌入式系统定制的引导程序,最初由Redhat开发。ARMboot,一个支持ARM和StrongARM 处理器的引导程序。用户自定义Bootloader,嵌入式系统引导程序功能,硬件初始化提供人机交互命令支持目标机与开发机之间的通信支持Flash烧写加载启动嵌入式操作系统,Bootloader的两种操作模式,启动加载模式:自动
4、加载并启动操作系统,不需要用户参与下载模式:用户可通过系统控制台用命令行的方式向系统发出控制命令。用户常在该模式下使用下载命令,通过串口、以太网等从开发机下载文件,Bootloader程序的两个组成部分,Stage 1:存放与CPU 体系结构相关的代码,其代码短小精悍,易升级,通常用汇编语言编写Stage 2:通常用C 语言编写,可以实现更复杂的功能,具有更好的可读性和可移植性,Bootloader程序运行流程,Bootloader的Stage 1,硬件设备初始化:屏蔽所有中断, 设置CPU 速度和时钟频率, RAM 初始化等为加载Bootloader 的stage2 准备RAM空间拷贝Boo
5、tloader 的stage2 到RAM空间中设置好堆栈,为执行C 语言代码作好准备跳转到stage2 的C 入口点,Stage 1阶段的物理内存布局,Bootloader的Stage 2,其它硬件设备的初始化 检测系统内存映射 将操作系统内核映像及文件系统映像从 Flash读取到系统RAM中 为内核设置启动参数 调用操作系统内核,U-BOOT,U-Boot是一种应用广泛的嵌入式引导程序由fadsrom、8xxROM及PPCBoot逐步发展演化而来2002年11月,PPCBoot发布了最后一个版本2.0.0版,并改名为U-Boot 0.1.0与Linux一样,U-Boot遵循GPL,是一个开放
6、源代码软件,GPL: General Public License,通用公共许可协议,U-Boot的特点,开放源代码 支持多种嵌入式操作系统 支持多种不同体系结构的处理器 具有较高的可靠性和稳定性 提供丰富的用户接口命令 支持串口、网络文件下载 丰富的设备驱动程序 有完整的软件文档与良好的技术支持,U-Boot的命令,命令类型:信息命令、内存命令、Flash命令、运行控制命令、网络命令、环境变量命令命令功能:环境参数设置、内存检测、操作系统引导、程序测试、Flash擦除与烧写,U-BOOT源文件分类,与处理器体系结构或开发板硬件直接相关的程序目录与处理器体系结构无关的通用函数或者驱动程序目录 U-Boot的独立工具、二次开发例程及相关设计文档目录,U-Boot源码结构,U-BOOT启动过程,课后作业,下载U-BOOT源代码及相关文档,建立开发环境,选定目标平台,尝试编译,生成目标代码。,