返回> 网站首页 

u-boot 的使用

yoours2012-04-13 13:09:14 阅读 1454

简介一边听听音乐,一边写写文章。

一. u-boot 命令:

1. erase   - erase FLASH memory

erase: 擦除FLASH的内容

用法1:erase start end

说明:擦除地址从start 到地址end区域的内容。

注意:Flash的擦除必须以块为最小单位,因此start必须为某块的起始地址,end则为某块的结束地址。

例如:flash的基地址为0x34000000.块大小为0x20000.

则erase 0x34000000 0x3401ffff为可操作的。(从Flash头开始,擦除1个块)

erase 0x34000003 0x3401ffff (起始位置不为块头,无法操作)

erase 0x34000000 0x3401FF00 (结束位置不为块尾,无法操作)

用法2: erase N:SF[-SL]

说明:擦除第N块Flash的从扇区SF到SL扇区的内容。

用法3:erase bank N

说明:擦除第N快Flash的内容。

用法4:erase all

说明:擦除所有Flash的内容。

 

2. bootm   - boot application image from memory
执行内存中的二进制代码

要求二进制代码为制定格式的。通常为mkimage处理过的二进制文件。
起动UBOOT TOOLS制作的压缩LINUX内核, bootm 3200000

 

3. flinfo  - print FLASH memory information

列出flash的信息

 

4. go      - start application at address 'addr'

跳转到指定地址,执行代码。

用法:go addr [arg...]

说明:执行地址addr 处的二进制代码,可传递参数arg.

 

5. loadb   - load binary file over serial line (kermit mode)

通过串口Kermit协议下载二进制数据.

 

6. loady   - load binary file over serial line (ymodem mode)

通过串口ymodem协议下载二进制数据.

 

7. mw      - memory write (fill)

用法:mw start data len

例:mw 32000000 ff 10000(把内存0x32000000开始的0x10000字节设为0xFF)

 

8. ping    - send ICMP ECHO_REQUEST to network host

只能开发板PING别的机器.

 

9. protect - enable or disable FLASH write protection

protect on 1:0-3(就是对第一块FLASH的0-3扇区进行保护)
protect off 1:0-3取消写保护

 

10. reset   - Perform RESET of the CPU

 

11. tftp    - download or upload image via network using TFTP protocol

从tftp server上下载文件到RAM或FLASH中。

用法: tftp addr file

说明:将file文件下载到地址为addr的RAM或者Flash中。

注意:使用tftp时,必须先设置好网络配置,使用setenv配置ipaddr,netmask,serverip等参数。

 

12. Nand 子系统:

Nand 子系统中包含一些命令,处理与Nand Flash 有关的操作。

12.1 nand info - show available NAND devices

查看当前可用的nand flash。

显示:dev_id: 大小,每扇区大小等等。

 

12.2 nand device [dev] - show or set current device

用法:nand device dev_id

 

12.3 nand read

用法: nand read addr offset length

说明:addr:存放读取到数据的地址,

offset是相对地址0的偏移。

length是读取的长度

例如:nand read c1500000 0 100000

把地址空间offset 0位置的数据,copy 0x100000长度到c1500000

 

12.4 nand write

用法:nand write addr offset length

说明:把地址addr中的数据,写length长度到地址空间offset中去。

 

nand write c1500000 100000 130000

把c1500000 中的数据写0x130000到地址空间偏移100000中去。

 

12.5 nand bad - show bad blocks

 

 

13. u-boot环境变量:

13.1 printenv- print environment variables 显示环境变量

13.2 setenv  - set environment variables

设置环境变量

用法:setenv ipaddr 172.16.1.49

13.3 saveenv

将刚设置的环境变量存储下来。命令将当前定义的所有的变量及其值存入flash中。用来存储变量及其值的空间有8k字节。

 

环境变量参数:

环 境 变 量 解 释 说 明
bootdelay 定义执行自动启动的等候秒数
baudrate 定义串口控制台的波特率
netmask 定义以太网接口的掩码
ethaddr 定义以太网接口的MAC地址
bootfile 定义缺省的下载文件
bootargs 定义传递给Linux内核的命令行参数
bootcmd 定义自动启动时执行的几条命令
serverip 定义tftp服务器端的IP地址

gatewayip 定义gateway IP地址
ipaddr 定义本地的IP地址
stdin 定义标准输入设备,一般是串口
stdout 定义标准输出设备,一般是串口
stderr 定义标准出错信息输出设备,一般是串口

 

 

常用的有ipaddr, gatewayip,serverip等。这些一看就明白。

bootfile,bootargs,bootcmd则需要讲解一下:

 

bootcmd例子:

setenv bootcmd nand read c1300000 100000 130000;bootm c1300000

所以在启动时,会作以下动作:

nand read c1300000 100000 130000. 从100000处读取130000长度的东西,放到c1300000处。(之前把Kernel放到100000处了)

bootm c1300000  然后运行c1300000处的东西。

微信小程序扫码登陆

文章评论

1454人参与,0条评论