1.help version
以下是环境变量相关的命令:printenv setenv saveenv
2.printenv
查看全部的环境变量:
TINY4412 # printenv
baudrate=115200
bootcmd=movi read kernel 0 40008000;movi read rootfs 0 41000000 100000;bootm 40008000
41000000
bootdelay=3
ethaddr=00:40:5c:26:0a:5b
gatewayip=192.168.0.1
ipaddr=192.168.0.20
netmask=255.255.255.0
serverip=192.168.0.10
Environment size: 252/16380 bytes
查看指定名的环境变量
TINY4412 # printenv bootdelay
bootdelay=3
TINY4412 # printenv bootdelay gatewayip ipaddr
bootdelay=3
gatewayip=192.168.0.1
ipaddr=192.168.0.20
TINY4412 #
3.setenv
例如:
TINY4412 # setenv bootdelay 5
4.saveenv
以下是固件下载的一些命令:loady loadx loadb go
1.loady 命令(使用串口下载代码到内存中)
2.loadx 命令(使用串口下载代码到内存中)
和 loady 命令操作相同,只是选择的协议不同,使用 xmodem mode。
3.loadb 命令(使用串口下载代码到内存中)
和 loady 命令操作相同,只是选择的协议不同。 使用 kermit mode 协议。
4.go 命令(跳转命令)
这个命令只适合引导裸机程序。单纯一个地址跳转命令。(ucOS 有代码工程也会认为是裸机一样的效果)。
先下载一个可以运行的程序到一个内存地址,然后使用 go 语句跳转到该地址。
TINY4412 # go 0x02023400
## Starting application at 0x02023400 ...
这时候裸机程序已经运行起来, u-boot 的生命终结了。
以下是存储相关的命令:fatinfo fatls fatload (mmc rescan)mmc mmcinfo emmc md mm
fatinfo:查看指定设备的 fat 分区信息
TINY4412 # help fatinfo
fatinfo - fatinfo - print information about filesystem
Usage:
fatinfo <interface> <dev[:part]>
- print information about filesystem from 'dev' on 'interface'
帮助中有 <> 包含起来的是必须的选项
interface: 接口可以 usb ,或 mmc 。 mmc—SD 卡, MMC 卡, eMMC
dev:开发板上的哪个设备。用数字表示, 0 表示启动设备, >0 表示其他设备(1,2,3,……)。
part:是表示分区号,可选择。
fatls:查看指定设备指定目录的文件列表
TINY4412 # help fatls
fatls - list files in a directory (default /)
Usage:
fatls <interface> <dev[:part]> [directory]
- list files from 'dev' on 'interface' in a 'directory'
TINY4412 #
interface: 接口可以 usb ,或 mmc 。 mmc—SD 卡, MMC 卡, eMMC
dev:开发板上的哪个设备。用数字表示, 0 表示启动设备, >0 表示其他设备(1,2,3,……)。
part:是表示分区号,可选择。
directory:目录名,可选择。
TINY4412 # fatls mmc 0
Partition1: Start Address(0x4b800), Size(0xe8c800)
system volume information/
images/
0 file(s), 2 dir(s)
mmc rescan 命令(重新扫描开发析上的 mmc 设备)
这个命令用于像 SD 卡,TF 卡拔出后再次插入,不重新上电情况, 重新识别它们。
示例:
测试命令:
先拔出卡, 然后重新插入, 输入以下命令:
TINY4412 # fatls mmc 0
.......
MMC_DATA_READ
** Can't read from device 0 **
** Unable to use mmc 0:1 for fatls **
结果显示,找不到 SD 卡。
重新扫描 mmc 设备:
TINY4412 # mmc rescan 0
再次输入相同的命令:结果显示已经可以识 SD 卡了。
TINY4412 # fatls mmc 0
Partition1: Start Address(0x4b800), Size(0xe8c800)
system volume information/
images/
392 led.bin
1 file(s), 2 dir(s)
TINY4412 #
fatload 命令(从 fat 分区中加载文件到内存中)
TINY4412 # help fatload
fatload - fatload - load binary file from a dos filesystem
Usage:
fatload <interface> <dev[:part]> <addr> <filename> [bytes]
- load binary file 'filename' from 'dev' on 'interface'
to address 'addr' from dos filesystem
说明:
interface: 接口可以 usb ,或 mmc 。 mmc—SD 卡, MMC 卡, eMMC
dev:开发板上的哪个设备。用数字表示, 0 表示启动设备, >0 表示其他设备(1,2,3,……)。
part:是表示分区号,可选择。
addr: 目标内存地址。
filename:要读取的文件(要带完整路径,如: /image/led.bin)
bytes: 要读取的字节数量,可选, 不写的情况下默认全部读取
示例: 加载 sd 卡中的 led.bin 文件到内存中,然后使用 go 命令测试程序。
TINY4412 # fatload mmc 0 0x02023400 led.bin
Partition1: Start Address(0x4b800), Size(0xe8c800)
reading led.bin
392 bytes read
TINY4412 # go 0x02023400
## Starting application at 0x02023400 ...
ping 命令(检测网络连接是否连通)
和电脑的 ping 功能相同,不过只 ping IP 地址
示例:
TINY4412 # ping 192.168.1.101
No ethernet found.
ping failed; host 192.168.1.101 is not alive
TINY4412 #
not alive 表示开发板和 192.168.1.101 主机没有连接。
md 命令(查看内存数据)
TINY4412 # help md
md - memory display
Usage:
md [.b, .w, .l] address [# of objects]
先加载一个 led.bin 到内存中。
TINY4412 # fatload mmc 0 0x02023400 led.bin
Partition1: Start Address(0x4b800), Size(0xe8c800)
reading led.bin
392 bytes read
使用 md 命令查看内存中的数据
TINY4412 # md 0x02023400
02023400: e59fd004 eb000001 eafffffe 02060000 ................
02023410: e52db004 e28db000 e3a02411 e2822e2e ..-......$......
mm 命令(内存修改)
可以使用来修改寄存器内容。
TINY4412 # help mm
mm - memory modify (auto-incrementing address)
Usage:
mm [.b, .w, .l] address
先查看未修改内容:
TINY4412 # md.b 0x40000000
40000000: 04 d0 9f e5 01 00 00 eb fe ff ff ea 00 00 06 02 ................
40000010: 04 b0 2d e5 00 b0 8d e2 11 24 a0 e3 2e 2e 82 e2 ..-......$......
开始修改
TINY4412 # mm.b 0x40000000
40000000: 04 ? 11 ---修改第 1 个为 11
40000001: d0 ? 12 ---修改第 2 个为 12
40000002:9f ? n ---结束修改
其他形式:
md.w 是一次修改 2 字节
md.l 是一次修改 4 字节
md. 是一次修改 4 字节
mmcinfo 命令(查看 mmc 类指定设备的基本信息)
TINY4412 # help mmcinfo
mmcinfo - mmcinfo <dev num>-- display MMC info
Usage:
mmcinfo <dev num>
说明:
<dev num>: 就是 mmc 设备编号,从为 0 开始, 0 表示启动设备
示例:
TINY4412 # mmcinfo 0
Device: S3C_HSMMC2
Manufacturer ID: 27
OEM: 5048
Name: SD8GB
Tran Speed: 0
Rd Block Len: 512
SD version 2.0
High Capacity: Yes
Size: 7600MB (block: 15564800)
Bus Width: 4-bit
Boot Partition Size: 0 KB
TINY4412 # mmcinfo 1
Device: S5P_MSHC4
Manufacturer ID: 15
OEM: 100
Name: M4G1Y
Tran Speed: 0
Rd Block Len: 512
MMC version 4.0
High Capacity: Yes
Size: 3728MB (block: 7634944)
Bus Width: 8-bit
Boot Partition Size: 2048 KB
TINY4412 #
mmc 命令(针对 mmc 设备操作的命令, 有多个成员)
TINY4412 # help mmc
mmc - MMC sub system
Usage:
mmc read <device num> addr blk# cnt
mmc write <device num> addr blk# cnt
mmc rescan <device num>
mmc erase <boot | user> <device num> <start block> <block count>
mmc list - lists available devices
mmc list 命令:列出当前的 mmc 设备
TINY4412 # mmc list
S3C_HSMMC2: 0
S5P_MSHC4: 1
TINY4412 #
先加载测试文件 :
TINY4412 # fatload mmc 0 0x02023400 led.bin
Partition1: Start Address(0x4b800), Size(0xe8c800)
reading led.bin
392 bytes read
打开 emmc
TINY4412 # emmc open 1
再显示数据
TINY4412 # mmc read 1 41000000 0 1
MMC read: dev # 1, block # 0, count 1 ... 1 blocks read: OK
先查看数据
TINY4412 # md.b 41000000
把内存中 0x02023400 的数据写入有 MMC 第 0 个扇区开始,总共写入 1 个扇区。
TINY4412 # mmc write 1 0x02023400 0 1
再显示数据
TINY4412 # mmc read 1 41000000 0 1
MMC read: dev # 1, block # 0, count 1 ... 1 blocks read: OK
先查看数据
TINY4412 # md.b 41000000
对比出现的数据和 led.bin 的前面数据是否相同 。
mmc 命令综合应用
把 led.bin 下载到 eMMC 中,然后,修改 bootcmd 环境变量, 实现 emmc 启动 led.bin 程
序。
加载 led.bin 到内存中:
TINY4412 # fatload mmc 0 40000000 led.bin
Partition1: Start Address(0x4b800), Size(0xe8c800)
reading led.bin
392 bytes read
打开有 eMMC
TINY4412 # emmc open 1
eMMC OPEN Success.!!
!!!Notice!!!
!You must close eMMC boot Partition after all image writing!
!eMMC boot partition has continuity at image writing time.!
!So, Do not close boot partition, Before, all images is written.!
写入有 eMMC
TINY4412 # mmc write 1 0x40000000 0 10
MMC write: dev # 1, block # 0, count 16 ... 16 blocks written: OK
TINY4412 #
TINY4412 # emmc close 1
eMMC CLOSE Success.!!
TINY4412 #
设置 bootcmd 环境变量
TINY4412 # setenv bootcmd 'emmc open 1;mmc read 1 0x02023400 0 1;emmc close 1;go 0x02023400'
保存环境变量:
TINY4412 # saveenv
Saving Environment to SMDK bootable device...
done
TINY4412 #
重新启动开发板:
OK
U-Boot 2010.12 (Jul 18 2015 - 08:22:10) for TINY4412
CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9]
APLL = 1400MHz, MPLL = 800MHz
Board: TINY4412
DRAM: 1023 MiB
vdd_arm: 1.2
vdd_int: 1.0
vdd_mif: 1.1
BL1 version: N/A (TrustZone Enabled BSP)
Checking Boot Mode ... SDMMC
REVISION: 1.1
MMC Device 0: 7600 MB
MMC Device 1: 3728 MB
MMC Device 2: N/A
Net: No ethernet found.
Hit any key to stop autoboot: 0
eMMC OPEN Success.!!
!!!Notice!!!
!You must close eMMC boot Partition after all image writing!
!eMMC boot partition has continuity at image writing time.!
!So, Do not close boot partition, Before, all images is written.!
MMC read: dev # 1, block # 0, count 1 ... 1 blocks read: OK
eMMC CLOSE Success.!!
## Starting application at 0x02023400 ...
按下开发板按键,观察灯状态。