u-boot命令介绍及烧写程序实例

转载 2012年03月25日 01:01:26

bootdelay
 定义执行自动启动的等候秒数
 
baudrate
 定义串口控制台的波特率
 
netmask
 定义以太网接口的掩码
 
ethaddr
 定义以太网接口的MAC地址
 
bootfile
 定义缺省的下载文件
 
bootargs
 定义传递给Linux内核的命令行参数
 
bootcmd
 定义自动启动时执行的几条命令
 
serverip
 定义tftp服务器端的IP地址
 
ipaddr
 定义本地的IP地址
 
stdin
 定义标准输入设备,一般是串口
 
stdout
 定义标准输出设备,一般是串口
 
stderr
 定义标准出错信息输出设备,一般是串口
 


u-boot命令介绍及烧写程序实例
Printenv 打印环境变量。
Uboot> printenv
baudrate=115200
ipaddr=192.168.1.1
ethaddr=12:34:56:78:9A:BC
serverip=192.168.1.5
Environment size: 80/8188 bytes
Setenv 设置新的变量
Uboot> setenv myboard AT91RM9200DK
Uboot> printenv
baudrate=115200
ipaddr=192.168.1.1
ethaddr=12:34:56:78:9A:BC
serverip=192.168.1.5
myboard=AT91RM9200DK
Environment size: 102/8188 bytes
Saveenv 保存变量
命令将当前定义的所有的变量及其值存入flash中。用来存储变量及其值的空间只有8k字节,应不要超过。
Loadb 通过串口Kermit协议下载二进制数据。
Tftp 通过网络下载程序,需要先设置好网络配置
Uboot> setenv ipaddr 192.168.0.1
Uboot> setenv serverip 192.168.1.115      (tftp服务器的地址)
下载bin文件到地址0x20000000处。
Uboot> tftp 20000000 u-bo.bin (u-boot.bin应位于tftp服务程序的目录)
Uboot> tftp 32000000 vmlinux
把server(IP=环境变量中设置的serverip)中/tftpdroot/ 下的vmlinux通过TFTP读入到物理内存32000000处。
Md 显示内存区的内容。
Mm 修改内存,地址自动递增。
Nm 修改内存,地址不自动递增。
Mw 用模型填充内存
mw 32000000 ff 10000(把内存0x32000000开始的0x10000字节设为0xFF)
Cp 拷贝一块内存到另一块
Cmp 比较两块内存区
这些内存操作命令后都可加一个后缀表示操作数据的大小,比如cp.b表示按字节拷贝。
Protect 写保护操作
protect on 1:0-3(就是对第一块FLASH的0-3扇区进行保护)
protect off 1:0-3取消写保护
Erase 擦除扇区。
erase: 删除FLASH的扇区
erase 1:0-2(就是对每一块FLASH的0-2扇区进行删除)
对DataFlash的操作
U-Boot在引导时如果发现NPCS0和NPCS3上连有DataFlash,就会分配虚拟的地址给它,具体为 :
0xC0000000---NPCS0
0xD0000000---NPCS3
run 执行设置好的脚本
Uboot> setenv flashit tftp 20000000 mycode.bin\; erase 10020000 1002FFFF\;
cp.b 20000000 10020000 8000
Uboot> saveenv
Uboot> run flashit
bootcmd 保留的环境变量,也是一种脚本
如果定义了该变量,在autoboot模式下,将会执行该脚本的内容。
Go 执行内存中的二进制代码,一个简单的跳转到指定地址
Bootm 执行内存中的二进制代码
要求二进制代码为制定格式的。通常为mkimage处理过的二进制文件。
起动UBOOT TOOLS制作的压缩LINUX内核, bootm 3200000
Bootp 通过网络启动,需要提前设置好硬件地址。 
? 得到所有命令列表
help   help usb, 列出USB功能的使用说明
ping   注:只能开发板PING别的机器
usb
usb start:   起动usb 功能
usb info:   列出设备
usb scan:   扫描usb storage(u 盘)设备
kgo   起动没有压缩的linux内核
kgo 32000000
fatls 列出DOS FAT文件系统
fatls usb 0列出第一块U盘中的文件
fatload 读入FAT中的一个文件
fatload usb 0:0 32000000 u-boot.bin 把USB中的u-boot.bin 读到物理内存0x32000000处!
flinfo 列出flash的信息
nfs
nfs 32000000 192.168.0.115:u-boot.bin
把192.168.0.115(LINUX 的NFS文件系统)中的NFS文件系统中的u-boot.bin读入内存0x32000000处。
例:通过串口更新u-boot程序

