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

原创文章版权所有!如需转载,请注明出处: 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 只支持 xmodem zmodem 。而上位机和开发板之间的文件传输又实在是一件非常重要的事,所以现在修改代码以增加对 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 )依照 loady do_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 协议的支持。

你可能感兴趣的:(Boot)