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

相关推荐
原来是猿1 分钟前
Linux线程同步与互斥(五):线程池的全面实现
linux·服务器·开发语言
嵌入式×边缘AI:打怪升级日志2 分钟前
从零开始学习 Linux SPI 驱动开发(基于 IMX6ULL + TLC5615 DAC)
linux·驱动开发·学习
feng_you_ying_li2 分钟前
linux之进程控制
linux
Mr_pyx5 分钟前
CompletableFuture 使用全攻略:从异步编程到异常处理
linux·前端·python
黄林晴15 分钟前
Kotlin 2.4.0-Beta2 发布,语法与多平台能力全线革新
android·kotlin
恋猫de小郭15 分钟前
Bun 官方将正式支持 Android,Claude Code 未来可以直接在手机上跑
android·前端·ai编程
拾贰_C21 分钟前
【OpenAI | Ubuntu | bigmodel】 openai规范配置bigmodel(zhipu)大模型api
linux·运维·ubuntu
计算机安禾24 分钟前
【Linux从入门到精通】第22篇:Shell变量与数据类型——数字与字符串处理
linux·运维·chrome
nLYA SCOL26 分钟前
MySQL数据的增删改查(一)
android·javascript·mysql
idolao36 分钟前
CentOS 7 安装 jprofiler_linux64_7_2_3.tar.gz 详细步骤(解压、配置、远程连接)
linux·python·centos