3、嵌入式系统的启动过程(BoodLoader)

1、系统启动过程

在这里插入图片描述
通电 - > 执行BootLoader - > 加载内核 - > 挂在根文件系统 - > 执行应用程序

Windows的启动过程:
通电 - > 执行BIOS - > 加载WinNT内核 - > 挂在文件系统 - > 执行应用程序

二、嵌入式系统的结构

在这里插入图片描述

BootLoader

1、BootLoader的概念

硬件平台通电后不会直接运行操作系统。通电之后到执行操作系统需要一个引导的过程,而这个过程需要依赖启动引导程序,所以启动引导程序被称为Boot Loader。需要注意的是,Boot Loader是统称,Boot Loader的种类很多。比如X86平台使用BIOS,arm平台使用U-Boot等都属于Boot Loader。

2、Boot Loader的作用

启动引导程序起始就是硬件平台通电后运行的一段程序,这段程序可以初始化硬件,比如建立内存的映射表。其实际目的就是为了Linux内核的正常运行做准备,就是为了建立一个合适的运行平台

3、Boot Loader的说明

Boot Loader是通用的启动引导程序,可以在不同的硬件平台上运行,如ARM、X86、PowerPC、MIPS等多种架构,但是不完全通用。也就是不能把一个Boot Loader源码在不经过修改的前提下使用在硬件平台

Boot Loader不光依赖于处理器的架构,而且还依赖硬件平台的板级硬件,就必须要对启动引导程序进行修改。比如:现在购买2块不同公司的开发板,这2块开发板的处理器用的是同一种,能不能把A公司的BootLoader直接移植到B公司的开发板使用?答案是不可以的,必须要根据B公司的开发板来修BootLoader。

4、Boot Loader的启动

在硬件通电后,CPU会去某个地址下进行取址,这个地址是由处理器决定的。一般ARM处理器都会从0x00000000这个地址取第一条指令,所以就必须把Flash的地址映射在0x00000000地址下,或者就直接把Boot Loader存储在Flash的首地址,这样CPU才可以正常操作

三、U-Boot

1、U-Boot的概念

U-Boot的全称是Universal BoodLoader,是一种通用的引导程序,属于BoodLoader的一种

Boot:初始化硬件平台,提供一个合适的环境
Loader:加载Linux内核

通用的地方

  • 多种处理器架构:U-Boot可以运行在:X86、ARM、MIPS、PowerPC等架构
  • 多种操作系统:U-Boot可以运行在:Linux、WinCE、安卓、等系统
  • 多种开发板:U-Boot可以运行在:Cortex A8、Cortex A53、Cortex A72等平台

Boot Loader的运行阶段:

(1)CPU的初始化:采用汇编语言,这部分是没有压缩过的,初始化CPU,eMMC、看门狗、Cache等,然后会解压第二部分的image(映像),然后拷贝到内存中

(2)板级的初始化:采用C语言设计,这部分代码是经过压缩的,初始化开发板的串口、LCD、网口等,然后回加载Linux内核

注意

  • 在整个Boot Loader期间,MMU(内存管理单元)都是没有被初始化的,所以CPU都是访问的物理地址

2、U-Boot的资源

U-Boot是开源的,可以在官网下载不同版本的源码,然后根据自己的硬件平台进行修改,并移植到硬件平台上
U-Boot官网:U-Boot官网

3、U-Boot的作用

(1)CPU的初始化:用汇编语言初始化Cache、时钟、看门狗、中断…

(2)板级的初始化:用C语言初始化串口、网卡、LCD…

(3)提供一些工具:进入U-Boot的控制台、提供U-Boot的命令…

(4)加载Linux内核

4、U-Boot的输出

在这里插入图片描述

5、U-Boot的命令

Uboot提供了一个控制台,在硬件平台通电后,Uboot会延时等待几秒钟(一般是3s),用户可以利用Uboot提供的命令操作。比如:烧写系统(fast boot、SD卡…)、设置环境变量。

