LINUX BootLoader启动程序解析

  • 在进入linux 时

Linux 进入boot中的参数传递

在Linux进入bootloader

setenv bootargs root=/dev/mmcblk0p8 rw rootfstype= ext4 init=linuxrc lcd=...

内核在开机过程中执行这个传入的参数到内核中

  • 进入BL1阶段时

加载BL1

早期需要加载dts设备数,现如今直接和内核进行打包即可

例如在第2个SDcard 的第1个分区

开始编译

  • 清除编译痕迹

make distclean

  • 设置为目标平台

make x6818_config

  • 编译源码

make

  • 生成镜像(位于根目录下)

ubootpak.bin

镜像烧写

boot.img (内核镜像)

gtkfs.img (根文件系统镜像)

ubootpakbin (uboot 镜像)

  • 开机进入uboot命令行
  • 执行下载命令

fastboot

镜像配置过程

配置原理分析

  • make xxx_config 的

其实是调用 mkconfig -A xxxx 脚本来进行参数设置

在mkcofig中实现的是将 xxxx 对应的参数中获取 生成于include/config.mk文件中

  • mkconfig该脚本创建了 include/config.h 并且写入定制头文件和目标平台信息

裁剪方法

  • 休要裁剪的配置一般以 CONFIG_开头
  • 这个宏会被脚本解析为变量 定义在include/autoconf.mk 中
  • include/autoconf.mk 又会没makefile包含 之后makefile会知道之后怎么进行编译

uboot镜像产生

  • 直接通过参数指定程序入口地址和段段地址

arm-linux-ld -Ttext = 0x3000 -Tdata=0x4000 -e main -o app head.o main.o

相关推荐
Yana.nice5 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
DFT计算杂谈8 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
执明wa9 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
Zhang~Ling9 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind9 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的森10 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
404_coder10 小时前
源码视角下的 Android 开机流程:从 Zygote、SystemServer 到 Launcher
android
二流小码农10 小时前
鸿蒙开发:以登录案例了解代码架构MVVM
android·ios·harmonyos
XMAIPC_Robot11 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
用户693717500138411 小时前
从代码生产者到 AI 协作者:软件工程师的角色重构
android·前端·后端