uboot在线升级的原理是先通过某种外部接口(如网口、串口、USB等)将目标文件加载到DDR,然后从DDR中读取二进制文件并写到存储介质指定地址,由于639A底板并无网口,唯一与外部通信的接口就是串口,所以本节将借助639A板卡的本地串口完成在线升级功能。
Kermit文件运输协议是用于PC之间交换文件的一种简单的文件运输协议,uboot和secureCRT软件就支持Kermit协议,我们就使用Kermit协议来完成镜像在PC和uboot之间的传输。
2.6.2.1 分部敲命令升级
步骤1:uboot命令行输入命令“sf probe”,probe翻译成中文译为“探针”,
步骤2:uboot命令行输入命令“sf erase 10000 60000”,从 Flash 0x00010000地址开始向后擦除0x60000字节,若已经设置MTD分区,亦可使用命令“sf erase uboot 60000”命令擦除,效果是一样的。
步骤3:uboot命令行输入命令“loadb c2000000”,回车显示如下
然后单击“SecureCRT->Transter->Send Kermit”,下图所示
选中“u-boot.img”,点击OK,文件开始加载到内存,加载完成后,如下图所示,加载的二进制文件大小为264352Byte。
步骤4:uboot命令行输入命令“sf write c2000000 10000 408a0”,若已经完成设备MTD分区,则可以使用“sf write c2000000 uboot”将uboot镜像烧录至Flash。