uboot的常用命令及用法
转自:https://blog.csdn.net/jklinux/article/details/72638830
https://blog.csdn.net/dagefeijiqumeiguo/article/details/51314856
uboot是bootloader的一种,主要是用于引导内核启动.
uboot除此功能外, 还带有很多其它功能. 功能是通过命令来调用.
uboot的命令:
help //列出当前uboot所有支持的命令
help 命令 //查看指定命令的帮助
reset //重启uboot
bootm //用于启动内核
用法: bootm 0x42000000 //从内存地址0x42000000启动内核, 启动前需把内核镜像uImage存放到指定的内存地址
printenv //打印所有环境变量的值
printenv 环境变量名 //查看指定的环境变量值
常用环境变量:
bootdelay // uboot启动后, 倒计时多少秒后自动执行环境变量bootcmd的语句
bootcmd // 倒计时到0后,自动执行里面的语句
bootargs // 是用于提供给内核的启动参数语句
setenv //设置/修改/删除环境变量的值
用法:
setenv 环境变量名 //删除指定的环境变量
setenv myargs "hello" //设置环境变量myargs=hello, 如果环境变量没有会创建出来,如果已存则会修改它的值
saveenv //保存环境变量,环境变量修改过后必须执行此命令才可以保存起来,否则重启后环境变量就恢复了.
loady //用于从uart线下载文件到板上内存里(loadb, loads, loadx基本一样)
用法:
loady 0x40008000 //把下载的文件从内存地址0x40008000开始存放
执行"loady 0x40008000"后, uboot就会进入等待状态,等着接收数据
minicom具有通过uart传输文件的功能.
按"ctrl+a", 松手后再按"s", 选择"ymodem", 在弹出的界面里按空格键选中要传的文件.
md 内存地址 //用于查看内存地址上的值
用法:
md.b 0x40008000 100 //从内存地址0x40008000开始,查看0x100个字节并输出值
md.w 0x40008000 100 //从内存地址0x40008000开始,查看0x100个16位值并输出值
md.l 0x40008000 100 //从内存地址0x40008000开始,查看0x100个32位值并输出值
mw //用于修改内存地址上的值
用法:
mw.b 0x40008000 0xab 100 //从内存地址0x40008000开始的0x100字节空间,设值为0xab
mw.w 0x40008000 0xabcd 100 //从内存地址0x40008000开始的0x200字节空间,每16位值设为0xabcd
mw.l 0x40008000 0xabcdef88 100 //从内存地址0x40008000开始的0x400字节空间,每32位值设为0xabcdef88
go //执行指定内存地址上的指令
用法:
go 0x40008000
mmc // sd/mmc接口设备(sd卡, emmc)操作命令, 按扇区操作(每扇区512字节)
用法:
mmc read addr blk cnt //从mmc设备上的第blk个扇区开始,共读出cnt个扇区到内存地址addr上
mmc write addr blk cnt //把内存地址addr上的数据写入mmc设备的第blk个扇区,共cnt个扇区大小
mmc dev //用于当看当前的mmc设备是第几个
mmc erase blk cnt //把mmc设备的第blk个扇区开始清零,共清除cnt个扇区大小
mmc part //列出当前mmc设备的分区信息
mmc list //列出所有的mmc设备信息
ext4ls //查看存储设备的ext2/3/4分区里的内容
用法:
ext4ls mmc 0:2 //查看第0个存储设备的第二个分区
ext4load //从ext2/3/4分区里读出文件到指定的内存地址
用法:
ext4load mmc 0:2 0x40008000 /uImage //从第0个存储设备的第2个分区的根目录读出uImage文件到内存地址0x40008000
fatls //查看存储设备的fat分区里的内容
用法:
fatls mmc 0:1 //查看第0个存储设备的第1个分区(fat分区)
fatload //从fat分区里读出文件到指定的内存地址
用法:
fatload mmc 0:1 0x40008000 /uImage //从第0个存储设备的第1个分区的根目录读出uImage文件到内存地址0x40008000
fatwrite //把内存上的数据存储到fat分区的一个文件里
用法:
fatwrite mmc 0:1 0x40008000 /my.txt 0x35 //把内存地址0x40008000开始的0x35个字节数据写入到第0个设备的第1个分区里,文件名为my.txt
run //执行指定的环境变量里的语句
用法:
run bootcmd //执行环境变量bootcmd里的语句
//如uboot上已驱动好网络设备并环境变设好IP及PC端IP,还可以使用以下命令:
tftpboot 0x40008000 文件名 // 通过网络下载文件到内存地址0x40008000, PC端需配置好tftp服务器
nfs 0x40008000 pc端IP:/带路径的文件名 //pc端需配置好nfs服务器
ping ip //检测网络是否通
指令: bootm
bootm 用于将内核镜像加载到内存的指定地址处
例:
bootm 0x82000000
查看和修改环境变量指令
常用环境变量列表
bootdelay 执行自动启动(bootcmd中的命令)的等候秒数
baudrate 串口控制台的波特率
bootfile 默认的下载文件名
bootargs 传递给Linux内核的启动参数
bootcmd 自动启动时执行命令
stdin 标准输入设备, 一般是串口
stdout 标准输出, 一般是串口,也可是LCD(VGA)
stderr 标准出错,一般是串口,也可是LCD(VGA)
serverip TFTP服务器端的IP地址
ipaddr 本地的IP地址
ethaddr 以太网的MAC地址
netmask 以太网的网络掩码
gatewayip 以太网的网关
指令: setenvname value
第1个参数是环境变量的名称。
第2个参数是要设置的值,如果没有第2个参数,表示删除这个环境变量
例:
setenv serverip 192.168.1.12//添加环境变量serverip 其值为 192.168.1.12
setenv serverip 192.168.1.20//在上一行的基础上把环境变量serverip 值重新赋为 192.168.1.20
setenv serverip
//把 serverip 变量删除
指令: saveenv保存环境变量
指令: printenv
查看环境变量
使用该命令返回:
bootdelay=1
baudrate=115200
bootfile="uImage"
filesize=6600EC
fileaddr=82000000
bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),27M(rootfs)
bootcmd=sf probe 0;sf read 0x82000000 0x100000 0x400000;bootm 0x82000000
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2010.06 (Jan 20 2015 - 15:46:38)
serverip=192.168.1.12
ipaddr=192.168.1.129
ethaddr=00:01:02:11:88:91
netmask=255.255.255.0
gatewayip=192.168.1.1
查看和修改内存值指令
查看内存命令 md
修改内存命令 mm
填充内存命令 mw
复制内存命令 cp
这些命令都可以带上后缀 “.b”(字节 byte), ”.w”(字 word), ”.l”(4字节 long) 为单位进行操作
指令: mw填充内存命令
mw[.b,.w,.l] address value [count]
表示以[.b,.w,.l]为单位往开始地址为address的内存填充count 个值为 value 的数据
例:
mw.b 82000000 ff 100000从地址0x82000000地址开始填充0x100000(1M字节)个值为0xff的数据
指令: md查看内存命令
md[.b,.w,.l] address [count]
表示以[.b,.w,.l]为单位显示从地址address开始的内存数据,显示的数据个数为count
例:
md.b 82000000 10显示从地址0x82000000地址开始的0x10个字节的数据
返回信息:
82000000: d3 2c b4 4b 2c d3 4b b4 d3 d3 b4 b4 d3 2c b4 4b .,.K,.K......,.K
指令: mm修改内存命令
mm[.b,.w,.l] address
表示以[.b,.w,.l]为单位从地址address开始修改内存数据,执行mm命令后,输入新数据后回车,地址会自动增加,按“CTRL + c”退出;
例: 把第一个字节数据0xd3修改为0xd4
mm.b 82000000
返回:
82000000: d3 ? d4
82000001: 2c ?
指令: cp复制内存命令
cp[.b,.w,.l] source target [count]
表示以[.b,.w,.l]为单位从源地址source的内存复制count个数据到 目的地址 target的内存中去;
下载的指令
指令: tftp通过网口下载文件到设备
tftp address filename 把文件filename下载到地址address
例:
下载
tftp 0x82000000 u-boot-hi3520d.bin 把TFTP目录下名为u-boot-hi3520d.bin的文件拷贝到SDRAM的 82000000 地址
上传
tftp 0x82000000 flash 2000000 把SDRAM的 82000000 地址开始的 0x2000000(32M)字节的拷贝到把TFTP目录下命名为flash(flash名字是否可变)
Flash操作的指令(不同的Flash不同)
指令: eraseFlash擦除命令
erase start end 擦除的范围为 start – end
erase start+len 擦除的范围为 start – (start+len-1)
erase all 擦除所有
例:
对于SPI NOR FLASH
sf erase 0 100000 擦除flash 0 - 0x100000 的数据
指令: writeFlash烧写命令
write addr off size将SDRAM的 addr 地址处的 size 字节的数据烧写到 flash 的 off 偏移地址
例:
对于SPI NOR FLASH
sf write 82000000 0 100000 把SDRAM地址 0x82000000 处 0x100000(1M字节)的数据烧写到 flash 的 0 偏移地址
指令: readFlash读取命令
read addr off size从 Flash 的 off 偏移地址处读取 size 字节的数据到SDRAM的 addr地址
例:
对于SPI NOR FLASH
sf read 82000000 0 2000000 从 flash 的 0 偏移地址出读取 0x2000000(32M)字节的数据到 SDRAM的 82000000 地址
uboot的常用命令及用法的更多相关文章
- U-Boot的常用命令详解
U-Boot还提供了更加详细的命令帮助,通过help命令还可以查看每个命令的参数说明.由于开发过程的需要,有必要先把U-Boot命令的用法弄清楚.接下来,根据每一条命令的帮助信息,解释一下这些命令的功 ...
- linux下面某些常用命令的用法【转】
转自:http://blog.csdn.net/luo3532869/article/details/7584290 ls 命令用于常看目录,用法:ls [选项][目录或文件]例:使用ls命令显示/h ...
- Linux vi/vim编辑器常用命令与用法总结
(一)vi/vim是什么?Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便. ...
- $Linux vi/vim编辑器常用命令与用法总结 (Markdown编辑版)
vi/vim是什么? Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便.vi ...
- Linux-vi/vim编辑器常用命令与用法
vi/vim是什么? Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便.vi ...
- shell常用命令的用法
1. 如何把 /etc/passwd 中用户uid 大于500 的行给打印出来?awk -F ':' '$3>500' /etc/passwd 2. awk中 NR,NF两个变量表示什么含义?N ...
- git常用命令及用法小计
git init 初始化一个本地git仓库repository git status 查看状态 git add <file> 将工作区修改加到暂存区(stage) git commit - ...
- pm2的的常用命令及用法
使用pm2启动静态文件服务器的方法如下: pm2 serve path port pm2 serve . 9001 这样就可以把当前文件夹下的静态文件跑起来了,而且端口号是9001, 同样也支持进阶的 ...
- Git常用命令以及用法
一 如何让单个文件回退到指定的版本 1. 进入到文件所在文件目录,或者能找到文件的路径 查看整个目录的修改记录 git log . 2. 回退到指定的版本 git reset f7a22076 ...
随机推荐
- v-bind绑定属性样式——class的三种绑定方式
1.布尔值的绑定方式 <div id="demo"> <span v-bind:class="{‘class-a‘:isA ,‘class-b‘:isB ...
- LeetCode(53):最大子序和
Easy! 题目描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: ...
- poj2823 单调队列初步
什么是单调队列:头元素一直是队列当中的最大值,队列中的值按照递减顺序排列,可以从末尾插入一个元素,或从两段删除元素 1.插入元素,为了保证队列的单调性(这里假设为递减性),在插入元素v时要将对位的元素 ...
- 《转》Web Service实践之——开始XFire
Web Service实践之——开始XFire 一.Axis与XFire的比较XFire是与Axis2 并列的新一代WebService平台.之所以并称为新一代,因为它:1.支持一系列Web Serv ...
- RabbitMQ(一):RabbitMQ 安装与配置(Mac)
一.rabbitmq 安装与配置 安装: brew install rabbitmq # 进入安装目录 cd /usr/local/Cellar/rabbitmq/3.7.12 # 启动 brew s ...
- 胖哈勃杯Pwn400、Pwn500详解
概述 这次的胖哈博杯我出了Pwn400.Pwn500两道题目,这里讲一下出题和解题的思路.我个人感觉前两年的Pwn题更多的是考察单一的利用技巧,比我这有个洞怎么利用它拿到权限.但是我研究了一些最近的题 ...
- Django 2.0 Middleware的写法
网上很多写法,都是传统的写法, process_request和process_response方法,还可以用,但process_view的执行流程已经不行了. 看了官方文档,推荐的写法,也是用__c ...
- Thinkphp基础配置
访问项目中的index.phpApplication下会自动生成一些文件 在Application下建两个目录 一个Admin用来放后台中的文件 一个Public用来放公共文件 然后去Appplica ...
- [转]oracle10客户端PL/SQL Developer如何连接远程服务器上的oracle数据库
时间:2013年8月21日 前提条件:假设你已经安装好了oracle和PL/SQL Developer,知道远程服务器的IP和数据库端口,知道远程服务器上的oracle数据库名和密码 如何用PL/SQ ...
- Python replace
一.replace替换 a = "wohaoshuai" a.replace('a','o') wohooshuoi a.replace('a','') wohoshui