在此之前用的 Linux一直都在虚拟机下运行的,在移植、调试u-boot的时候都是通过 windows 系统下的超级终端进行固件下载。Linux虚拟机上一直使用C-kermit作为串口工具,但不知道怎么使用 Xmodem协议进行固件下载,也就没有深究。凑合用了一段时间。前两天直接硬盘上装了全新fedora9,想把最新的u-boot-1.3.2移植一下,却发现无法再用超级终端下载固件。还好在网上找到了较好的 解决方法。做个简单的笔记,希望能对同样遇到过这个困难的同仁们有所帮助。
(注:本文假定C-kermit已经成功安装并能正常使用)
目标板:AT91RM9200开发板(K9,SDRAM:32M,FLASH:16M)
主机: Fedora Core 9

下载xmodem-at91
http://www.koansoftware.com/it/art.php?art=68
使用此链接直接下载 ftp://ftp.koansoftware.com/public/li...at91/sx-at91.c

修改串口设备名,sx-at91.c使用/dev/ttyS0作为串口设备,如果你的串口设备不是/dev/ttyS0,使用下面的 命令编辑
sed -i 's!/dev/ttyS0!/dev/ttyUSB0!' sx-at91.c# 这里假设串口设备是/dev/ttyUSB0 ,USB转串口设备。
编译
gcc -o xmodem sx-at91.c
复制到~/bin目录下
cp xmodem ~/bin/xmodem

下载固件到裸机的SRAM中
将9200目标板通过串口与主机连接,并将9200的BMS口线拉高,上电后,9200将从内部ROM启动。
运行kermit
kermit
连接设备
C-Kermit>connect
此时kermit进入终端模式,并不停地显示“C“字符,这是9200在等待主机发送固件到SRAM中。
按下Ctrl + /, 再按下c,返回命令模式
发送 文件loader.bin是H9200E开发板提供的固件,在software/uboot/bin目录下)
C-Kermit>run xmodem ~/loader.bin
xmodem下载文件到9200的SRAM中,完成后进入终端模式
C-Kermit>connect
您可以看到
loader 1.0 (Aug 8 2003 - 12:01:07)

XMODEM: Download U-BOOT
同时还会不停得出现“C“字符。
到此为止已经成功得将loader.bin下载到9200的SRAM中,并执行。

uboot的下载与安装
将loader.bin下载到SRAM之后,就可以下载uboot.bin了,这是一个在SRAM中运行的uboot。
按下Ctrl + /, 再按下c,返回命令模式,将uboot.bin下载到SRAM中。
C-Kermit>run xmodem ~/uboot.bin
返回终端模式
C-Kermit>connect
您可以看到uboot的版本信息,及目标板的硬件配置,最后是一个uboot提示符。
U-Boot downloaded successfully......
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