第1页:嵌入式系统引导程序章节封面与导览
嵌入式系统引导程序章节封面与导览
本页以图示为主,展示嵌入式系统原理与设计课件嵌入式系统引导程序章节封面与导览部分的相关内容,源文件未提取到更多文字,建议对照原课件图片查看。
第2页:PC中的引导程序
PC中的引导程序
- 内容
- PC中的引导程序
- 嵌入式系统中的引导程序
- Bootloader的启动流程
- U-Boot简介
第3页:引导程序与固件
引导程序与固件
- 引导程序与固件
- 计算机是在程序控制下自动运行的电子设备
- 系统上电或复位后,微处理器会从特定的地址读取第一条指令
- PC:FFFF0H
- ARM、51:0000H
- HCS08:FFFEH
- 没有操作系统的简单嵌入式计算机,系统上电后,通常直接进入用户应用程序
- 有操作系统的计算机中,上电后首先运行的是一个标准化的软件——引导程序(Bootloader
- 固化在ROM/flash中的软件,称为固件(Firmware
第4页:BIOS
BIOS
- BIOS
- BIOS(BasicInputOutputSystem
- 固化到计算机主板上的ROM芯片(Award/Phoenix/AMI)中的一组程序
第5页:BIOS的主要内容
BIOS的主要内容
- BIOS的主要内容
- 上电自测试程序
- PC机启动时,首先进入ROMBIOS,接着执行加电自检—POST(Power-onselftest
- 系统参数设置
- 中断服务程序
- BIOS中端服务程序是软件与硬件之间的一个编程接口,PC软件通过调用这些服务程序实现对硬件模块的控制
- 加载操作系统
- 在机器启动时,系统ROMBIOS首先读取磁盘引导记录进内存,然后由引导记录读取磁盘操作系统重要文件进内存,从而启动系统
第6页:引导程序
引导程序
BIOS的启动流程上电POST测试正常?查找并加载操作系统引导程序
第7页:嵌入式系统中软件的四个层次
嵌入式系统中软件的四个层次
- 嵌入式系统中软件的四个层次
- 引导程序——Bootloader
- 操作系统内核(任务管理、内存管理、设备驱动
- 文件系统、(图形用户界面
- 应用软件Bootloader操作系统内核图形用户界面(GUI)文件系统用户应用程序
第8页:ARM7开发板中的固件
ARM7开发板中的固件
第9页:嵌入式系统常见引导程序
嵌入式系统常见引导程序
- 嵌入式系统常见引导程序
- U-Boot
- 支持多种微处理器,如x86、PowerPC、ARM、MIPS等
- VIVI
- 韩国MIZI公司开发的专门用于ARM处理器的一种引导程序
- BLOB
- 支持多种CPU,包括SA1100,SA1110,PXA255,PXA270等,用户可以根据目标板的特性进行定制
- RedBoot
- 一个专门为嵌入式系统定制的引导程序,最初由Redhat开发
- ARMboot
- 一个支持ARM和StrongARM处理器的引导程序
- 用户自定义Bootloader
第10页:嵌入式系统引导程序功能
嵌入式系统引导程序功能
- 嵌入式系统引导程序功能
- 硬件初始化
- 加载启动嵌入式操作系统
- 提供人机交互命令
- 支持目标机与开发机之间的通信
- 支持Flash烧写
第11页:嵌入式系统中的引导程序
嵌入式系统中的引导程序
- 嵌入式系统Flash典型空间分配引导程序引导参数操作系统内核文件系统
第12页:Bootloader的两种操作模式
Bootloader的两种操作模式
- Bootloader的两种操作模式
- 启动加载模式
- 下载模式
- 用户可通过系统控制台用命令行的方式向系统发出控制命令。用户常在该模式下使用下载命令,通过串口、以太网等从开发机下载文件
第13页:Bootloader运行流程
Bootloader运行流程
Bootloader的启动过程基本硬件初始化将Stage2代码复制到RAM并执行将操作系统内核映像和文件系统映像复制到RAM串口是否有按键输入?启动操作系统内核进入命令行下载模式Stage1Stage2否是Stage1:存放与CPU体系结构相关的代码,其代码短小精悍,易升级,通常用汇编语言编写Stage2:通常用C语言编写,可以实现更复杂的功能,具有更好的可读性和可移植性
第14页:Bootloader的Stage1基本硬
Bootloader的Stage1基本硬
Bootloader的Stage1基本硬件初始化将Stage2代码复制到RAM并执行将操作系统内核映像和文件系统映像复制到RAM串口是否有按键输入?启动操作系统内核进入命令行下载模式Stage1Stage2否是1硬件设备初始化:屏蔽所有中断,设置CPU速度和时钟频率,RAM初始化等2为stage2的Bootloader加载准备RAM空间3)拷贝stage2的Bootloader到RAM空间中4设置好堆栈,为执行C语言代码作好准备5跳转到stage2的C入口点
第15页:Stage1阶段的物理内存布局
Stage1阶段的物理内存布局
Stage1阶段的物理内存布局Stage1为Stage2的代码准备的RAM空间···
第16页:Bootloader的Stage2基本硬
Bootloader的Stage2基本硬
Bootloader的Stage2基本硬件初始化将Stage2代码复制到RAM并执行将操作系统内核映像和文件系统映像复制到RAM串口是否有按键输入?启动操作系统内核进入命令行下载模式Stage1Stage2否是1其它硬件设备的初始化2检测系统内存映射3将操作系统内核映像及文件系统映像从Flash读取到系统RAM中4)为内核设置启动参数5)调用操作系统内核
第17页:U-BOOT简介
U-BOOT简介
- U-BOOT简介
- UniversalBootLoader
- U-Boot是一种应用广泛的嵌入式引导程序
- 由fadsrom、8xxROM及PPCBoot逐步发展演化而来
- 2002年11月,PPCBoot发布了最后一个版本2.0.0版,并改名为U-Boot0.1.0
- 与Linux一样,U-Boot遵循GPL,是一个开放源代码软件
- GPL:GeneralPublicLicense,通用公共许可协议
第18页:U-BOOT简介:与
U-BOOT简介:与
- U-BOOT简介
- 与Linux一样,U-Boot遵循GPL,是一个开放源代码软件
- GPL:GeneralPublicLicense,通用公共许可协议
第19页:U-BOOT特点
U-BOOT特点
- U-BOOT特点
- 开放源代码
- 支持多种嵌入式操作系统
- 支持多种不同体系结构的处理器
- 具有较高的可靠性和稳定性
- 提供丰富的用户接口命令
- 支持串口、网络文件下载
- 丰富的设备驱动程序
- 有完整的软件文档与良好的技术支持
第20页:U-BOOT的命令
U-BOOT的命令
- U-BOOT的命令
- 类型–信息命令–内存命令–Flash命令–运行控制命令–网络命令–环境变量命令
- 功能–环境参数设置–内存检测–操作系统引导–程序测试–Flash擦除与烧写
第21页:U-BOOT源文件分类
U-BOOT源文件分类
- U-BOOT源文件分类
- 与处理器体系结构或开发板硬件直接相关的程序目录
- 与处理器体系结构无关的通用函数或者驱动程序目录
- U-Boot的独立工具、二次开发例程及相关设计文档目录
第22页:U-BOOT
U-BOOT
U-BOOT源文件分类平台独立的通用源代码处理器相关源代码开发板相关源代码通用设备驱动程序头文件体系结构相关源代码通用库函数网络相关程序代码文件系统相关代码上电自检程序代码硬盘接口相关程序独立应用程序例程相关工具源代码开发使用文档cpuboardlib_xxxdriverscommonincludelib_genericnetfspostdiskexamplestoolsdocU-Boot代码根目录处理器相关各子目录开发板相关子目录根目录下体系结构相关各子目录
第23页:U-BOOT启动过程
U-BOOT启动过程
- 设置映像文件的入口start.o设置异常向量表执行复位中断跳转程序调用cpu_init_crit初始化CPU及中断控制器初始化内存寄存器将stage2相关二进制代码由Flash或ROM复制到RAM中设置堆栈指针寄存器并执行跳转指令进入stage2,执行入口程序start_armboot执行init_sequence完成系列硬件初始化执行mainloop进入自动加载或工作循环stage2
- U-BOOT启动过程stage1
第24页:下载U-BOOT源代码及相关
下载U-BOOT源代码及相关
- 课后作业
- 下载U-BOOT源代码及相关文档,建立开发环境,选定目标平台,尝试编译,生成目标代码
第25页:U-BOOT
U-BOOT
本页以图示为主,展示嵌入式系统原理与设计课件U-BOOT部分的相关内容,源文件未提取到更多文字,建议对照原课件图片查看。