ISC3000-S U-Boot内置命令详解

提取的ISC3000-S U-Boot内置命令解释:

? - alias for 'help'

FSdel - del a file from the Flash MV FS

FSdir - ls the Flash MV FS

FSformat- format the Flash MV FS

FSrun - Load an exe file from the Flash MV FS and run it

FStftp - tftp a file to the Flash MV FS

FStftpe - tftp an exe file to the Flash MV FS

FStype - cat file from the Flash MV FS

autoscr - run script from memory

base - print or set address offset

bdinfo - print Board Info structure

boot - boot default, i.e., run 'bootcmd'

bootd - boot default, i.e., run 'bootcmd'

bootext2 dev:boot_part1,boot_part2 addr boot_image linux_dev_name

bootm - boot application image from memory

bootp - boot image via network using BootP/TFTP protocol

bubt - Burn an image on the Boot Flash.

cmp - memory compare

cmpm - Compare Memory

coninfo - print console devices and information

cp - memory copy

cpumap - Display CPU memory mapping settings.

crc32 - checksum calculation

date - get/set/reset date & time

dclk - Display the MV device CLKs.

ddimm - Display SPD Dimm Info

diskboot- boot from IDE device

dma - Perform DMA

doubleimage - creat double image

echo - echo args to console

eeprom - EEPROM sub-system

erase - erase FLASH memory

ext2load- load binary file from a Ext2 filesystem

ext2ls - list files in a directory (default /)

fi - Find value in the memory.

flinfo - print FLASH memory information

g - start application at cached address 'addr'(default addr 0x40000)

go - start application at address 'addr'

help - print online help

icrc32 - checksum calculation

ide - IDE sub-system

iloop - infinite loop on address range

imd - i2c memory display

iminfo - print header information for application image

imm - i2c memory modify (auto-incrementing)

imw - memory write (fill)

inm - memory modify (constant address)

iprobe - probe to discover valid I2C chip addresses

ir - reading and changing MV internal register values.

itest - return true/false on integer compare

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

loads - load S-Record file over serial line

loop - infinite loop on address range

map - Diasplay address decode windows

md - memory display

me - PCI master enable

mm - memory modify (auto-incrementing)

mp - map PCI BAR

mtest - simple RAM test

mw - memory write (fill)

nand - NAND sub-system

nand_burn - Burn an image on the Boot Nand Flash.

nboot - boot from NAND device

nfs - boot image via network using NFS protocol

nm - memory modify (constant address)

pci - list and access PCI Configuration Space

phyRead - Read PCI-E Phy register

pciePhyWrite - Write PCI-E Phy register

phyRead - Read Phy register

phyWrite - Write Phy register

ping - send ICMP ECHO_REQUEST to network host

printenv- print environment variables

protect - enable or disable FLASH write protection

rarpboot- boot image via network using RARP/TFTP protocol

reset - Perform RESET of the CPU

resetenv - Return all environment variable to default.

run - run commands in an environment variable

saveenv - save environment variables to persistent storage

se - PCI Slave enable

setenv - set environment variables

sflash - read, write or erase the external SPI Flash.

sg - scanning the PHYs status

sleep - delay execution for some time

sp - Scan PCI bus.

spdcpy - Copy Dimm 0 SPD to Dimm 1 SPD

tftpboot- boot image via network using TFTP protocol

version - print monitor version

基础交互类

命令 详细解释
? 「help 命令的别名」,输入?等价于输入help,用于快速查询所有可用命令的简要说明。使用场景 :开发 / 调试时忘记命令功能,快速检索;示例 :输入?后,终端会列出所有命令 + 简短描述(如? - alias for 'help')。
help 「在线帮助核心命令」,打印所有 / 指定命令的详细帮助信息。扩展用法help 命令名可查看单个命令的具体用法(如help bootm);核心价值:嵌入式终端无手册时,唯一的实时帮助入口。

Flash MV 文件系统操作类(MV=Marvell,常见于网络设备)

