uboot之uboot目录及uboot基础命令(mini6410)

什么是uboot

U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导。U-Boot从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是根据相应的Linux内核源程序进行简化而形成的,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。(百度百科的定义)

uboot源码目录

uboot源码目录包括:

  1. board:和开发板相关的文件
  2. common:实现uboot支持的命令
  3. cpu:与特定的cpu架构相关的代码
  4. disk:对磁盘的支持
  5. doc:文档目录,uboot有非常完善的文档
  6. drivers:uboot支持的设备驱动都放在该目录下,如网卡、串口、USB等
  7. fs:文件系统的支持
  8. include:uboot使用的头文件,该目录下configs目录有与开发板相关的配置头文件
  9. net:与网络相关的协议栈代码
  10. tools:uboot工具

uboot的编译(基于mini6410)

生成uboot.bin分为两个步骤,以mini6410开发板为例:(经过移植后的uboot)

一、选择要使用的board 执行

  		root@xxx#:   make mini6410_nand_config-ram128

二、编译生成u-boot.bin

		root@xxx#:   make

在进入uboot之后,可以设置通过uboot命令进行相关的操作,所以需要了解uboot的相关命令。

uboot中的常用命令

一、环境变量相关:

  1. printenv(或者pri):查看环境变量 如图
    在这里插入图片描述

  2. setenv:添加,删除,修改环境变量
    命令格式:setenv name value 添加
    如:
    setenv file test ------> file=test
    setenv file test1 ------> 修改 file=test1
    setenv file -------> 删除

  3. saveenv:保存环境变量 ,掉电后仍然存在

二、文件下载:

tftp :通过网络下载文件(要使用tftp,需要先配置好网络)
配置网络:
setenv ethaddr 08:90:90:90:90:90 (MAC地址,随便)
setenv ipaddr … (开发板的IP地址)
setenv serverip … (linux系统的IP地址)
tftp使用 :tftp c0008000(下载位置) uImage(文件名)
在这里插入图片描述
三、内存操作

  1. md:显示内存区内容
    md采用十六进制和ASCII码两种形式显示存储单元内容
    这条命令可以采用长度标识符 .l .w 和 .b
    命令格式 md [.b .w .l] address
    在这里插入图片描述

  2. mm :修改内存,地址自动递增
    命令格式: mm [.b .w .l] address

四、 Flash on 6410
Nor 和 Nand是两种不同的flash
区别:

  1. Nor flash 读取速度较快
  2. Nand flash 写入速度较快
  3. Nand flash 擦除速度较快
  4. Nand flash 成本低
  5. Nand flash 擦除寿命长(百万次) Nor flash(十万次)
  6. Nand flash 通常采用自己独立编址,Nor flash 采用统一编址

所以Nor flash更适用于存储代码,Nand flash 适合存储大容量数据

Nand flash的命令操作:

  1. nand info :flash大小显示

  2. nand erase:nand flash擦除
    使用方法:nand erase start length (擦除从start开始,长度为length的区域)

  3. nand write :向nand flash中写入数据
    用法:nand write [内存地址][flash地址] length

  4. nand read:从nand flash中读取数据
    用法:nand read [内存地址][flash地址] length

五、执行程序

  1. go :执行内存中的二进制代码,一个简单的跳转到指定地址
    用法:go addr [arg…]
  2. bootm:执行程序中的二进制代码 (和go的区别是:要求二进制代码有固定的文件头)
    用法:bootm [addr [arg…]]

六、开发板信息

  • bdinfo:显示开发板信息

七、自动启动
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41782149/article/details/89258667