UBoot常用命令及内核下载与引导
一、常用命令
1. 获取帮助
① help 或 ?
2. 环境变量与相关命令
(1)环境变量
① bootdely
② baudrate
③ netmask
④ ethaddr
⑤ bootfile
⑥ bootargs
⑦ bootcmd
⑧ serverip
⑨ ipaddr
⑩ stdin
⑪ stdout
⑫ stderr
(2)相关命令
① printenv
② setenv:setenv name value
③ saveenv
3. 串口传输命令
① loadb
② loadx
③ loady
4. 网络命令
① ping
② dhcp
③ rarpboot
④ nfs
⑤ tftpboot:tftpboot MemAddr FileName(tftp 0x30008000 uImage)
⑥ bootp
5. Nand Flash操作
① nand info
② nand device [dev]
③ nand read addr off size
④ nand write addr off size
⑤ nand write[.yaffs[1]] addr off size
⑥ nand erase [clean] [off size]
⑦ nand bad
⑧ nand dump[.oob] off
⑨ nand srub
⑩ nand markbad off
⑪ nboot addr dev offset
6. 内存、寄存器操作命令
① nm: 修改内存值(指定地址)
格式:nm[.b, .w, .l] addr
② mm:修改内存值(地址自动加1)
格式:mm[.b, .w, .l] addr
③ md:显示内存值
格式:md[.b, .w, .l] addr
④ mw:用指定的数据填充内存
格式:mw[.b, .w, .l] addr value [count]
⑤ cp:内存的拷贝(包含内存与Nor Flash间的数据拷贝)
格式:cp[.b, .w, .l] srcAddr dstAddr count
7. Nor Flash操作命令
① flinfo:
② protect:
③ erase:
8. USB操作命令
① usb reset
② usb stop [f]
③ usb tree
④ usb info [dev]
⑤ usb storage
⑥ usb dev [dev]
⑦ usb part [dev]
9. SD卡(MMC)操作命令
① mmc init [dev]
② mmc device [dev]
注:SD卡只有初始化和设备信息的显示,读写时通过文件系统名利实现的。
10. FAT文件系统命令
① fatinfo: 显示文件系统相关信息
格式: fatinfo <interface> <dev[:part]>
② fatload: 从FAT32系统中读取二进制文件到SDRAM
格式: fatload <interface> <dev[:part]> <addr> <filename> [bytes]
③ fatls: 列出FAT32文件系统中目录中的文件
格式: fatls <interface> <dev[:part]> <directory>
11. 系统引导命令
① boot: 运行ENV"bootcmd"中指定的命令
② bootd: 同boot
③ bootm: 启动在SDRAM中用UBoot的mkimage工具处理过的内核映像
12. 其它命令
① run:运行一个脚本
MINI2440 :) setenv Test echo Hello\;ver
MINI2440 :) run Test
Hello U-Boot 2013.10 (Aug - ::)
arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2008q3-) 4.3.
GNU ld (Sourcery G++ Lite 2008q3-) 2.18.50.20080215
MINI2440 :)
② reset:重启CPU
二、内核下载
使用U-Boot将映像文件烧写到板子上的Flash,一般步骤是:
① 通过网络、串口、U盘、SD卡等方式将文件传输到SDRAM
② 使用Nand Flash 或 Nor Flash相关的读写命令将SDRAM中的数据烧入Flash
(1)通过SD卡烧入Nand Flash
mmc init
fatload mmc 0x30008000 uImage
nand erase 0x40000
nand write 0x30008000 0x40000
(2)通过U盘烧入Nor Flash
usb start
usb part
fatload usb : 0x30008000 u-boot.bin
protect off all
erase 0x00 0x3fff
cp.b 0x30008000 0x00 0x3fff
(3)通过TFTP服务烧入Nand Flash
tftpboot 0x30008000 192.168.1.102:uImage
nand erase 0x40000
nand write 0x30008000 0x00 0x40000
(4)通过NFS服务烧入Nand Flash
nfs0x30008000 192.168.1.102:/nfsroot/uImage
nand erase 0x40000
nand write 0x30008000 0x00 0x40000
三、内核引导
内核的引导步骤如下:
① 用U-Boot的mkimage工具处理内核映像zImage,生成uImage
② 用过网络、串口、U盘、SD卡等方式将处理过的内核映像uImage传输到SDRAM的一定位置(一般使用0x30008000)
③ 使用bootm等内核引导命令来启动内核
(1)通过SD卡引导内核
mmc init
fatload mmc 0x30008000 uImage
bootm 0x30008000
(2)通过TFTP服务引导内核
tftpboot 0x30008000 192.168.1.102:uImage
bootm 0x30008000
(3)通过NFS服务引导内核
nfs 0x30008000 192.168.1.102:/nfsroot/uImage
bootm 0x30008000
(4)通过Nand Flash引导内核
nfs 0x30008000 192.168.1.102:/nfsroot/uImage
nand erase 0x80000 0x200000
nand write 0x30008000 0x80000 0x200000
nand read 0x30008000 0x80000 0x200000
bootm 0x30008000
备注1:为什么要用U-Boot的mkimage工具处理内核映像zImage
因为在用bootm命令引导内核的时候,bootm需要读取一个64字节的文件头,来获取这个内核映像所针对的COU体系结构、OS、加载到内存的位置、在内存中入口点的位置以及映像名等信息。这样bootm才能为OS设置好启动环境,并跳入内核映像的入口点。而mkimage就是添加这个文件头的专用工具。
备注2:mkimage工具参数说明:
① -A:指定CPU体系结构
② -O:指定操作系统类型
③ -T:指定映像类型
④ -C:指定映像压缩方式
⑤ -a:指定映像在内存中的加载地址
⑥ -e:指定映像运行的入口点地址
⑦ -n:指定映像名
⑧ -d:指定制作映像的源文件
示例:mkimage -n "Kevin" -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage uImage
UBoot常用命令及内核下载与引导的更多相关文章
- UBoot常用命令手册
UBoot常用命令手册 U-Boot还提供了更加详细的命令帮助,可以通过”?”显示支持的命令列表,通过help [CommandName]命令还可以查看每个命令的参数说明. 1.bootm bootm ...
- 编译u-boot命令和u-boot常用命令
一.编译u-boot命令 1.配置开发板 #make TQ2440_config 2.编译 #make all 3.交叉编译器是crosstools_3.4.5_softfloat” 使用4.3.3版 ...
- uboot常用命令详解
dnw:在进入系统之前进入指令行,输入该指令可下载烧录文件. re:重新启动嵌入式系统. printenv:打印当前系统环境变量. setenv:设置环境变量,格式:setenv name value ...
- uboot常用命令
一. 常用简单命令 1.1. help命令 a. 帮助查看其他命令的使用方法,类型linux下man b. 示例: help help x210 # help help help [command . ...
- u-boot常用命令
查看ip地址等信息 print tftp相关 设置ip地址 set ipaddr 192.168.1.5 设置tftp所在电脑ip set serverip 192.168.1.8 最后必须输入sav ...
- 嵌入式Linux系统移植——uboot常用命令
flash的一般分区: 其它数据 环境变量 可执行程序.如bootloader print(可缩写为:pri):打印查看uboot这个软件中集成的环境变量setenv.saveenv:设置.保存环境变 ...
- uboot常用命令及其使用
环境变量设置 setenv 设置一个环境变量 # 格式:setenv key vlaue setenv bootdelay 5 # 设置uboot启动延时5s 删除一个环境变量 uboot对于一个没有 ...
- CentOS 常用命令大全
下面,就给大家介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep &qu ...
- CentOS常用命令备忘
1. 查看进程 ps -a 杀掉进程 kill PID 2. 添加计划任务crontab -e 例如:30 21 * * * service httpd restart 每天21:30重启apache ...
随机推荐
- Win 7 Windows Update无法自动更新解决方案
最近发现系统很长时间没有自动更新过了,手动更新后,提示返回错误码WindowsUpdate_8024402F.网络上搜索到的解决方法大多是删除更新临时目录,重启WINDOWS UPDATE服务,然而试 ...
- Part2_lesson4---ARM寻址方式
所谓寻址方式就是处理器根据指令中给出的信息来找到指令所需操作数的方式. 1.立即数寻址 ADD R0,R0,#0x3f; R0<-R0+0x3f 在以上指令中,第二个源操作数即为立即数,要求以“ ...
- Java设计模式(3)——抽象工厂模式
抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的.抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象. 一.产品族和产品等级结构 为 ...
- ConfigureAwait(false)避免上下文延续
之前MVC利用MvcHtmlString封装通用下拉菜单,菜单数据需要从webapi获取,自然用到了 await Http Client.GetAsync(Url)方法,前端 @Html.Select ...
- Word文档发布到CSDN博客
目前大部分的博客作者在写博客这件事情上都会遇到以下3个痛点:1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.2.发布到博客或公众号平台 ...
- 可epoll队列
什么是可epoll队列? 就可以使用epoll来监控队列中是否有数据的队列,当然也支持select和poll. 应用场景 一个线程,需要将队列(共享内存队列或普通队列均可)中的数据取出来,然后通过网络 ...
- JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(8):装配SpringBean概述(如何合理使用装配级别)
一. 装配Bean概述 关于如何将自己开发的Bean配置到Spring IoC容器中,大部分场景下,我们都会使用ApplicationContext的具体实现类,因为对应的Spring IoC容器功 ...
- JavaScript函数参数问题
声明一个回调函数 function(){ alert(data); } 这个时候,若调用这个函数的传入了一个同名data,则这里会引用到data的值,因为他们处于同一作用域.
- java学习(二)运算符
一.运算符 赋值运算符:= += -= *= /= %= 算术运算符:+ - * / % ++ -- int x = 3; int y = 4 int c = x*1.0 ...
- orcal 锁表
--查询Oracle正在执行的sql语句及执行该语句的用户 SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, ...