ARM嵌入式Linux驱动程序开发课件作者廉文娟第4章节Bootloader分析与设计.pptVIP

  • 4
  • 0
  • 约8.4千字
  • 约 45页
  • 2017-11-12 发布于广东
  • 举报

ARM嵌入式Linux驱动程序开发课件作者廉文娟第4章节Bootloader分析与设计.ppt

第4章Bootloader分析与设计 * 4.1嵌入式系统的引导代码 4.1.1初识Bootloader 引导加载程序BootLoader包括固化在固件(firmware)中的boot代码(可选)和BootLoader两大部分。 在PC中,BootLoader是系统加电后运行的第一段软件代码。PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的引导程序一起组成。 4.1嵌入式系统的引导代码 4.1.1初识Bootloader bootloader作为引导和加载内核映像的工具,必须做到以下几点: (1) 初始化RAM(必需):bootloader必须能够初始化RAM,因为将来系统要通过他保存一些Volatile数据。 (2) 初始化串口(可选,推荐):bootloader应该要初始化及使能至少一个串口,通过他和控制台联系,进行一些debug的工作,甚至和PC通信。 (3?) 启动内核映像(必需):Bootloader启动内核映像的方法是通过跳转语句直接跳转至内核映像的第一句指令语句。 4.1嵌入式系统的引导代码 4.1.1初识Bootloader 大多数BootLoader都包含两种不同的操作模式: (1)启动加载模式:自主(Autonomous)模式或内核启动模式 (2)下载模式:这种模式也可以称为网络启动模式。 4.1嵌入式系统的引导代码 4.1.2 Bootloader的启动流程 Bootloader的启动过程可以是单阶段的,也可以是多阶段的。 从固态存储设备上启动的BootLoader大多数是两阶段的启动过程,也就是启动过程可以分为stage 1和stage 2两部分。 4.1嵌入式系统的引导代码 4.1.2 Bootloader的启动流程 Stage1直接运行在固态存储设备上,通常包括以下5个步骤: (1)硬件设备初始化 4.1嵌入式系统的引导代码 4.1.2 Bootloader的启动流程 Stage1直接运行在固态存储设备上,通常包括以下5个步骤: (2)为加载Bootloader的stage2准备RAM空间 4.1嵌入式系统的引导代码 4.1.2 Bootloader的启动流程 Stage1直接运行在固态存储设备上,通常包括以下5个步骤: (3)拷贝Bootloader的stage2到RAM空间中 (4)设置好堆栈指针sp。 (5)跳转stage2的C入口点 4.1嵌入式系统的引导代码 4.1.2 Bootloader的启动流程 Bootloader?的stage2的具体步骤: (1)初始化本阶段使用到的硬件设备 (2)检测系统内存映射(memory?map) 4.1嵌入式系统的引导代码 4.1.2 Bootloader的启动流程 Bootloader?的stage2的具体步骤: (3)将kernel映像和根文件系统映像从flash读到RAM空间 (4)为内核设置启动参数 4.1嵌入式系统的引导代码 4.1.2 Bootloader的启动流程 Bootloader?的stage2的具体步骤: (5)调用内核 4.2?常用的嵌入式Linux BootLoader 4.2.1?ARMboot与U-Boot ARMboot是一个ARM平台的开源固件项目,它特别基于PPCBoot,一个为PowerPC平台上的系统提供类似功能的姊妹项目。 支持多种类型的FLASH 允许映像文件经由BOOTP、DHCP、TFTP从网络传输; 支持串行口下载S-record或者binary文件 允许内存的显示及修改 支持jffs2文件系统等 4.2?常用的嵌入式Linux BootLoader 4.2.1?ARMboot与U-Boot U-Boot(Universal?Bootloader)是由开源项目PPCBoot发展起来的,ARMboot并入了PPCBoot,和其他一些arch的Loader合称U-Boot。 SCC/FEC以太网支持? BOOTP/TFTP引导? IP,MAC预置功能? 在线读写FLASH,DOC,?IDE,IIC,EEROM,RTC 支持串行口kermit,S-record下载代码? 识别二进制、ELF32、pImage格式的Image,对Linux引导有特别的支持? 监控(minitor)命令集:读写I/O,内存,寄存器、内存、外设测试功能等 脚本语言支持(类似BASH脚本) 支持WatchDog,LCD?logo,状态指示功能等 4.2?常用的嵌入式Linux BootLoader 4.2.2?Vivi Vivi是韩国的mizi公司专门针对ARM9处理器设计的一款Bootloader。它的特点是操作简便

文档评论(0)

1亿VIP精品文档

相关文档