一张图秒懂嵌入式Linux系统的启动流程

news2024/11/20 6:12:46

一图胜千言!看图:

上图是嵌入式系统启动流程图,图中红色的数字圆点表示启动的先后顺序。主要分为 4 个阶段,分别是:第一阶段 bootloader,第二阶段uboot,第三阶段内核启动,第四阶段 app 启动

​第一:bootloader阶段

主要完成第一阶段系统的引导和初始化工作,包括序号1~3。

系统上电后,首先是cpu开始工作,此时引导程序(通常是汇编代码)从ROM被加载到RAM 中,对 cpu 的寄存器进行初始化,启动核 0,如果是核1或者其他核则处于休眠状态,等待核 0 在内核启动正常后通过中断或者事件将其唤醒(图中10的位置)。

接下来就是完成 flash 和 ddr 初始化,为后面从 flash 加载 bin 文件,在 DDR 中运行程序提供基本环境,一般情况下都是从flash为0的位置,将flash中的bootloader 镜像文件加载到 RAM 或 DDR 中,该引导程序最终将uboot从flash 复制到 DDR 中,然后交接给 uboot 进行下一步处理。

​第二:uboot 阶段

首先对 dram,flash,串口进行检查,保障 uboot 的运行环境是 ok 的,同时为 linux分配内存空间;接下来初始化网络配置,包括mac地址的设置、通信端口的工作模式设置,可以让用户通过网络加载程序;最后将linux从flash中复制到内存中。

linux 镜像文件中包含内核、文件系统和设备管理树 (FDT) 三个基本组件,uboot 会根据设备管理树定义的信息进行检查,然后依次加载到内存中 。包括序号4~5,这个阶段最后将 linux 加载后,就可以交接给内核进行操作。

​第三:内核启动阶段

主要负责创建进程、绑定进程、划分内存、唤醒核1、加载文件系统等基本工作,包括序号6~13。

首先,会生成一个初始进程 init0,后续创建的所有进程都是从该进程中产生,该进程还负责对内存和虚拟内存进行划分。

然后 vfork 出一个主核进程,绑定到核 0 上,接下来由 cpu 主核(核0)唤醒其他的核,从 init 进程 vfork 出副核进程,并将该进程绑定到核1上。

最后是基于设备管理树完成对系统中其他设备的初始化。

​第四:app启动阶段

这一阶段主要对各类 app 应用进行初始化,如文中以通信设备为例,此处主要完成对转发芯片的初始化,会涉及一些基础转发表项的初始配置,端口和各种通信总线的初始化。

接下来会初始化中间件,中间件是作为应用程序和操作系统之间的桥梁,向下屏蔽操作系统的差异,向上为应用程序提供平台化的技术支持;最后就是各种应用程序的初始化了,包括各种特性的初始化,心跳信息,单板信息,版本信息等等。

日常工作中,最容易出问题的地方其实都是在 app 的启动阶段,这部分才是最应该做一个详尽的图出来,后续笔者有了具体的项目案例后将会补充该图例。​​

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

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

相关文章

【数据管理架构】OLAP 与 OLTP:有什么区别?

这些术语经常相互混淆,那么它们的主要区别是什么?您如何根据自己的情况选择合适的术语? 我们生活在一个数据驱动的时代,使用数据做出更明智决策并更快响应不断变化的需求的组织更有可能脱颖而出。您可以在新的服务产品&#xff08…

理想吹响城市NOA号角:激光雷达车型又火了

作者 | 德新编辑 | 王博 2023下半年,以华蔚小理为代表的智能驾驶头部厂商,其高阶辅助驾驶全面进城。 在过去短短一周时间里,蔚来、华为、理想、小鹏紧锣密鼓悉数公布了新进展。此外据HiEV了解,比亚迪、智己、飞凡等品牌的智驾团队…

excel爬虫相关学习2:vba 爬虫相关xmlhttp

