u-boot-2010.03在tq6410上的移植详解(八)

本文介绍如何在U-Boot中增加Xmodem协议支持,通过新增loadx命令及对应函数实现串口文件传输功能,适用于SecureCRT等工具。

原创文章版权所有!如需转载,请注明出处: http://hi.baidu.com/liushuiyue1/myhome 谢谢合作!!!!!

重新编译uboot 并下载到Nand Flash 中,使用nand 指令烧写yaffs2 文件到nand 中如下图所示,至此uboot 已支持yaffs 的烧写。

八. 支持串口 xmodem 协议

U-Boot 默认支持的 loadb 命令需要配合 Linux 下的 kermit 工具来使用, loady 命令通过串口 ymodem 协议来传输文件。 Windows 下的超级终端虽然支持 ymodem, 但是它的使用界面实在不友好。而 SecureCRT 只支持 xmodemzmodem 。而上位机和开发板之间的文件传输又实在是一件非常重要的事,所以现在修改代码以增加对 xmodem 的支持,即增加一个命令 loadx

1 )依照 loady 的实现来编写代码,首先使用 U_BOOT_CMD 宏来增加 loadx 命令(在文件 common/cmd_load.c 文件中):

U_BOOT_CMD(

loadx, 3, 0, do_load_serial_bin,

"load binary file over serial line (xmodem mode)",

"[ off ] [ baud ]/n"

" - load binary file over serial line"

" with offset 'off' and baudrate 'baud'"

);

2 )依照 loadydo_load_serial_bin 函数中增加对 loadx 命令的处理分支。

else if(strcmp(argv[0],"loadx")==0) {

printf ("## Ready for binary (xmodem) download "

"to 0x%08lX at %d bps.../n",

offset,

load_baudrate);

addr = load_serial_xmodem (offset);

}

3 )由于 addr 行调用了 load_serial_xmodem 函数,依照 load_serial_ymodem 实现的一个函数。首先在文件开头增加 loadx_serial_xmodem 函数的声明,然后复制 load_serial_ymodem 函数为 load_serial_xmodem ,稍作修改: (1 )、将局部数组ymodemBuf 改名为xmodemBuf ,并在后面使用到的地方统一修改,这只是为了与函数名称一致,可改可不改。(2 )、info.mode 的值从xyzModem_ymodem 改为xyzModem_xmodem 。

#if defined(CONFIG_CMD_LOADB)

static ulong load_serial_ymodem (ulong offset);

static ulong load_serial_xmodem (ulong offset);

#endif

重新编译,执行 loadx ,然后在 secureCRT Transfer 菜单下点 Send Xmodem xxx 已经放在了 Upload 目录里),完成对 串口 xmodem 协议的支持。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值