U-Boot基本操作命令

e.g.

        1、上电输入“zlg”进入uboot选项界面,输入“q”进入uboot命令行。设置本地ip和目标服务器ip为同 
        段网络下。
setenv ipaddr 192.168.1.136
setenv serverip 192.168.1.200
saveenv
pri ipaddr
pri serverip
        2、电脑端打开tftpd32软件,设置当前服务器目录为uImage绝对路径。
        3、在uboot命令行下,输入以下命令进行网络升级,升级前最好先使用ping命令查看板子与主机之        
        间的网络是否通顺。
ping 192.168.1.200 (此处ip为serverip)
        正常通讯后会打印显示:x.x.x.x is alive。
        再次输入:
mtdparts
mtdparts defaults

tftp 0x82000000 uImage 
//bootm 0x82000000 (此处如果仅仅测试修改内核是否可用,可直接在下载内核后输入bootm启动内核,后面 
        的步骤是将此内核固化到nand的步骤,如不固化,重启板子后启动仍是原先内核固件)

nand erase.part kernel
nand erase.part kernel2
nand write.i 0x82000000 kernel ${filesize}
nand write.i 0x82000000 kernel2 ${filesize}
setenv kernelsize ${filesize}
saveenv

?:

  查看所有支持命令

pri:

  print查看uboot这个软件的环境变量 ,变量名=变量值

pri   ipaddr
pri   serverip

setenv:设置环境变量

  setenv abc 100 200    // 设置 添加一个变量值 “100 200”是个字符串值
  setenv bootdelay 10    // 修改变量
  setenv abc                   // 删除abc变量

saveenv:把本次的设置的环境变量写回存储器

  从RAM写到Flash(重启后不会被删除)

setenv、saveenv:设置网络

  setenv ipaddr x.x.x.x
  setenv serverip  x.x.x.x
  saveenv
  ping x.x.x.x      //PC的IP

nand:nand操作

nand [erase] [nandflash的内部地址] [搬移大小]   擦除nandflash上指定区域的内容(写0)
nand [write] [内存地址] [nandflash的内部地址] [搬移大小]   将内存中的指定地址写到nandflash的指定区域
nand [read]  [内存地址] [nandflash的内部地址] [搬移大小]   将nandflash中的指定地址读到内存的指定区域
**注意:写之前,一定要先擦除**

    读:FLASH到RAM。nand中第5M开始的地址空间读到内存地址21000000,1k大小
       nand read 21000000 500000 1024

  擦:擦除FLASH。 5M开始的1024Byte空间
  nand erase 500000 1024

  写:RAM到FLASH。内存地址21000000的地址空间写到nand中第5M的地方,1K大小
  nand write 21000000 500000 1024:
  

md:查看地址内容

  md+内存地址 : memmory display

tftp:
 

  Client:开发板
    ./client server_ip port xxxx
      server_ip 变成了通过环境变量serverip来取得
      port : tftp这个命令写死了 改不了
      xxxx : 干什么事情,由tftp 这个命令通过输入参数  
    tftp 20008000 abc


  Sever:PC    
         windows
             tftpd
         linux
             32bit  sudo apt-get install tftpd-hpa 
             64bit  sudo apt-get install tftpd openbsd-xinetd
                      /etc/inetd.conf

bootm:启动内核

内核启动命令,只使用于uImage(uBoot),uImage 包含uboot头文件
命令:

bootm  [uImage内存地址]

go命令适用于其他的image,zImage Image bzImage 原始数据。但是需要进行一些操作。

内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。

zImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage的0x40位置开始执行,zImage和uImage没有任何区别。

go:跳到内存地址空间

  uboot
     直接运行裸机程序
 
  tftpd 20008000 uImage  :传输内核文件
    内核要有个偏移offset ,在内存管理中建立MMU表
    在虚拟内存中会预留一个表,干脆在物理内存中也偏移
 
  go 20008000

    开头是uboot的数据信息

bootargs:

  传递给内核的启动参数

root=/dev/nfs
nfsroot=ip:共享目录(ip:serverip)
ip=Linux的ip
init=linuxrc
console=ttySAC0,115200

setenv  bootargs root=/dev/nfs nfsroot=192.168.10.110:/home/...  ip=192.168.10.222 init=/linuxrc   console=ttySAC0,115200


 

bootdelay:

  倒计时,时间到后自运行


bootcmd:倒计时后执行的命令

    nand read 20008000 100000 200000;
    nand read 21000000 5600000 400000;
    bootm 20008000

can0 启动:

/sbin/ip link set can0 type can bitrate 1000000 restart-ms 1
[root@335x-T ~]# ifconfig can0 up
[root@335x-T ~]# ifconfig can0
can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          UP RUNNING NOARP  MTU:16  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:52

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值