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

相关推荐
人间乄惊鸿客21 小时前
Linux所遇问题自记录
linux
AOwhisky1 天前
MySQL 学习笔记(第四期):SQL 语言之多表查询
linux·运维·网络·数据库·笔记·学习·mysql
Phantom Void1 天前
服务器处理客户端请求的设计方法
linux·运维·网络
一段路1 天前
【虚拟机】Linux常用命令
linux·vim
daad7771 天前
继续记录无人机SITL的起飞
linux
剑神一笑1 天前
Linux ls 命令深度解析:从目录遍历到颜色输出的实现原理
linux·服务器·数据库
故渊at1 天前
第二板块:Android 四大组件标准化学理 | 第六篇:四大组件架构总论与 Manifest 规范
android·架构·zygote·manifest·四大组件
三千里1 天前
ZSH的简单配置
linux·zsh·terminal
Jinkxs1 天前
Python基础 - 文件的写入操作 write与writelines方法
android·服务器·python
提伯斯6461 天前
解决Fast-Drone-250编译相关错误
linux·ros·无人机·fast-drone