命令 详细解释
FSdel 「删除 Flash MV 文件系统文件」,删除 Flash 中 Marvell 专属文件系统里的指定文件。使用场景 :清理 Flash 中无用的配置 / 镜像文件,释放空间;注意 :嵌入式 Flash 擦写有寿命限制,避免频繁删除;需指定文件路径(如FSdel /app/test.bin)。
FSdir 「列出 Flash MV 文件系统内容」,等价于 Linux 的ls,列出 Flash MV 文件系统中指定目录的文件 / 子目录。默认行为 :无参数时列出根目录内容;使用场景:查看 Flash 中已存储的镜像、配置文件是否存在。
FSformat 「格式化 Flash MV 文件系统」,对 Flash 中 Marvell 文件系统分区进行格式化(擦除原有数据 + 建立文件系统结构)。风险 :格式化会清空分区所有数据,需谨慎;使用场景:文件系统损坏、分区重构时执行。
FSrun 「加载并运行 Flash MV 文件系统中的 exe 文件」,从 Flash MV 文件系统读取指定的可执行文件(exe,嵌入式定制格式)到内存,然后执行。核心逻辑 :先读Flash→内存,再跳转到内存地址执行使用场景:运行存储在 Flash 中的应用程序、自定义脚本。
FStftp 「通过 TFTP 传输文件到 Flash MV 文件系统」,从 TFTP 服务器下载指定文件,并写入 Flash 的 MV 文件系统中。前置条件 :需提前配置板卡 IP、TFTP 服务器 IP(如setenv serverip 192.168.1.100);使用场景:将 PC 端的配置文件、数据文件上传到 Flash 存储。
FStftpe 「通过 TFTP 传输 exe 文件到 Flash MV 文件系统」,专用版 FStftp,仅用于传输可执行文件(exe)到 Flash MV 文件系统,做了针对性的格式校验(如校验 exe 文件头)。区别于 FStftp:普通 FStftp 可传任意文件,FStftpe 仅支持 exe,且传输后会验证文件完整性。
FStype 「查看 Flash MV 文件系统文件内容」,等价于 Linux 的cat,打印 Flash MV 文件系统中指定文件的文本内容。使用场景 :查看配置文件(如FStype /config/ip.cfg)、日志文件,调试配置是否正确。

启动 / 引导类

命令 详细解释
autoscr 「运行内存中的脚本」,执行已加载到内存中的脚本文件(如 U-Boot 脚本、shell 类脚本)。核心逻辑 :脚本先通过 TFTP / 串口加载到内存指定地址,再用autoscr 内存地址执行;使用场景:批量执行初始化命令(如配置 IP、挂载分区),替代手动逐条输入。
boot 「默认启动」,执行环境变量bootcmd中定义的启动命令序列,是嵌入式系统最核心的启动命令。核心逻辑 :U-Boot 上电后会自动执行boot(等价于run bootcmd);示例 :若bootcmd=bootm 0x80000000,则boot会加载 0x80000000 地址的镜像并启动。
bootd 「boot 命令的别名」,功能、用法完全等价于boot,属于历史兼容命令(早期 U-Boot 版本区分 boot/bootd,后期统一)。
bootext2 「从 Ext2 文件系统启动」,指定 IDE/SATA 设备的 Ext2 分区,加载 Linux 内核镜像并启动,需传入 4 个参数:bootext2 dev:boot_part1,boot_part2 addr boot_image linux_dev_name参数说明:- dev:存储设备(如 ide0);- boot_part1/2:Ext2 分区号;- addr:镜像加载到的内存地址;- boot_image:内核镜像文件名;- linux_dev_name:Linux 识别的设备名(如 sda1);使用场景:从硬盘 Ext2 分区启动 Linux 系统(嵌入式工控机常用)。
bootm 「从内存启动应用镜像」,嵌入式最核心的启动命令,加载并执行内存中指定地址的镜像(支持 Linux 内核、U-Boot 镜像、应用程序)。核心逻辑 :1. 解析镜像头部(校验格式、大小、入口地址);2. 将镜像解压(若压缩)到指定内存区域;3. 跳转到镜像入口地址执行;示例bootm 0x80000000(启动 0x80000000 地址的镜像);使用场景:TFTP 加载镜像到内存后启动、Flash 读取镜像到内存后启动。
bootp 「通过 BootP/TFTP 网络启动」,结合 BootP(自动获取 IP)和 TFTP(下载镜像),从网络加载镜像并启动。区别于 tftpboot :bootp 自动通过 BootP 协议获取 IP,无需手动配置;使用场景:无本地存储(如无 Flash)的设备、批量部署时统一从服务器启动。
diskboot 「从 IDE 设备启动」,从 IDE 接口的存储设备(如 IDE 硬盘、CF 卡)加载并启动镜像。前置条件 :IDE 设备已分区并存储可启动镜像;使用场景:嵌入式设备从硬盘启动系统(替代 Flash 启动)。
nboot 「从 NAND Flash 启动」,从 NAND Flash 指定分区 / 地址加载镜像并启动。核心适配 :针对 NAND Flash 的坏块管理、ECC 校验做了优化;使用场景:NAND Flash 为主存储的设备(如消费类嵌入式产品)启动系统。
nfs 「通过 NFS 网络启动」,从 NFS 服务器挂载指定目录,加载其中的镜像并启动。优势 :NFS 支持大文件、实时更新镜像,调试时无需反复烧写 Flash;前置配置 :需设置ipaddr(板卡 IP)、serverip(NFS 服务器 IP)、rootpath(NFS 共享目录);使用场景:Linux 内核开发调试,快速测试不同版本内核。
rarpboot 「通过 RARP/TFTP 网络启动」,结合 RARP(反向 ARP,获取 IP)和 TFTP(下载镜像)启动系统。区别于 bootp :RARP 仅解决 IP 获取,无其他配置(如网关);bootp 功能更全;使用场景:老旧网络环境、仅支持 RARP 的设备启动。
tftpboot 「通过 TFTP 网络启动」,手动配置 IP 后,从 TFTP 服务器下载镜像到内存并启动。核心用法tftpboot 内存地址 镜像文件名(如tftpboot 0x80000000 uImage);使用场景:开发调试时最常用的网络启动方式,快速更新 / 测试镜像。

