uboot使用

news/2024/11/17 18:37:48/

一、uboot模式

自启动模式

uboot启动后若没有用户介入,倒计时结束后会自动执行自启动环境变量(bootcmd)中设置的命令(一般作加载和启动内核)

交互模式

倒计时结束之前按下任意按键uboot会进入交互模式,交互模式下用户可输入uboot命令

二、uboot帮助命令(help)

help

查看uboot支持的所有命令

help 命令

查看当前命令的使用方法	

三、uboot环境变量命令(printenv、setenv、saveenv)

printenv

打印uboot中所有的环境变量

setenv

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

saveenv

保存所有环境变量到EMMC中

四、uboot常用环境变量( ipaddr、serverip、bootdelay)

##ipaddr

uboot的IP地址

serverip

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

bootdelay

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

五、uboot网络传输命令(tftp、loadb)

loadb

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

tftp

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

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

使用tftp命令之前保证这五点都要配置好

  1. 第一点:桥接模式
    参考 实验一 ubuntu 网络环境配置

  2. 第二点:tftp服务器的搭建,注意:每次重启Linux都要重启tftp服务器
    参考 实验二 tftp 服务器环境搭建

  3. 第三点:开发板上面的ipaddr要和Linux同一网段,serverip要和Linux相同
    在这里插入图片描述
    在这里插入图片描述

  4. 第四点:硬件连接没有问题,如网线、串口线等。

  5. 第五点:开发板要在Linux上面下载的文件在tftp 服务器的工作目录,即客户端要下载的文件需要放到该 /tftpboot ’ 目录
    ’ /tftpboot ’ 目录怎么来的 参考 实验二 tftp 服务器环境搭建 【实验步骤】

  6. 接下来就是开始网络连接,连接开发板
    使用网线连接开发板与电脑,然后在 uboot 交互模式下使用 ping 命令连接 ubuntu,若
    显示“host xxx.xxx.xxx.xxx is alive”则表示网络已连通
    详细看 实验一 ubuntu 网络环境配置
    在这里插入图片描述

  7. 开发板中使用tftp命令
    在这里插入图片描述

六、uboot存储器访问命令(mmc)

help mmc 查看mmc所有子命令

mmc write

将内存中指定地址中的内容写入到EMMC中指定的扇区mmc write <addr> <blk#> <cnt>	addr:	内存地址blk#:	EMMC中的扇区编号cnt:	读取的扇区的个数

例:

在这里插入图片描述
先把文件从Ubuntu中下载下来
在这里插入图片描述
0:把数据写到EMMC当中
0x40008000:内存地址
0x800:EMMC中的扇区编号
0x18:读取的扇区的个数,因为下载的文件是9148个字节,EMMC中一个扇区是512个字节,9148 / 512 = 18

mmc read

将EMMC中指定扇区中的内容读取到内存中指定的地址
mmc read  <addr> <blk#> <cnt>addr:	内存地址blk#:	EMMC中的扇区编号cnt:	读取的扇区的个数

例:
在这里插入图片描述
从EMMC(0)中 0x800 扇区中读取18个块(0x18)数据到内存中0x40008000地址中

七、uboot自启动环境变量(bootcmd)

bootcmd

自启动的环境变量
该环境变量可以设置成一到多个uboot命令的集合(若有多个使用\;分割)
自启动模式下uboot就会按照bootcmd中命令的顺序逐条执行eg1:setenv bootcmd tftp 40008000 interface.bin\;go 40008000saveenv

在这里插入图片描述

eg2:setenv bootcmd printenvsaveenv

在这里插入图片描述
在这里插入图片描述

eg3:setenv bootcmd mmc read 0 0x40008000 0x800 0x18 \; go 40008000saveenv

在这里插入图片描述


http://www.ppmy.cn/news/1049971.html

相关文章

plt绘制箱型图+散点图

import numpy as np import matplotlib.pyplot as plt# 创建示例数据 np.random.seed(1) data [np.random.normal(0, std, 100) for std in range(1, 4)]# 绘制箱型图 plt.boxplot(data, patch_artistTrue,zorder0)# 添加数据点的散点图&#xff0c;并设置参数以避免重叠 for …

苹果手机桌面APP带云图标有个箭头,过一段时间经常要下载才能使用APP

环境&#xff1a; IPhone 11 IOS13.0 问题描述&#xff1a; 苹果手机桌面APP带云图标有个箭头&#xff0c;过一段时间经常要下载才能使用APP 解决方案&#xff1a; 1.打开设置&#xff0c;往下找到iTunes Store与App Store 2.找到下面卸载未使用的APP 关闭按钮

docker 批量快速删除容器和镜像

一、批量删除镜像 如果你想要批量删除 Docker 镜像,可以使用各种命令。以下是一些示例: 1. 删除所有镜像: docker rmi $(docker images -q) 2. 删除所有未标记的镜像(即 <none> 镜像): docker rmi $(docker images -f "dangling=true" -q) 请注意…

微信小程序 游戏水平评估系统的设计与实现_pzbe0

近年来&#xff0c;随着互联网的蓬勃发展&#xff0c;游戏公司对信息的管理提出了更高的要求。传统的管理方式已无法满足现代人们的需求。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;随着各行业的不断发展&#xff0c;使命召…

Python数据分析实战-给定JSON格式的数据提取所需字段并转换为DataFrame(附源码和实现效果)

实现功能 给定JSON格式的数据提取所需字段并转换为DataFrame 实现代码 import pandas as pd import json# 假设给定的JSON数据已经存储在data变量中 data [{"title": "Data Source Adapter for Excel Sheets","project_code_url": "htt…

RandomAccessFile类使用详解

RandomAccessFile类使用详解 1.RandomAccessFile特点 RandomAccessFile是java Io体系中功能最丰富的文件内容访问类。即可以读取文件内容&#xff0c;也可以向文件中写入内容。但是和其他输入/输入流不同的是&#xff0c;程序可以直接跳到文件的任意位置来读写数据。   因为R…

【vue】更改角色权限后,实现页面不刷新更改其可展示的导航菜单

登入的角色本身属于领导级别&#xff08;集团权限&#xff09;&#xff0c;没有下级的不同权限&#xff1a; 切换不同身份&#xff08;公司&#xff09;&#xff0c;以获得相应部门的不同导航菜单及权限 这里实现&#xff1a;更改角色权限后&#xff0c;实现页面 不刷新 更改…

第一百二十回 MaterialBanner Widget

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了如何通过蓝牙设备读写数据&#xff0c;本章回中将介绍 MaterialBanner Widget.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们在本章回中将介绍一个新的Widget:MaterialBanner,该Widget位于Scaffol…