热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux之Bootloader介绍

1.概述Bootloader是在系统上电时开始执行一段小程序,主要功能是初始化硬件设备、准备好软件环境,最后调用操作系统内核。Bootloader包含两种不同的操作模式:“启动加载

1.概述



  • Bootloader是在系统上电时开始执行一段小程序,

  • 主要功能是初始化硬件设备、准备好软件环境,最后调用操作系统内核。

Bootloader包含两种不同的操作模式: “启动加载”模式和“下载”模式,



  • 启动加载模式:这种模式也称为“自主”模式。也就是 Bootloader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。这种模式是嵌入式产品发布时的通用模式。工作在启动加载模式时,uboot会自动执行bootcmd命令,比如:bootcmd=“nand read 0x100000 0x80000000 0x300000; bootm 0x80000000”。



  • 下载模式:在这种模式下,目标机上的 Bootloader 将通过串口连接或网络连接等通信手段从主机(Host)下载文件,比如:下载内核映像和根文件系统映像等。从主机下载的文件通常首先被 Bootloader 保存到目标机的 RAM 中,然后再被 Bootloader 写到目标机上的FLASH 类固态存储设备中。Bootloader 的这种模系统是在更新时使用。工作于这种模式下的Bootloader 通常都会向它的终端用户提供一个简单的命令行接口。Bootloader 与主机之间进行文件传输常通过以太网连接并借助TFTP协议来下载文件。Ps:tftp a0000000 uImage;tftp b0000000 ramdisk.bin;tftp 90000000 fsl-ls1046a-rdb.dtb


2.Bootloader中典型分区结构图



  • Bootloader是上电后的第一个程序。

  • Boot parameteres分区中可设置的参数(IP,串口,传递给内核的命令行参数)。

  • DTB设备树文件

  • Rootfs文件系统


3.Bootloader启动流程

Bootloader的启动流程一般分两个阶段:

Stage1(阶段一主要通过汇编语言实现,依赖cpu体系结构初始化



  • 进行硬件的初始化(watchdog,ram初始化)。复制Stage2阶段代码到RAM空间。

  • 为Stage2加载代码准备RAM空间。

  • 设置好栈。

  • 跳转到第二阶段代码的入口点。

Stage2(阶段2主要通过c语言实现,具有好的可读性和移植性)



  • 初始化该阶段所用到的硬件设备。

  • 检测系统内存映射。

  • 将uImage ,Rootfs,dtb文件从flash读取到RAM内存中。

  • 设置内核启动参数。(如通过寄存器传递设备树文件的内存地址)

 



推荐阅读
  • 微信小程序发布引起轰动
    首页资讯人物态度新闻段子知识产品公司活动专题黑镜物是No!登录为什么微信深夜发布的“小程序”引动了开发者的大地震?盛威12小时前新闻传说中的微信“应用号”终于要来了& ... [详细]
  • Lunix历史及如何学习
    1.Lunix是什么1.1Lunix是操作系统还是应用程序Lunix是一套操作系统,它提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构, ... [详细]
  • 1.声明onShareAppMessage函数  onShareAppMessage(){         return{     ... [详细]
  • 找名字有空格的人,复制他的名字里面带的空格,再粘贴到自己的名字后面哪里就可以了微信无名称怎么设置。 ... [详细]
  • 一步一步学EF系列【4、升级篇 实体与数据库的映射】
    之前的三张为基础篇,如果不考虑架构问题,做一般的小程序,以足够用了。基本的增删改查也都有了。但是作为学习显然是不够的。通过之前三章的学习,有没有发现这样写有什么问题,有没有觉得繁琐 ... [详细]
  • 看完这篇还搞不懂HTTPS,就来找我!
    本文将为大家详细梳理一下H ... [详细]
  • phpcms v9无法连接数据库怎么办
    CMS教程|PHPCMSphpcmsCMS教程-PHPCMSqq骂人源码,vscode搜索不到中文插件,ubuntu输入法下载,f14tomcat,sqliteknex,网页设计图 ... [详细]
  • 历史指对人类社会过来的事件和流动,以及对这些事件行为有零碎的记录、钻研和诠释。历史是文化的传承,积攒和扩大,是人类文明的轨迹。APISpace的历史上的 ... [详细]
  • 最近因为在准备面试,所以看了不少面试题。每个都仔细分析,争取不留死角并解决自己的所有疑惑,同时也提高编程水平。今天偶然发现对for循环语句的头部执行顺序还有一点小疑惑,虽然经常使用,但往 ... [详细]
  • 微信小程序中如何获取当前位置经纬度以及地图显示
    小编给大家分享一下微信小程序中如何获取当前位置经纬度以及地图显示,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅 ... [详细]
  • 关于小程序开发大家最关心的三大问题
    关于小程序开发大家最关心的三大问题小程序从去年1月9日开始上线,经过一年时间,据统计,微信已经为小程序开放了100+能力。无论是从搜索入口,线下场景,微信群好友,只要有微信可以 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文讨论了如何在微信支付宝两套小程序中生成一张二维码,实现支付宝扫码进入支付宝小程序和微信扫码进入微信小程序的对应桌号进行点餐的功能,提供了一些实现方案供参考。 ... [详细]
  • 在线教育平台的搭建及其优势
    在线教育平台的搭建对于教育发展来说是一次重大进步。未来在线教育市场前景广阔,但许多老师不知道如何入手。本文介绍了在线教育平台的搭建方法以及与传统教育相比的优势,包括时间、地点、空间的灵活性,改善教育不公平现象以及个性化教学的特点。在线教育平台的搭建将为学生提供更好的教育资源,解决教育不公平的问题。 ... [详细]
author-avatar
微公号莆田鞋园
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有