内存操作类

命令 详细解释
base 「打印 / 设置地址偏移量」,用于简化内存地址输入,设置后其他内存命令可基于该偏移量计算地址。示例 :- base:打印当前偏移量(如Base Address: 0x00000000);- base 0x80000000:设置偏移量为 0x80000000,后续md 0x100等价于md 0x80000100使用场景:频繁操作某一内存区域时,减少地址输入长度。
cmp 「内存比较」,对比两个内存区域的内容是否一致,输出第一个不同的地址和数值。用法cmp 地址1 地址2 长度(如cmp 0x80000000 0x81000000 0x1000);使用场景:校验镜像加载是否完整(对比 Flash 和内存中的镜像)、检测内存数据是否被篡改。
cmpm 「增强版内存比较」,功能与cmp一致,是针对 Marvell 芯片优化的内存比较命令,支持更大的内存范围、更快的比较速度(硬件层面优化)。
cp 「内存拷贝」,将指定内存区域的数据复制到另一内存地址。用法cp 源地址 目标地址 长度(如cp 0x80000000 0x81000000 0x100000);使用场景:将 Flash 中的镜像复制到内存、内存数据备份、调整镜像加载位置。
fi 「内存查找值」,在指定内存区域中查找指定数值(支持 8/16/32 位),输出所有匹配的地址。用法fi 起始地址 长度 查找值(如fi 0x80000000 0x1000 0x12345678);使用场景:调试时查找配置参数、定位程序崩溃时的关键寄存器值。
go 「跳转到指定地址执行程序」,直接跳转到内存中指定地址,执行该地址的二进制代码(无镜像解析,仅跳转)。区别于 bootmbootm会解析镜像头部(解压、校验),go仅简单跳转;示例go 0x40000(默认地址)、go 0x80000000使用场景:运行无头部的裸机程序、调试程序入口地址。
g 「go 命令的简化版」,跳转到缓存地址 执行程序,默认地址 0x40000(可指定其他地址)。核心区别g针对缓存地址优化(如 ARM 的 Cache),go直接访问物理地址;使用场景:调试开启 Cache 的程序,验证缓存对执行的影响。
iloop 「内存地址范围无限循环」,对指定内存地址范围执行无限循环操作(如读 / 写循环),用于测试内存稳定性、硬件可靠性。用法iloop 起始地址 结束地址使用场景:硬件测试阶段,验证内存是否存在偶发错误。
imd 「I2C 内存显示」,读取 I2C 总线上挂载的设备(如 EEPROM、传感器)的内存 / 寄存器内容并打印。用法imd I2C地址 寄存器地址 长度使用场景:调试 I2C 设备,查看传感器数据、EEPROM 配置是否正确。
iminfo 「打印镜像头部信息」,解析内存中镜像的头部数据,输出镜像类型、大小、入口地址、校验和等信息。示例iminfo 0x80000000使用场景:验证镜像是否完整、是否适配当前硬件(如内核镜像是否支持该 CPU)。
imm 「I2C 内存修改(自动递增)」,修改 I2C 设备的内存 / 寄存器值,地址自动递增(可连续修改多个地址)。用法imm I2C地址 起始寄存器 数值1 数值2 ...使用场景:调试 I2C 设备,手动配置寄存器参数。
imw 「内存写入(填充)」,向指定内存地址写入指定数值,支持填充连续地址(等价于mw,部分版本别名)。用法imw 地址 数值 长度(如imw 0x80000000 0x0 0x1000,将 0x80000000 开始的 4KB 填充为 0)。
inm 「内存修改(固定地址)」,修改指定内存地址的数值,地址不自动递增(每次仅修改一个地址)。区别于 mmmm修改后地址 + 1,inm始终停留在指定地址;用法inm 地址,回车后输入新值;使用场景:微调单个内存地址的数值,调试时修改参数。
loop 「内存地址范围循环」,与iloop功能类似,对指定内存范围执行循环操作,但可指定循环次数(非无限)。用法loop 起始地址 结束地址 次数使用场景:内存稳定性测试,控制测试时长 / 次数。
md 「内存显示」,打印指定内存地址的内容(默认 16 进制,支持指定格式 / 长度)。扩展用法 :- md 地址:默认显示 32 字节;- md.b 地址 长度:按字节显示;- md.w 地址 长度:按 16 位显示;- md.l 地址 长度:按 32 位显示;使用场景:调试时查看内存数据、验证镜像加载是否正确。
mm 「内存修改(自动递增)」,修改指定内存地址的数值,修改后地址自动递增(可连续修改多个地址)。用法mm 地址,回车后输入新值,再次回车自动跳转到下一个地址;使用场景:连续修改内存区域(如配置参数块)。
mw 「内存写入(填充)」,向指定内存地址写入指定数值,支持填充连续地址(嵌入式最常用的内存写命令)。示例mw 0x80000000 0xFF 0x200(将 0x80000000 开始的 512 字节填充为 0xFF);使用场景:内存初始化、清空数据、模拟硬件寄存器值。
mtest 「简单内存测试」,对指定内存范围执行读写测试(写入随机值→读取校验),检测内存是否有坏块 / 错误。用法mtest 起始地址 结束地址使用场景:硬件调试阶段,验证内存芯片是否正常工作。
nm 「内存修改(固定地址)」,inm的别名,功能、用法完全一致(历史兼容命令)。

