更多课程 选择中心

嵌入式培训
达内IT学院

400-996-5531

嵌入式Linux OS启动流程,了解一下!

  • 发布:嵌入式培训
  • 来源:嵌入式教程
  • 时间:2020-03-07 16:24

一、硬件上电

二、一级启动:bootROM

Boot ROM是厂商都无法进行更改,固化在芯片内部的ROM;

作用:确定用于启动的设备;

从启动的设备的位置搬移一小段代码(4k/8k/16k)到RAM中运行,即SPL;

三、二级启动:SPL+uboot

1.SPL: Secondary Program Loader:

作用:

初始化DDR;

从启动的设备搬移第二段代码到RAM中,加载uboot;

(有些SoC是将bootloader复制到RAM后,再进行DDR初始化;)

2.uboot: Universal boot loader:

U-Boot从启动设备上面读取、分析环境变量获得kernel和rootfs存储位置,以及所需的kernel command line;

自动检测系统RAM和eMMC/Nand Flash容量和参数;

设置以太网口MAC地址,并配置好硬件准备加载Linux kernel;

加载Linux kernel到RAM,至此系统控制权则转移到kernel来处理;

四、Linux Kernel

系统Kernel初始化Linux,加载rootfs,最后启动’init’来初始化Linux user space

五、不同的OS

Android、Yocto、ubuntu、fedora

补充:

一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:

1、 引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。(bootROM,uboot)

2、Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。(linux kernel)

3、 文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ramdisk来作为rootfs。

4、 用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows和MiniGUI等。

BootLoader是一段小程序,主要功能是引导操作系统启动。可以把它想象成PC机Linux上的GRUB/LILO引导程序,只不过在嵌入式linux中,没有BIOS,而是直接从flash中运行,来装载内核。它可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统做好准备

免责声明:整理文章为传播相关技术,版权归原作者所有,如有侵权,请联系删除

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:嵌入式Linux底层系统怎么学?
下一篇:arm的基础你学好了么,看这篇就够了

裸编程怎么做?裸编程具体做法

嵌入式编程中你必须知道的小知识

嵌入式C语言编程小知识总结

有哪些工具可以让嵌入式开发事半功倍?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省