uboot的烧写及使用

目录

一、uboot概述

Bootloader

Bootloader基本功能

常见的Bootloader

二、SD卡启动盘制作

三、uboot的使用

3.1uboot模式

3.2uboot帮助命令

3.3uboot环境变量命令

3.4常用环境变量

3.5网络传输命令

3.6u-boot访问存储器命令

3.7 u-boot自启动环境变量(bootcmd)


一、uboot概述

uboot和bootloader的区别_吻等离子的博客-CSDN博客_uboot和bootloader有啥区别

bootloader就相当于类,uboot就相当于对象。嵌入式领域常用的bootloader就是uboot

Bootloader

    在操作系统运行之前运行的一小段代码,用于将软硬件环境初始化到

一个合适的状态,为操作系统的加载和运行做准备(其本身不是操作系统)

Bootloader基本功能

    -> 初始化软硬件环境

    -> 引导加载linux内核

    -> 给linux内核传参

    -> 执行用户命令

注:bootloader是启动引导程序的统称,嵌入式linux常用的bootloader是uboot。

常见的Bootloader

Bootloader

Monitor

描述

X86

ARM

PowerPC

LILO

Linux磁盘引导程序

GRUB

GNULILO替代程序

Loading

DOS引导linux

ROLO

ROM引导linux而不需要BOIS

Etherboot

通过以太网卡启动linux系统的固件

LinuxBOIS

完全替代BUISlinux引导程序

BLOB

LART等硬件平台的引导程序

U-boot

通用引导程序

RedBoot

基于eCos的引导程序

Vivi

Mizi公司针对于三星的arm cpu设计的引导程序

二、SD卡启动盘制作

 

    SD卡的存储以扇区为单位,每个扇区的大小为512Byte, 其中零扇区存储分区表(即分区信息),后续的扇区可自行分区和格式化;

   若选择SD卡启动,处理器上电后从第一个扇区开始将其中的内容搬移到内存,所以我们把uboot放到从第一个扇区开始之后的空间, 之后的空间根据个人需求可进行分区和格式化

制作一个 512 字节的空镜像 /dev/zero就是全是0.count=1就是一块扇区

制作一个前面一块是空接下来是uboot的镜像 

制作一个1M的空镜像清除SD卡

 少了一个8,大小不对重新做一个

把clear.bin和win-u-boot这两个文件拿到windows里用工具先把SD卡清零

 

然后再把带有uboot的文件烧写进去

 

友情提醒各位童鞋学嵌入式买电脑 接口一定得多种类一定要丰富。

这两太电脑一起用是真麻烦,还得用3个拓展坞。

接下来把开发板设置为SD卡启动。再Uboot里设置了LED2亮,如果亮了就证明成功了。

软件和uboot程序我上传了,可以在我的资源里找到。

三、uboot的使用

3.1uboot模式

自启动模式

    uboot启动后若没有用户介入,倒计时结束后会自动执行自启动

    环境变量(bootcmd)中设置的命令(一般作加载和启动内核)

 

交互模式

    倒计时结束之前按下任意按键uboot会进入交互模式,交互模式下

    用户可输入uboot命令

 

因为还还没安操作系统所以一直显示超时了

3.2uboot帮助命令

 

 

 

3.3uboot环境变量命令

printenv

    打印uboot中所有的环境变量

 

setenv

    设置指定的环境变量(保存在RAM中)

        setenv 环境变量 环境变量的值 

saveenv

    保存所有环境变量到EMMC中

3.4常用环境变量

ipaddr

    uboot的IP地址

serverip

    服务器的IP地址(即ubuntu的IP) 

bootdelay

    进入自启动模式之前倒计时的秒数

3.5网络传输命令

loadb

    通过Kermit协议下载文件到指定的内存地址

        loadb  地址

 

tftp

    通过tftp协议下载文件到指定的内存地址

        tftp  地址  文件名 

 VMware双网卡配置(ubuntu)_宇努力学习的博客-CSDN博客

 

调试了一下,虽然我的emmc中保存了对的ip但是使用tftp服务器时他那个ip还是以前的,需要重新设置开发板ip服务器ip和网关ip然后

saveenv保存一下

最后在用命令

这次没问题了,还有一个要注意的是ubuntu中的文件夹虽然777了,但是文件夹里的程序没有777权限,需要使用命令:

chmod 777 interface.bin

给文件权限后就不会报下面这个错了

TFTP error: 'Permission denied' (0)
Starting again

注:使用tftp之前要配置好网络及tftp服务器

3.6u-boot访问存储器命令

mmc read

  将EMMC中指定扇区中的内容读取到内存中指定的地址

  mmc read  <addr> <blk#> <cnt>

  addr:  内存地址

  blk#:  EMMC中的扇区编号

  cnt:  读取的扇区的个数

mmc write

  将内存中指定地址中的内容写入到EMMC中指定的扇区

  mmc write <addr> <blk#> <cnt>

 0表示写入emmc

把内存0x41000000写到写到emmc 0x800位置一个扇区

 

断电之后读取emmc中的这个程序写入开发板然后go程序运行成功

3.7 u-boot自启动环境变量(bootcmd)

    自启动的环境变量

    该环境变量可以设置成一到多个uboot命令的集合(若有多个使用\;分割)

    自启动模式下uboot就会按照bootcmd中命令的顺序逐条执行

把printenv命令写进去,开机之后不做干预,倒计时结束就会自动打印环境

  eg:

      setenv bootcmd tftp 40008000 interface.bin\;go 40008000

      saveenv

 

这样重启之后就会自动下载并执行

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇努力学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值