这些操作都必须由Uboot提供的shell命令实现,shell指的是用户操作接口,shell的原理就是一个不断进行信息接收、解析、执行死循环

Uboot的控制台和Linux系统提供的终端都是采用行缓冲模式进行shell命令接收,也就是以回车键作为命令的结束但是不可以把Linux系统提供的shell命令在Uboot的控制台使用

虽然都是shell命令,但是Uboot和Linux系统采用的shell命令集是不同的,而且是不兼容的

  • 输出板级信息(bdi
    在这里插入图片描述

  • 输出环境变量(pri

  • 设置环境变量(set

  • 保存环境变量(save

  • 删除环境变量(set 变量名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/88916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DM8归档管理

开启归档 归档的格式: ARCH_NAME_DB_MAGIC[SEQNO]_日期时间.log ARCH_NAME 是在 dmarch.ini中配置的 LOCAL/REMOTE 归档名称 DB_MAGIC 是生成日志的数据库魔数 SEQNO 代表DSC 节点号,日期时间是归档日志文件的创建时间。 eg:ARCHIVE_LOCAL1_…

SpringMVC 学习(二)Hello SpringMVC

3. Hello SpringMVC (1) 新建 maven 模块 springmvc-02-hellomvc (2) 确认依赖的导入 (3) 配置 web.xml <!--web/WEB-INF/web.xml--> <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee…

redis部署与管理

目录 一、关系数据库与非关系型数据库&#xff1a; 1. 关系型数据库&#xff1a; 2.非关系型数据库&#xff1a; 二、关系型数据库和非关系型数据库区别&#xff1a; &#xff08;1&#xff09;数据存储方式不同&#xff1a; &#xff08;2&#xff09;扩展方式不同&#xf…

数据结构与算法基础-(3)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

【计算机网络】DNS原理介绍

文章目录 DNS提供的服务DNS的工作机理DNS查询过程DNS缓存 DNS记录和报文DNS记录DNS报文针对DNS服务的攻击 DNS提供的服务 DNS&#xff0c;即域名系统(Domain Name System) 提供的服务 一种实现从主机名到IP地址转换的目录服务&#xff0c;为Internet上的用户应用程序以及其他…

Pycharm在进行debug时出现collecting data如何解决?

Pycharm在进行debug时变量界面出现collecting data&#xff0c;问题如下&#xff1a; 解决方法&#xff1a;打开Setting界面&#xff0c;在Python Debugger选项中勾选下图中的Gevent compatible即可。

初识ebpf

介绍eBPF技术 当代计算机系统中&#xff0c;性能、安全性和可观察性是至关重要的关键因素。为了应对这些挑战&#xff0c;Linux 内核引入了一种名为eBPF&#xff08;extended Berkeley Packet Filter&#xff09;的强大技术。eBPF 不仅仅是一种网络数据包过滤器&#xff0c;它…

笔记1-2:

一、磁荷与磁流的引入 麦克斯韦方程组&#xff1a; 引入磁荷和磁流的概念&#xff0c;上述方程可以写成对称形式&#xff1a; 磁荷和磁流实际上不存在&#xff0c;只具有某种等效意义&#xff0c;可以把某个区域中的电磁场看成是由一组等效磁型源所产生。 对于均匀和各向同性…

gpt扣款失败,openai扣款失败无法使用-如何解决gpt扣款失败的问题?

gpt扣款失败&#xff0c;openai扣款失败无法使用。毕竟你花了钱却无法使用你所期待的服务&#xff0c;这种情况确实令人不快。但是&#xff0c; 为什么gpt扣款失败&#xff1f; 可能是由于支付问题导致的扣款失败。这包括信用卡额度不足、支付信息错误等等。如果你的支付信息…

DolphinDB x 龙蜥社区,打造多样化的数据底座

近日&#xff0c;浙江智臾科技有限公司&#xff08;以下简称“DolphinDB”&#xff09;正式签署 CLA 贡献者许可协议&#xff0c;加入龙蜥社区&#xff08;OpenAnolis&#xff09;。 DolphinDB 主创团队从 2012 年开始投入研发产品。作为一款基于高性能时序数据库&#xff0c;D…

LeetCode 1194.锦标赛优胜者

数据准备 Create table If Not Exists Players (player_id int, group_id int); Create table If Not Exists Matches (match_id int, first_player int, second_player int, first_score int, second_score int); Truncate table Players; insert into Players (player_id, g…

9+铜死亡+缺氧+分型+单细胞+实验生信思路

今天给同学们分享一篇铜死亡缺氧分型实验的生信文章“Unraveling Colorectal Cancer and Pan-cancer Immune Heterogeneity and Synthetic Therapy Response Using Cuproptosis and Hypoxia Regulators by Multi-omic Analysis and Experimental Validation”&#xff0c;这篇文…

ElasticSearch深度分页解决方案

文章目录 概要ElasticSearch介绍es分页方法es分页性能对比表方案对比 From/Size参数深度分页问题Scroll#性能对比向前翻页 总结个人思考 概要 好久没更新文章了&#xff0c;最近研究了一下es的深分页解决方案。和大家分享一下&#xff0c;祝大家国庆节快乐。 ElasticSearch介…

WorkPlus Meet:高效私有音视频会议,助力多场景协作

在当今数字化时代&#xff0c;远程协作和在线教育需求不断增长&#xff0c;企业和教育机构需要可靠的音视频会议工具来满足各种场景的需求。WorkPlus Meet&#xff0c;作为一款私有化音视频会议软件&#xff0c;强大而多功能&#xff0c;为用户提供了流畅的百人会议、实时协作、…

firefox_dev_linux下载安装配置(部分系统自带包请看结尾)

download 从 Firefox 的官方网站下载 Firefox Developer Edition 的 tar 文件 firefox_dev_linux_download # 终端快速下载 wget https://download.mozilla.org/?productfirefox-devedition-latest-ssl&oslinux64&langen-US彻底删除自带原版 # apt系 sudo apt --pu…

SpringBoot之异常处理

文章目录 前言一、默认规则二、定制异常处理处理自定义错误页面ControllerAdviceExceptionHandler处理全局异常ResponseStatus自定义异常自定义实现 HandlerExceptionResolver 处理异常 三、异常处理自动配置原理四、异常处理流程总结 前言 包含SpringBoot默认处理规则、如何定…

ubuntu x86_64 源码编译 rust 1.48.0

源码地址 GitHub - rust-lang/rust: Empowering everyone to build reliable and efficient software. git clone https://github.com/rust-lang/rust cd rust git checkout 1.48.0 ./configure ./x.py build 安装前执行cargo vendor yeqiangyeqiang-MS-7B23:~/Downloads/sr…

数据备份文件生成--根据表名生成对应的sql语句文件

最近客户有个需求&#xff0c;希望在后台增加手动备份功能&#xff0c;将数据导出下载保存。 当然&#xff0c;此方法不适用于海量数据的备份&#xff0c;这只适用于少量数据的sql备份。 这是我生成的sql文件&#xff0c;以及sql文件里的insert语句&#xff0c;已亲测&#x…

C++基于Qt中QOpenGLWidget模块实现的画图板源码+可执行文件

基于Qt中QOpenGLWidget模块实现的画图板 一、系统概述 本系统拟完成一个画图板&#xff0c;对多种常见图形进行基本操作系统功能 二维图形的输入&#xff1a;可输入或全部清除直线、矩形、圆、椭圆、多边形、文本等二维图形的变换&#xff1a;在直线、矩形、圆、椭圆、多边形…

【AI视野·今日NLP 自然语言处理论文速览 第四十期】Mon, 25 Sep 2023

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 25 Sep 2023 Totally 46 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers ReConcile: Round-Table Conference Improves Reasoning via Consensus among Diverse LLMs Authors Justin C…