硬件配置 / 调试类

命令 详细解释
bdinfo 「打印板卡信息结构体」,输出硬件板卡的核心信息,包括:- CPU 型号、主频;- 内存起始地址、大小;- 串口、网卡等外设地址;- Boot 参数地址;使用场景:调试时确认硬件配置是否正确、驱动是否匹配板卡。
bubt 「烧写镜像到 Boot Flash」,将内存中的镜像烧写到 Boot Flash(启动分区),用于更新 U-Boot 自身镜像。风险 :烧写 Boot Flash 失败会导致设备无法启动,需严格校验镜像;使用场景:升级 U-Boot 固件、修复损坏的 Boot 分区。
cpumap 「显示 CPU 内存映射设置」,打印 CPU 的内存映射表(物理地址→虚拟地址、缓存策略、权限等)。核心价值:调试内存访问异常(如地址越界、缓存未命中),确认内存映射是否符合预期。
crc32 「32 位 CRC 校验计算」,计算指定内存区域的 CRC32 校验和,用于验证数据完整性。用法crc32 起始地址 长度(如crc32 0x80000000 0x100000);使用场景:校验镜像传输 / 加载是否完整、检测 Flash 数据是否损坏。
date 「获取 / 设置 / 重置系统时间」,嵌入式系统的 RTC(实时时钟)操作命令。用法 :- date:打印当前时间;- date 年月日时分秒:设置时间(如date 20251214100000);- date reset:重置 RTC 到默认时间;使用场景:日志时间戳校准、依赖时间的应用(如证书验证)。
dclk 「显示 Marvell 设备时钟」,打印 Marvell 芯片各模块(CPU、网卡、DDR、PCIe)的时钟频率。使用场景:调试性能问题(如时钟频率过低导致网卡速率慢)、验证时钟配置是否正确。
ddimm 「显示 SPD DIMM 信息」,读取 DDR 内存模块的 SPD(Serial Presence Detect)芯片数据,输出内存容量、频率、时序等信息。核心价值:确认内存硬件参数,调试内存兼容性问题。
dma 「执行 DMA 操作」,触发 DMA(直接内存访问)控制器,完成内存→外设、外设→内存、内存→内存的高速数据传输。用法dma 源地址 目标地址 长度 设备使用场景:调试 DMA 驱动、测试高速数据传输性能(如网卡、存储设备)。
doubleimage 「创建双镜像」,在 Flash 中生成主 / 备两个镜像(通常是内核 / 应用),用于冗余备份。核心价值 :提高系统可靠性,主镜像损坏时自动切换到备镜像;使用场景:工业级设备(要求无停机)的固件部署。
echo 「回显参数到控制台」,将输入的参数打印到终端,与 Linux 的echo功能一致。用法echo 字符串/变量(如echo helloecho $ipaddr);使用场景:脚本中打印日志、验证环境变量是否设置正确。
eeprom 「EEPROM 子系统操作」,对 EEPROM(电可擦除可编程只读存储器)进行读 / 写 / 擦除操作。子命令 :通常包含read(读)、write(写)、erase(擦除);使用场景:读写硬件配置参数(如 MAC 地址、板卡序列号)。
erase 「擦除 Flash 内存」,擦除 Flash 指定地址范围的内容(Flash 写入前必须先擦除)。用法erase 起始地址 结束地址注意 :Flash 擦除按扇区 / 块进行,地址需对齐;使用场景:烧写新镜像前擦除旧数据、清理 Flash 分区。
ext2load 「从 Ext2 文件系统加载二进制文件」,从 Ext2 分区读取指定文件到内存。用法ext2load 设备 内存地址 文件名(如ext2load ide0 0x80000000 /uImage);使用场景:从硬盘 Ext2 分区加载内核镜像到内存。
ext2ls 「列出 Ext2 文件系统目录」,等价于 Linux 的ls,列出 Ext2 分区指定目录的文件。默认行为 :无参数时列出根目录;使用场景:查看 Ext2 分区中的镜像、配置文件。
flinfo 「打印 Flash 内存信息」,输出 Flash 的类型(NOR/NAND)、容量、分区表、扇区大小、擦写次数等信息。核心价值:确认 Flash 硬件参数,调试 Flash 读写失败问题。
icrc32 「增强版 32 位 CRC 校验」,功能与crc32一致,针对 Marvell 芯片做了硬件加速,计算速度更快。
ide 「IDE 子系统操作」,对 IDE 设备(硬盘、光驱)进行检测、分区、读写等操作。子命令 :通常包含info(查看设备信息)、read(读数据)、write(写数据);使用场景:调试 IDE 设备驱动、读写硬盘数据。
iprobe 「探测有效 I2C 芯片地址」,扫描 I2C 总线,输出所有响应的 I2C 设备地址。使用场景:确认 I2C 设备是否正常挂载、查找未知 I2C 设备的地址。
ir 「读写 Marvell 内部寄存器」,读取 / 修改 Marvell 芯片的内部寄存器(如网卡、DDR、PCIe 控制器寄存器)。用法 :- ir 寄存器地址:读取寄存器值;- ir 寄存器地址 数值:写入寄存器值;使用场景:底层硬件调试,调整芯片工作模式、定位硬件故障。
itest 「整数比较返回真假」,对两个整数进行比较(等于 / 不等于 / 大于 / 小于),返回 true(0)或 false(非 0),用于脚本条件判断。用法itest 数值1 操作符 数值2(如itest 10 -eq 10返回 0,itest 10 -gt 20返回 1);使用场景:自动化脚本中做条件分支(如判断内存大小是否满足要求)。
loadb 「通过串口加载二进制文件(Kermit 模式)」,使用 Kermit 协议从串口接收二进制文件,写入指定内存地址。前置条件 :PC 端需开启 Kermit 协议(如 minicom);使用场景:无网络时,通过串口传输小镜像 / 配置文件。
loads 「通过串口加载 S-Record 文件」,接收串口传输的 S-Record 格式文件(包含地址 + 数据),写入指定内存地址。S-Record :嵌入式常用的文本格式镜像,包含校验和,传输可靠性高;使用场景:串口传输程序镜像,烧写到 Flash。
map 「显示地址解码窗口」,打印 CPU 的地址解码表(地址范围→外设 / 内存映射关系)。核心价值:调试地址访问错误(如访问未映射的地址导致崩溃)。
me 「PCI 主设备使能」,开启 PCI 总线的主设备模式(允许 PCI 设备主动访问内存)。使用场景:调试 PCI 设备(如网卡、显卡),使其具备 DMA 能力。
mp 「映射 PCI BAR」,将 PCI 设备的 BAR(Base Address Register)映射到 CPU 可访问的内存地址。核心逻辑 :PCI 设备通过 BAR 声明内存需求,mp完成地址映射后,CPU 才能访问 PCI 设备;使用场景:调试 PCI 设备驱动,访问 PCI 设备寄存器。
nand 「NAND Flash 子系统操作」,对 NAND Flash 进行读 / 写 / 擦除 / 坏块管理等操作。子命令read(读)、write(写)、erase(擦除)、bad(查看坏块);核心适配 :处理 NAND Flash 的坏块、ECC 校验;使用场景:NAND Flash 的镜像烧写、数据读写。
nand_burn 「烧写镜像到 Boot NAND Flash」,专用命令,将内存中的镜像烧写到 NAND Flash 的 Boot 分区(启动分区)。区别于 bubtbubt针对 NOR Flash,nand_burn针对 NAND Flash;使用场景:升级 NAND Flash 中的 U-Boot 镜像。
pci 「PCI 配置空间访问」,列出 PCI 总线上的设备,读取 / 修改 PCI 设备的配置空间寄存器。用法 :- pci:列出所有 PCI 设备(总线号、设备号、功能号);- pci read 总线:设备:功能 寄存器 长度:读取配置空间;使用场景:调试 PCI 设备,确认设备是否枚举成功、配置参数是否正确。
phyRead 「读取 PHY 寄存器」,读取以太网 PHY 芯片(物理层)的寄存器值(如链路状态、速率、双工模式)。用法phyRead PHY地址 寄存器地址使用场景:调试网络故障(如链路不通、速率不匹配),查看 PHY 芯片状态。
pciePhyWrite 「写入 PCIe PHY 寄存器」,修改 PCIe PHY 芯片的寄存器值,调整 PCIe 链路参数(速率、宽度、均衡)。使用场景:调试 PCIe 设备兼容性问题(如链路协商失败)。
phyWrite 「写入 PHY 寄存器」,修改以太网 PHY 芯片的寄存器值(如强制设置 1000M 全双工、关闭自动协商)。用法phyWrite PHY地址 寄存器地址 数值使用场景:调试网络链路问题,手动配置 PHY 参数。
ping 「网络连通性测试」,发送 ICMP Echo 请求到指定 IP,检测网络是否可达。用法ping 目标IP(如ping 192.168.1.1);前置配置 :需先设置板卡 IP(setenv ipaddr 192.168.1.10);使用场景:调试网络配置(如 IP、网关、网线),确认板卡与服务器 / 网关连通。
protect 「启用 / 禁用 Flash 写保护」,对 Flash 指定区域设置写保护(禁止擦写)或取消保护。用法 :- protect on 起始地址 结束地址:开启保护;- protect off 起始地址 结束地址:取消保护;使用场景:保护 Boot 分区、配置分区不被误擦写,提高系统安全性。
reset 「CPU 复位」,触发 CPU 硬复位(等价于按复位键),重启整个系统。核心逻辑 :清空寄存器、重置外设、重新执行 U-Boot;使用场景:系统卡死、配置修改后需重启生效。
resetenv 「恢复环境变量默认值」,将所有环境变量(如 ipaddr、bootcmd)恢复到出厂默认值。风险 :会丢失自定义的环境变量配置;使用场景:环境变量配置错误导致系统无法启动,恢复默认后重新配置。
run 「运行环境变量中的命令序列」,执行环境变量中存储的命令串(环境变量值为 U-Boot 命令)。示例 :- setenv testcmd 'ping 192.168.1.1';- run testcmd(执行 ping 命令);核心价值:批量执行命令、自定义启动脚本。
saveenv 「保存环境变量到持久存储」,将当前修改的环境变量(如 ipaddr、bootcmd)写入 Flash(环境变量分区),断电后不丢失。注意 :修改环境变量后必须执行saveenv才会生效;使用场景:配置完成后保存参数(如固定 IP、启动命令)。
se 「PCI 从设备使能」,开启 PCI 总线的从设备模式(允许 CPU 访问 PCI 设备的内存 / 寄存器)。使用场景:调试 PCI 设备,使 CPU 能读写 PCI 设备的数据。
setenv 「设置环境变量」,定义 / 修改 U-Boot 环境变量。用法 :- setenv 变量名 变量值(如setenv ipaddr 192.168.1.10);- setenv 变量名(清空变量值);核心价值:定制系统行为(如启动命令、网络参数)。
sflash 「操作外部 SPI Flash」,对 SPI 接口的 Flash 进行读 / 写 / 擦除操作。子命令read(读)、write(写)、erase(擦除);使用场景:读写 SPI Flash 中的配置、小镜像文件。
sg 「扫描 PHY 状态」,批量扫描所有以太网 PHY 芯片的状态(链路、速率、双工、错误计数),输出汇总信息。使用场景:多网口设备调试,快速排查所有网口的链路问题。
sleep 「延迟执行」,暂停指定时间(单位:秒)后继续执行后续命令。用法sleep 时长(如sleep 5,延迟 5 秒);使用场景:脚本中等待硬件初始化(如网卡、硬盘)、定时执行命令。
sp 「扫描 PCI 总线」,遍历 PCI 总线,列出所有已枚举的 PCI 设备(总线号、设备号、功能号、厂商 ID、设备 ID)。使用场景:确认 PCI 设备是否被识别、排查 PCI 设备驱动问题。
spdcpy 「复制 DIMM 0 SPD 到 DIMM 1」,将第一个 DDR 内存模块的 SPD 数据复制到第二个模块,用于内存兼容性调试。使用场景:双内存模块配置不一致时,统一 SPD 参数,解决内存启动失败问题。
version 「打印监控程序版本」,输出 U-Boot(或其他监控程序)的版本号、编译时间、CPU 架构等信息。示例version可能输出U-Boot 2023.01 (Dec 14 2025 - 10:00:00) for Marvell ARMv7使用场景:确认固件版本、排查版本兼容性问题。

