001.基于linux内核的嵌入式系统启动流程
001.基于linux内核的嵌入式系统启动流程
上电后,整个系统整体启动流程大致如下:
step 1.bootrom,上电后,ARM CPU 从固定的地址开始执行bootrom,根据bootstraps 引脚状态/或者其他机制决定启动介质,同时初始化基本外设。此时程序运行在芯片内部ram
step 2.bootram从启动介质加载boot0/SPL到内存,并跳转至boot0,boot0初始化基本外设同时会初始化ddr,此后程序将主要运行在ddr中。
step 3.boot0/SPL 加载并跳转到uboot
step 4.Uboot初始化基本外设,根据配置项传递bootargs给linux内核,然后加载kernel与dtb如果是fit镜像会执行bootm命令启动内核
step 5.内核启动完成后,它会查找并执行/sbin/init或者由init=指定的程序作为第一个用户空间进程。这个进程负责启动其他必要的系统服务。如果使用的是传统的SysV init系统,它会依次运行/etc/rcX.d目录下的脚本(嵌入式系统一般是sysv init)。
step 6.等待启动脚本命令全部结束后,整个系统便完全起来了。
如果有trustzone:
- BL1(BootROM) → BL2(FSBL) → BL31(Secure Monitor) → BL32(TEE) → BL33(Normal World U-Boot / Linux)
- Title: 001.基于linux内核的嵌入式系统启动流程
- Author: Gryphon
- Created at : 2025-10-13 08:46:43
- Updated at : 2025-10-13 08:46:43
- Link: https://phoenixs.gitlab.io/2025/10/13/linux内核/001.基于linux内核的嵌入式系统启动流程/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments