- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]4-Bootloader
1、 Bootloader的概念 Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过它,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对 Boot Loader 归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。 Boot Loader 所支持的 CPU 和嵌入式板 通常,每种CPU 体系结构都有不同的 BootLoader。有些 Boot Loader 也支持多种体系结构的 CPU,比如 U-Boot 就同时支持 ARM 体系结构和MIPS 体系结构。 移植的工作,Bootloader的板级移植 2、 Linux的Bootloader 系统配置、中断接管、引导 装载内核、根文件系统、参数传递、内核调试、内核和根文件系统的下载等等 常见的uClinux(Linux)的Bootloader: Redboot Blob Vivi Uboot armBoot… Boot Loader 的安装媒介 系统加电或复位后,所有的处理器通常都从某个预先安排的地址上取指令。比如,ARM在复位时从地址0x0取指。 嵌入式系统中通常都有某种类型的固态存储设备(比如:ROM、EEPROM 或 FLASH 等)被映射到这个预先安排的地址上。因此在系统加电后,处理器将首先执行 Boot Loader 程序 Bootloader是最先被系统执行的程序 固态存储设备的典型空间分配结构 Boot Loader的控制方式 主机和目标机之间一般通过串口建立连接,Boot Loader 软件在执行时通常会通过串口来进行通讯,比如:输出打印信息到串口,从串口读取用户控制字符 也可以通过JTAG等其他接口通讯 3、 Boot Loader 的操作模式 大多数 Boot Loader 都包含两种不同的操作模式: 启动加载模式 下载模式 最终用户的角度看,Boot Loader 的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别 启动加载模式 启动加载模式,称为“自主”(Autonomous)模式 Boot Loader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。这种模式是 Boot Loader 的正常工作模式,因此在嵌入式产品发布的时侯,Boot Loader 显然必须工作在这种模式下。 下载模式 在下载模式下,目标机上的 Boot Loader 将通过串口连接或网络连接等通信手段从主机下载文件,如:下载内核映像和根文件系统映像等 从主机下载的文件通常首先被 Boot Loader 保存到目标机的 RAM 中,然后再被 Boot Loader 写到目标机上的FLASH 类固态存储设备中。 这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用 Boot Loader 的这种工作模式。 工作于这种模式下的 Boot Loader 通常都会向它的终端用户提供一个简单的命令行接口。 BLOB的交叉编译 1)解压 BLOB的交叉编译 2、编译 Blob 的下载 使用JTAG下载 BootLoader 与主机通信 串口传输,传输协议通常是 xmodem/ymodem/zmodem 。程序简单,传输的速度比较慢,115200bps 通过以太网传输是个好方法。TFTP 协议是最常见的方式 4、 BL的主要任务与典型结构框架 大多数 Boot Loader 都分为 stage1 和 stage2 两大部分。 依赖于处理器体系结构和板级初始化的代码,通常都放在 stage1 中,用汇编言实现 而 stage2 则通常用C语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和可移植性。 Boot Loader 的 stage1 通常包括以下步骤(以执行的先后顺序): 硬件设备初始化。 为加载 Boot Loader 的 stage2 准备 RAM 空间。 拷贝 Boot Loader 的 stage2 到 RAM 空间中。 设置好堆栈。 跳转到 stage2 的 C 入口点。 Boot Loader 的 stage2 (1/2) 通常包括以下步骤(以执行的先后顺序): 初始化本阶段要使用到的硬件设备。 检测系统内存映射(memory map)。 将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中。 为内核设置启动参数。 调
您可能关注的文档
最近下载
- 《《机械创新设计》课程标准.doc VIP
- 小学残疾儿童送教上门教案(40篇).pdf
- 菜品知识培训.pptx
- 旅游收入与分配-(精选·公开·课件).ppt
- 2023年长三角一体化示范区苏州湾投资发展(江苏)有限公司人员招聘考试参考题库及答案解析.docx
- 高压氧治疗对于颈椎病患者的影响分析.pptx
- 2021年长三角一体化示范区苏州湾投资发展(江苏)有限公司招聘试题及答案解析.docx
- 尼可地尔夜景游览欣赏岛上迷人的夜间灯光和美景.pptx
- 2023年长三角一体化示范区苏州湾投资发展(江苏)有限公司招聘考试试题及答案解析.docx
- 第六单元跨学科实践活动5基于碳中和理念设计低碳行动方案教学设计-2024-2025学年九年级化学人教版上册.docx
文档评论(0)