i.MX6ULL终结者Uboot编译及移植U-Boot介绍

本文详细介绍了i.MX6ULL平台的U-Boot使用,包括环境变量如baudrate、bootargs、bootcmd等的解析,以及常用命令如printenv、setenv、boot、reset等的操作。此外,还讲解了如何获取和理解U-Boot源码,以及源码目录中关键文件夹和文件的作用。
摘要由CSDN通过智能技术生成

1. u-boot的使用

uboot是一段裸机代码,它的实现非常复杂,主要是初始化一些硬件,部署整个计算机系统,将内核读到内存,根据环境变量去启动内核,并向内核传递参数。它的目标就是启动内核,内核启动后它的生命也随之结束。
u-boot是SourceForge上的开源项目,由一个人发起,然后由整个世界所有感兴趣的人共同维护发展而来的一个bootloader,bootloader是用来引导和加载内核,向内核传递参数的,是内核引导程序的统称,bootloader除了u-boot还有bios,LilO,redboot,vivi等。

1.1 环境变量

在uboot命令行输入printenv,打印出环境变量(使用的 NAND flash版本):
在这里插入图片描述

图 1.1.1

1.baudrate=115200,波特率为115200。
2.bootargs=console=ttymxc0,115200 root=ubi0:rootfs rootfstype=ubifs ubi.mtd=5 mtdparts=gpmi-nand:4m(u-boot),2m(-boot-env),4m(logo),10m(kernel),2m(dtb),-(rootfs) rootwait rw
参数说明:.bootargs后面的变量是传递给linux内核的参数,主要用来告诉内核启动信息,分区信息和根文件系统所在的分区,console=ttymxc0代表串口节点ttymxc0实现内核和PC的交互。波特率是115200,root=ubi0:rootfs文件系统的名字叫做rootfs,分区依次是uboot,uboot环境变量,开机logo,内核,设备树,文件系统。进入内核可以在/proc/mtd看到分区信息:
在这里插入图片描述

图 1.1.2

通过bootargs可以设置文件系统的挂载方式,可以挂载flash中的根文件系统,还可以通过NFS挂载网络文件系统。
3.bootcmd=nand read ${loadaddr} 0xa00000 0xa00000; nand read ${fdt_addr} 0x144B000 0xc800;bootz ${loadaddr} - ${fdt_addr}
bootcmd后面是系统自启动参数,在启动参数由一些uboot命令组成,在倒计时结束后uboot会依次执行设置好的命令,
NAND read ${loadaddr} 0xa00000 0xa00000:将nand flash的偏移地址0xa00000开始,读大小为0xa00000的内核镜像到内存的开始地址为loadaddr处,loadaddr为0x80800000,如图 1.1.3。
在这里插入图片描述

图 1.1.3

nand read ${fdt_addr} 0x144B000 0xc800:将设备树从flash的偏移地址0x1

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值