[email=u-boot@wpf]u-boot@wpf[/email]
]# loadb 
## Ready for binary (kermit) download to 0x33000000 at 115200 bps...
loadb这个指令以kermit协议从串口下载二进制文件到开发板的内存中,默认下载到0x33000000。当然你可以改在别的地址,例如:loadb 30000000
就是下载到0x30000000。这时候选择超级终端菜单上:传送〉发送文件,文件名选择编译好的U-Boot.bin,协议选择Kermit,点发送。可以看到发
送进度。
发送结束出现提示:
## Total Size       = 0x0001d73c = 120636 Bytes
## Start Addr       = 0x33000000
这时可以测试新的修改好不好使:

[email=u-boot@wpf]u-boot@wpf[/email]
]# go 33000000
## Starting application at 0x33000000 ...
go指令可以直接执行内存地址上的程序,
然后烧写在NOR Flash中的U-boot。先看看NOR Flash的情况:

[email=u-boot@wpf]u-boot@wpf[/email]
]# flinfo
Bank # 1: AMD: 1x Amd29LV800BB (8Mbit)
   Size: 1 MB in 19 Sectors
   Sector Start Addresses:
     00000000 (RO) 00004000 (RO) 00006000 (RO) 00008000 (RO) 00010000 (RO)
     00020000       00030000       00040000       00050000       00060000     
     00070000       00080000       00090000       000A0000       000B0000     
     000C0000       000D0000       000E0000       000F0000 (RO)
一共有19个sector,其中前5个总计128kb的sector有U-Boot程序。要烧写首先要去掉写保护:

[email=u-boot@wpf]u-boot@wpf[/email]
]# protect off 0 1ffff

[email=u-boot@wpf]u-boot@wpf[/email]
]# flinfo
Bank # 1: AMD: 1x Amd29LV800BB (8Mbit)
   Size: 1 MB in 19 Sectors
   Sector Start Addresses:
     00000000       00004000       00006000       00008000       00010000
     00020000       00030000       00040000       00050000       00060000
     00070000       00080000       00090000       000A0000       000B0000
     000C0000       000D0000       000E0000       000F0000 (RO)
可以看到写保护已经去掉,然后擦除:

[email=u-boot@wpf]u-boot@wpf[/email]
]# erase 0 1ffff
Erasing sector   0 ... ok.
Erasing sector   1 ... ok.
Erasing sector   2 ... ok.
Erasing sector   3 ... ok.
Erasing sector   4 ... ok.
Erased 5 sectors
烧写:(33000000下载地址 0 Nor起始地址 1d73c 文件长度)

[email=u-boot@wpf]u-boot@wpf[/email]
]# cp.b 33000000 0 1d73c
Copy to Flash... done
重启开发板,U-Boot的烧写就完成了。当然,一个更好的下载方法是利用tftp命令

本文来自: (www.91linux.com) 详细出处参考:http://www.91linux.com/html/article/qianrushiyingyong/20081227/15061.html

相关文章推荐

Linux_Bootloader_u-boot命令介绍及烧写程序实例

u-boot命令介绍及烧写程序实例2006-11-22 13:31Printenv 打印环境变量。Uboot> printenvbaudrate=115200ipaddr=192.168.1.1eth...

u-boot命令介绍及烧写程序实例(备忘)

Printenv 打印环境变量。 Uboot> printenv baudrate=115200 ipaddr=192.168.1.1 ethaddr=12:34:56:78:9A:BC s...

基于U-boot完成NandFlash裸板程序烧写(DNW&TFTP)

案例在JZ2440开发板上完成,本例通过NorFlash中U-boot进行NandFlash裸板程序下载。上篇文章讲述的是采用epo烧写器直接完成程序对NandFlash烧写。而当板子上的NorFla...

u-boot烧写mini2440的arm机

  • 2013年06月14日 17:25
  • 250KB
  • 下载

U-boot用tftp命令直接烧写到NandFlash V1.0

U-boot用tftp命令直接烧写到NandFlash         这个是在《U-boot中用tftp命令直接烧写到flash中》的基础上来做了,NorFlash烧写ok了,就进一步试试...
  • kangear
  • kangear
  • 2013年03月11日 20:28
  • 2580

如何用J-LINK烧写U-BOOT

  • 2012年02月12日 23:25
  • 1.54MB
  • 下载

DM6467串口烧写U-boot工具 sfh_DM646x

  • 2012年07月25日 16:09
  • 80KB
  • 下载

使用JLink烧写u-boot(基于JZ2440v2的ARM板子)

本文对象:使用笔记本的同志没有JTAG                  需要在Nor-Flash中重新烧写u-boot的                  手中有JLink    ...

U-boot烧写工具

  • 2012年04月13日 09:55
  • 3.59MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:u-boot命令介绍及烧写程序实例
举报原因:
原因补充:

(最多只允许输入30个字)