嵌入式linux-系统移植,U-Boot编译,BootLoader介绍,uboot命令,uboot目录结构

1,Bootloader介绍

1.1,什么是Bootloader

Bootloader是硬件启动的引导程序,是运行操作系统的前提;
在操作系统内核或用户应用程序运行之前运行的一小段代码。对软硬件进行相应的初始化和设定,为最终运行操作系统准备好环境;
在嵌入式系统中,整个系统的启动加载任务通常由Bootloader来完成。

  • 板子上电运行的第一个程序
  • 只做两件事情:1、板子上电对硬件进行初始化;2、启动引导,加载内核

1.2,Bootloader的特点

Bootloader不属于操作系统,一般采用汇编语言和C语言开发。需要针对特定的硬件平台编写。
在移植系统时,首先为开发板移植Bootloader。
Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。

1.3,Bootloader的操作模式

自启动模式:在这种模式下,Bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。
交互模式:在这种模式下,目标机上的Bootloader将通过串口或网络等通信手段从开发主机(Host)上下载内核映像和根文件系统映像等到RAM中。可以被 Bootloader写到目标机上的固态存储媒质中,或者直接进行系统的引导。也可以通过串口接收用户的命令。(板子上电后,在3,2,1倒计时之内敲键盘enter键,后进入进入该模式)

1.4,常用Bootloader介绍

在这里插入图片描述

1.5,u-boot介绍

u-boot(Universal Boot Loader)是德国DENX小组开发的用于多种嵌入式CPU的bootloader程序。遵循GPL条款。
从FADSROM、8xxROM 、PPCBOOT、Armboot逐步发展演化而来;
当前版本号:参考Makefile。
http://www.denx.de/wiki/U-Boot/WebHome
U-boot的特点:
代码结构清晰、易于移植(见目录结构)
支持多种处理器体系结构(见arch目录)
支持众多开发板(目前官方包中有200多种,见board目录)
命令丰富、有监控功能
支持网络协议、USB、SD等多种协议和设备
支持文件系统
更新较活跃,使用者多,有助于解决问题

2,U-boot命令介绍

命令分类
环境设置、数据传输、存储器访问、加载运行

2.1,printenv 显示所有环境变量

在这里插入图片描述

2.2,setenv 设置新的环境变量

U-boot # setenv  myboard  FS4412

2.3,saveenv 将当前定义的所有的环境变量值存入flash中

2.4,tftp 通过网络下载程序

   U-boot # setenv  ethaddr  11:22:33:44:55:66    //设置开发板的物理地址
   U-boot # setenv  ipaddr  192.168.1.100
   U-boot # setenv  serverip  192.168.1.10 
   U-boot # tftp  41000000  application.bin
   U-boot # tftp  41000000  zImage

2.4,protect 对Nor Flash写保护

protect on 0 10000 对区间[0x0, 0x10000]进行写保护
protect off 0 10000 对上述区间取消写保护

2.5,erase 擦除Nor FLASH

erase all 擦除FLASH所有的扇区
erase 0 10000 把FLASH区间 [0x0, 0x10000]擦除

2.6,Nand相关命令

nand read addr off size
nand write addr off size
nand erase [clean] [off size]

NAND flash和NOR flash的区别详解 https://zhidao.baidu.com/question/1993729068599410707.html
NAND flash按块访问和NOR flash按字节访问
NAND flash必须先擦出后写

2.7,movi 命令

movi init —初始化eMMC并显示相关信息
movi read u-boot/kernel addr //读u-boot或读kernel,可以选择
movi write u-boot/kernel addr
movi read rootfs addr size
movi write rootfs addr size

2.8,bootcmd 自启动命令

如果定义了该变量,在自启动模式下将会执行该环境变量中的命令。
将文件通过tftp自动下载到指定的地址
U-boot # setenv bootcmd tftp 41000000 uImage; bootm 41000000
U-boot # saveen

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值