U-Boot(Universal Boot Loader

U-Boot(Universal Boot Loader)是一个开源的、通用的引导加载程序,主要用于嵌入式系统的启动和初始化。以下是U-Boot的一些具体作用和参数的详细解释:

U-Boot的作用:
初始化硬件:
U-Boot可以初始化处理器、内存、存储设备、网络接口等硬件资源,为操作系统的启动提供必要的硬件环境。
引导操作系统:
U-Boot可以加载和启动操作系统,例如Linux、Android等。它可以通过读取存储设备上的引导映像(如boot.img或zImage),将控制权交给操作系统。
提供命令行界面:
U-Boot提供了一个命令行界面,用户可以通过输入命令来执行各种操作,如设置环境变量、烧写文件、启动目标系统等。
支持多种启动方式:
U-Boot支持多种启动方式,如从SD卡、NAND Flash、NOR Flash、EMMC等存储设备启动。
提供灵活的配置选项:
U-Boot提供了丰富的配置选项,用户可以根据实际需求进行灵活配置,如设置启动参数、配置网络等。

  • uboot常用的环境变量有:
  • bootdelay:表示自动运行倒数时间。
  • ipaddr:开发板的本地IP地址。
  • serverip:开发板通过tftp指令去tftp服务器下载东西时,tftp服务器的IP地址。
  • netmask:子网掩码。
  • ethaddr:开发板的本地网卡的MAC地址。
  • bootcmd:表示自动运行的命令。uboot启动后会自动倒数bootdelay秒,如果没有按下回车打断启动,则uboot会自动执行bootcmd这个环境变量所对应的命令集。
  • baudrate:串口通信波特率。
  • loadaddr:指定要加载到内存中的镜像文件的地址。
  • fileaddr:指定要加载到内存中的文件或镜像的地址。
    devnum:指定要加载到内存中的设备编号。
  • env_addr:指定环境变量的地址。
  • env_size:指定环境变量的大小。
  • cmd_start:指定启动命令的起始地址。
  • cmd_end:指定启动命令的结束地址。
  • reserve_addr:指定保留内存的起始地址。
  • reserve_size:指定保留内存的大小。
  • fdt_addr:指定设备树文件(FDT)的地址。
  • fdt_size:指定设备树文件(FDT)的大小。
  • netdev:指定网络接口的名称或编号。
  • load:指定要加载的文件或镜像的名称。
  • initrd_addr:指定initramfs文件或镜像的地址。
  • initrd_size:指定initramfs文件或镜像的大小。
  • bootm_addr:指定引导加载程序(bootm)的地址。
  • bootm_args:指定引导加载程序的参数。
  • bootcmd:指定启动命令的序列。
  • autoload:指定是否自动加载设备驱动程序。
  • autostart:指定是否自动启动设备驱动程序。
  • keep_bootcmd:指定是否保持启动命令不变。
  • keep_env:指定是否保持环境变量不变。
  • setenv:用于设置环境变量的命令。
  • saveenv:用于保存当前环境变量的命令。
  • preboot:在启动之前执行的命令序列。
  • postboot:在启动之后执行的命令序列。
  • saveenv and boot:保存环境变量并重新启动系统的命令。
  • reboot:重新启动系统的命令。
  • shutdown:关闭系统的命令。
  • show splash image:显示开机画面的命令。
  • set console type:设置控制台类型的命令。
  • set console baudrate:设置控制台波特率的命令。
  • set console speed:设置控制台速度的命令。
  • set console depth:设置控制台深度(颜色位数)的命令。
  • set console video mode:设置控制台视频模式的命令。
  • set env type [hex/qword/word] var=value:设置环境变量类型的命令。
  • printenv [var] [arg] … [=hex] [=qword] [=word] [=string] [=all] [=one] [=hexnum] [=hexstr] [=hexval] [=dec] [=oct] [=bin] [=octal] [=decstr] [=decnum] [=decval] [=hexvalstr] [=decvalstr] [=octalstr] [=decstr] [=hexstr] [=octstr] [=decstr] [=upper|lower|mixed|cap] [, …] [, …]或printenv var或printenv或printenv all或printenv none或printenv var,var,var,…或printenv var,var,var, … ,var, … ,var或printenv var, … ,var或printenv var1,var2,var3,…或printenv var1,var2,var3,… ,var4,… ,var5,… ,… ,varN或printenv var1,var2,var3,… ,var4,… ,var5,… ,… ,varN, all或printenv var1,var2,var3,… ,var4,… ,var5,… ,… ,varN, none或printenv all或printenv none或printenv var1,var2,var3,… ,
setenv ipaddr {local ip}
setenv serverip {tftp server ip}
setenv ethact eth1
tftpboot $loadaddr bootfs-uboot.img
bootimgup mmc 0:1
bootimgup spi 0:0(如果报错就输入 2次 probe)
reset
setenv ipaddr {local ip}

#这行设置了一个环境变量ipaddr,其值为{local ip}。{local ip}是一个占位符,表示需要获取设备的本地IP地址。
#setenv serverip {tftp server ip}
#这行代码设置了一个环境变量serverip,其值为{tftp server ip}。{tftp server ip}是TFTP服务器的IP地址。
#setenv ethact eth1
#这行代码设置了一个环境变量ethact,其值为eth1。这可能表示默认的网络接口是eth1。
#tftpboot $loadaddr bootfs-uboot.img
#这行命令使用TFTP协议从TFTP服务器下载一个文件。$loadaddr是一个环境变量,表示要下载到内存的地址。文件名是bootfs-uboot.img。
#bootimgup mmc 0:1
#这行命令是用于从SD卡(mmc接口)启动图像。具体来说,它可能是指定从SD卡的第0分区第1块开始加载图像。
#bootimgup spi 0:0(如果报错就输入 2次 probe)
#这行命令似乎是用于从SPI接口启动图像。它指定从SPI的第0分区第0块开始加载图像。括号中的内容提示,如果遇到错误,尝试输入两次probe命令。
#reset
#最后,这行命令重新启动设备

你可能感兴趣的:(开发语言,uboot,linux)