1.SD卡升级
1、切换到SD卡
=> mmc dev 0
switch to partitions #0, OK
mmc0 is current device
=> mmc info
Device: FSL_SDHC
Manufacturer ID: 0
OEM: 3432
Name: SD16G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 14.9 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
2、查看版本记录
=> version
U-Boot 2016.03-svn1 (Jun 08 2022 - 20:06:10 +0800)
arm-linux-gnueabihf-gcc (Linaro GCC 4.9-2017.01) 4.9.4
GNU ld (Linaro_Binutils-2017.01) 2.24.0.20141017 Linaro 2014_11-3-git
3、开启tftp服务并进行传输
=> tftp 80800000 u-boot.imx
Using FEC1 device
TFTP from server 192.168.2.105; our IP address is 192.168.2.108
Filename ‘u-boot.imx’.
Load address: 0x80800000
Loading: #################################################################
#################################################################
######
219.7 KiB/s
done
Bytes transferred = 695296 (a9c00 hex)
4、写入分区
切换到SDK卡的分区0
mmc dev 0 0
switch to partitions #0, OK
mmc0 is current device
计算所占分区大小
695296/512=1358 0x54e
写入SD卡,但是不能写道前两个区(0 1),那属于分区表,从第2个分区开始写
=> mmc write 0x80800000 2 54e
MMC write: dev # 0, block # 2, count 1358 … 1358 blocks written: OK
5、复位查看
=> version
U-Boot 2016.03-svn4 (Jun 10 2022 - 20:54:51 +0800)
arm-linux-gnueabihf-gcc (Linaro GCC 4.9-2017.01) 4.9.4
GNU ld (Linaro_Binutils-2017.01) 2.24.0.20141017 Linaro 2014_11-3-git
2.EMMC升级
mmc dev 1 0 /* 切换到EMMC的分区0 /
tftp 80800000 u-boot.imx / 下载u-boot.imx到DRAM中的指定地址中 /
mmc write 80800000 2 54e / 烧写u-boot.imx到EMMC中 /
mmc partconf 1 1 0 0 / 分区配置 第一个1代表设备, 第二个1代表响应发送,启动分区和访问分区均设置0*/
3.uboot升级bin文件进行调试
原理和EMMC升级一致,通过mmc,命令下载代码运行
1)确认bin文件下载运行位置
打开文件u-boot.map,确认文件运行位置为0x87800000
2)下载代码
tftp 87800000 u-boot.bin
3)运行代码
go 87800000
总结
通过上述方法,可以更快的方便的进行uboot代码的调试