U-Boot 是嵌入式系統中常用的引導加載程序(bootloader),它提供了一套命令行接口,用于調試、加載操作系統鏡像以及進行硬件測試等操作。
1、變量操作命令
這些命令用于管理 U-Boot 的環境變量。
命令 | 功能說明 |
---|---|
setenv name value | 設置一個環境變量?name ?的值為?value 。 |
setenv name | 刪除指定的環境變量?name 。 |
saveenv | 將當前的環境變量保存到非易失性存儲器(如Flash)中。 |
printenv ?/?print | 顯示所有或指定的環境變量。 |
示例:
setenv bootdelay 3
saveenv
2、內存操作命令
這些命令用于讀寫和操作內存內容。
命令 | 功能說明 |
---|---|
md [.b/.w/.l] address [count] | 以字節/字/長字格式顯示內存內容。 |
mm [.b/.w/.l] address | 交互式修改內存內容。 |
mw [.b/.w/.l] address value [count] | 寫入指定值到內存地址。 |
cp [.b/.w/.l] source target count | 拷貝內存數據。 |
cmp [.b/.w/.l] addr1 addr2 count | 比較兩個內存區域的內容。 |
nm [.b/.w/.l] address | 監視內存地址并允許修改。 |
示例:
md.l 0x80000000 10 # 查看從地址 0x80000000 開始的 10 個 long 數據
mw.b 0x81000000 ff 1000 # 寫入 0xff 到地址 0x81000000 開始的 1000 字節
3、網絡操作命令
用于配置網絡參數和傳輸文件。
命令 | 功能說明 |
---|---|
setenv ipaddr x.x.x.x | 設置開發板 IP 地址。 |
setenv ethaddr xx:xx:xx:xx:xx:xx | 設置 MAC 地址。 |
setenv gatewayip x.x.x.x | 設置網關地址。 |
setenv netmask x.x.x.x | 設置子網掩碼。 |
setenv serverip x.x.x.x | 設置 TFTP/NFS 服務器 IP。 |
dhcp | 自動獲取 IP 地址(通過 DHCP)。 |
tftp address filename | 從 TFTP 服務器下載文件到指定內存地址。 |
nfs address server:path | 加載 NFS 文件系統中的內核文件。 |
ping x.x.x.x | 測試網絡連接是否通暢。 |
示例:
setenv serverip 192.168.1.100
tftp 0x8007fc00 zImage
4、eMMC 和 SD 卡操作命令
用于操作 MMC 存儲設備(如 eMMC 或 SD 卡)。
命令 | 功能說明 |
---|---|
mmc info | 顯示當前 MMC 設備信息。 |
mmc rescan | 掃描并重新識別 MMC 設備。 |
mmc dev [0/1] | 切換 MMC 設備編號(0 或 1)。 |
mmc part | 顯示 MMC 分區信息。 |
mmc read address block count | 從 MMC 讀取數據到內存。 |
mmc write address block count | 將內存數據寫入 MMC。 |
示例:
mmc dev 0
mmc read 0x8007fc00 0x800 0x200 # 從 block 0x800 讀取 0x200 塊到內存
5、EXT 文件系統操作命令
支持 EXT2/EXT3/EXT4 文件系統的訪問。
命令 | 功能說明 |
---|---|
ext4ls [dev:mmcblk0p1] [dir] | 列出目錄下的文件。 |
ext4load address file | 加載文件到內存。 |
ext4write address file size | 將內存中的數據寫入文件。 |
示例:
ext4ls mmc 0:1 /boot/
ext4load mmc 0:1 0x8007fc00 /boot/zImage
6、啟動相關命令
用于加載并啟動 Linux 內核。
命令 | 功能說明 |
---|---|
bootm [address] | 啟動一個 uImage 格式的 Linux 內核。 |
bootz [address] | 啟動一個 zImage 格式的 Linux 內核。 |
boot ?/?bootd | 使用默認的啟動命令啟動系統(通常由?bootcmd ?定義)。 |
示例:
bootm 0x8007fc00
7、其他常用命令
命令 | 功能說明 |
---|---|
ums | 將設備掛載為 USB 大容量存儲設備。 |
reset | 重啟系統。 |
go address | 在指定地址執行代碼(跳轉到某段程序入口)。 |
run name | 運行自定義的命令序列(由?setenv name cmd1; cmd2 ?定義)。 |
mtest | 內存測試命令。 |
mii info | 顯示 PHY 狀態信息。 |
mdio | 操作 MDIO 總線上的寄存器。 |
示例:
run bootcmd
注意
- 所有命令都可以通過輸入?
help
?或??
?來查看詳細用法。 - 可以使用?
setenv bootcmd 'your command'
?設置自動啟動命令。 - 使用?
saveenv
?保存設置后,下次啟動時依然有效。