专题2-U-Boot新手入门

1. 嵌入式软件的层次

BootLoaderBoot ParametersKernelRoot FileSystem

2. 编译U-Boot

先安装编译器,这里使用的是友善之臂的编译器,将其解压到/opt/目录后,执行以下命令(环境是redhat6):

   vim ~./bash_profile  

并将编译器/bin文件所在目录添加在path后面,如下:

   PATH=$PATH:$HOME:/opt/FriendlyARM/toolschain/4.5.1/bin

完成后保存,使用一下命令使环境变量生效:

    source ~/.bash_profile

文件:U-boot.tar.gz

先将文件解压出来:

    tar zvxf U-boot.tar.gz

进入目录:

    cd U-boot/

配置U-boot:

    make smart210_config

编译U-boot:

    make ARCH=arm CROSS_COMPILE=arm-linux-

一般来说编译的过程持续一两分钟左右。

3. 烧写U-boot

将编译好的U-Boot下载到Nand FLASH中(这里就各显神通了,比如可以通过烧写到SD卡上再烧写到Nand FALSH中)

4. U-Boot命令详解

4.1 帮助命令 #help

尽管U-Boot提供了丰富的命令集,但是不同的开发板所支持的命令却不一样(可配置),help命令可用于察看当前单板所支持的命令。

4.2 查看环境变量 #printenv

举例:

    ipaddr=192.168.0.1
    ethaddr=12:34:56:78:9A:BC
    serverip=192.168.1.5

printenv 缩写为 print

举例:print ipaddr

修改环境变量:

    #setenv  添加、修改、删除环境变量

举例:

    #setenv name value (添加或修改name的值为value)
    #setenv name       (删除name环境变量条目)

保存环境变量(将环境变量写回到FLASH中)

    #saveenv   (可以缩写为 #save)

4.3 程序下载命令

(以太网、串口、USB)【串口一般不用,速度太慢了】。

tftp:通过网络下载程序,注意:使用tftp时候需要事先配置好网络

    #setenv ethaddr 12:34:56:78:9A:BC
    #setenv ipaddr  192.168.0.3
    #setenv serverip 192.168.0.2  (tftp服务器地址)
    #ping 192.168.0.3

范例:

    #tftp 0x20008000 uImage.bin 
    (从tftp服务器上下载uImage.bin 到 0x20000000地址上)
    调试这个过程需要很大耐心,不然调试不出来

4.4 执行程序

    #bootm {addr} {args}  执行固定格式的二进制程序

范例:

    #bootm 0x20008000

4.5 查看文件内容

显示内存区的内容 #md
  
  md采用十六进制和ASCII码两种形式来显示存储单元的内容。这条命令还可以采用长度标识等 (.l .w .b):

    #md [.b .w .l] addr

范例:

    md.w 0x20000200 

修改内存使用 #mm 命令:

    #mm 0x20000000

    20000000 : FFFFFFFF ? 01234567 -回车符号
    20000004 : FFFFFFFF ? AB000000 -回车符号
    20000008 : FFFFFFFF ? -空格加回车表示停止修改

4.6 擦除FLASH

#nanderase0x4000000x500
命令符nand命令擦除命令起始地址处理长度

写、读nand flash,(从内存到nand 或者从nand到内存)

#nandwrite0x200000000x4000000x500
命令符nand命令擦除命令内存起始地址起始地址处理长度
#nandread0x200000000x4000000x500
命令符nand命令擦除命令内存起始地址起始地址处理长度

4.7 设置自启动(这个非常好用)

设置从nand falsh自动启动

    #setenv bootcmd nand read c0008000 400000 500000 \; bootm c0008000

设置从tftp自动下载并启动

    #setenv bootcmd tftp c0008000 uImage.bin \; bootm c0008000
    原文作者:爪爪熊
    原文地址: https://www.jianshu.com/p/a6b3d7b7f310
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