核心总结

这份命令列表是Marvell 芯片适配版 U-Boot的典型命令集,核心分为六大类:

  1. 基础交互(?/help):辅助查询命令;
  2. 文件系统(FSxxx):操作 Flash 中的 Marvell 专属文件系统;
  3. 启动引导(boot/bootm/tftpboot 等):嵌入式系统最核心的启动流程控制;
  4. 内存操作(md/mw/cmp 等):调试、镜像加载的基础;
  5. 硬件调试(phyRead/ir/pci 等):底层硬件寄存器、外设调试;
  6. 系统配置(setenv/saveenv/date 等):定制系统参数、持久化配置。

这些命令是嵌入式开发 / 调试的核心工具,需结合具体硬件(Marvell 芯片、Flash 类型、内存配置)和场景(启动、调试、升级)灵活使用,且需注意嵌入式硬件的特殊性(如 Flash 擦写寿命、地址对齐、权限保护)。

相关推荐
点灯小铭2 小时前
基于单片机的安全带长度高度拉力监测与自动锁紧控制系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
就是蠢啊3 小时前
51单片机——红外遥控(一)
单片机·嵌入式硬件·51单片机
范纹杉想快点毕业3 小时前
FPGA实现同步RS422转UART方案
数据库·单片机·嵌入式硬件·fpga开发·架构
CS Beginner3 小时前
【单片机】如何理解GPIO的配置寄存器?
单片机·嵌入式硬件
平凡灵感码头4 小时前
第一次做蓝牙产品,从零开发(5)蓝牙音频项目中功放芯片
单片机·嵌入式硬件·音视频
星期天211 小时前
1.1江科大之LED闪烁&LED流水灯&蜂鸣器
stm32·单片机·嵌入式硬件
梓德原11 小时前
【经验】MSP430编译器使用经验-IAR编辑框分框
单片机·嵌入式硬件·物联网
电子工程师-C5112 小时前
基于51单片机的自动乒乓球发球机
单片机·嵌入式硬件·51单片机
星期天213 小时前
1.2STM32江科大GPIO的输入(电路硬件连接)
单片机·嵌入式硬件·stm32江科大·gpio的输入·硬件电路的链接