目录 前言:vba 爬虫相关xmlhttp的方法 1 什么是xmlhttp 1.1 定义 1.2 特点 1.3 创建xmlhttp对象的过程 1.4 XMLHTTP对象创建的几种方法: 2 XMLHTTP方法: 2.1 xmlhttp.open(Method, Url, Async, User,Password) 2.1.1 xmlhttp.open(…

再谈JWT

什么是JWT JSON Web Token是一个开发标准(RFC 7519),定义了一个紧凑且独立的方式,可以将各方之间的信息作为JSON对象进行安全传输,该信息可以验证和信任,因为是经过数字签名的。 JWT是JSON Web Token的缩写,是一种轻…

第39步 深度学习图像识别:Inception V3建模(Tensorflow)

基于WIN10的64位系统演示 一、写在前面 (1)Inception V1 Inception是一种深度学习模型,也被称为GoogLeNet,因为它是由Google的研究人员开发的。Inception模型的主要特点是它的“网络中的网络”结构,也就是说&#x…

编译原理笔记6:从正规式到词法分析器(3):DFA最小化、词法分析器的构造、Lex 使用示例

目录 从 DFA 到最小 DFA等价可区分划分算法:最小化 DFA 的状态数(DFA化简)手写 DFA 词法分析器的构造Lex 使用示例 从 DFA 到最小 DFA 关于星闭包的补充:一个语言被认为是所有可能字的子集。所有可能字的集合可以被认为是所有可能…

手机操作系统的沉浮往事(下)

接上篇:手机操作系统的沉浮往事(上) 2007年,是手机市场发生历史性转折的一年。 这一年的1月9日,在Macworld 2007大会上,史蒂夫乔布斯正式发布了第一代iPhone。 改变人类科技史的一天 iPhone的问世&#xff…

LeetCode - #83 删除排序链表中的重复元素

文章目录 前言1. 描述2. 示例3. 答案关于我们 前言 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新…

收藏 | 14 种免费 GIS 软件

如果你想绘制一幅世界地图,会选择什么GIS软件呢,ArcGIS、GlobalMapper这些都是国外比较出名的商业GIS软件,当然在国内很容易找到可用的版本,但是也可以使用免费的GIS软件完成所有操作。 这些免费的GIS软件为您提供了完成工作的效…

服务的熔断、降级与限流

1、引言 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC)。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果…

基于Python的高校学生学业预警系统的设计与实现

博主介绍:擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例…

基于STM32 ARM+FPGA的电能质量分析仪方案(二)软件设计

本部分主要介绍 FPGAARM 控制部分的软件设计。 FPGAARM 控制部分包括 Verilog HDL 硬件描述语言和 C 语言的开发。 FPGA 部分主要控制 AD7606 模数转换、数字三相锁相 环和FFT谐波计算模块、 SDRAM 控制器的设计、 FSMC 接口模块等。 ARM 部分主要完成嵌 入式实时操作系统 …

十个你必须要会的TypeScript技巧

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 1. 泛型的使用 泛型可以让我们编写更具灵活性、可重用性和类型安全性的代码。在 TypeScrip…

SpringBoot中15个常用启动扩展点,你用过几个?

背景 Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用了…

P35[10-5]硬件IIC配置+读写MPU6050(软)(此处注意与软件iic区别)

接线图如下: 注:硬件读写iic的连接位置固定,可参考引脚定义表(如下) 声明:I2C1重映射时,有一次更换机会,但是此面包板由于OLED的该引脚无法接线,因此只能接在PB10 PB11的I2C2上 软件iic初始化部分:(此处即可替代掉整个软件iic.c初始化的底层) void MPU6050_Init(vo…

知识变现绝学,3个步骤5个技巧用你的知识盈利?

知识就是生产力。 有的人通过学习各类知识,结果变的更加迷茫,更加没有方向了。 而有的人通过学习各类知识,结果变成了专家,实现了财务自由。 你想知道如何把这生产力去变现呢? 这个时代信息泛滥,人才泛滥…

305 · 矩阵中的最长递增路径

链接:LintCode 炼码 题解:九章算法 - 帮助更多程序员找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧 class Solution { public:/*** param matrix: A matrix* return: An integer.*/class Node {public:int x;int y;int val…

DNDC模型四:土壤碳储量与作物产量、农田减排潜力分析

查看原文>>>双碳目标下DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的实践应用 由于全球变暖、大气中温室气体浓度逐年增加等问题的出现,“双碳”行动特别是碳中和已经在世界范围形成广泛影响。国家领导人在多次重要会…

遥感影像处理-监督分类

遥感图像分类是图像信息提取的一种方法,是遥感数字图像处理的重要环节,也是遥感应用最广泛的领域之一,其中提取土地利用分类信息也是常见的应用领域。本推文简要介绍了图像分类的原理和方式,并着重介绍了最大似然分类法监督分类在…

分布式事务:XA和Seata的XA模式

大家好,我是方圆。上一篇博客《从2PC和容错共识算法讨论zookeeper中的Create请求》介绍了保证分布式事务提交的两阶段提交协议,而XA是针对两阶段提交提出的接口实现标准,本文则对XA进行介绍。 1. XA XA (eXtended Architecture …