U-Boot移植--支持串口Xmodem协议
来源:互联网 发布:java面试专业技能 编辑:程序博客网 时间:2024/05/17 01:42
U-Boot默认支持的loadb命令需要配合Linux下的kermit工具来使用,loady命令通过串口ymodem协议来传输文件。Windows下的超级终端虽然支持ymodem,但是它的使用界面实在不友好。而SecureCRT只支持xmodem和zmodem。而上位机和开发板之间的文件传输又实在是一件非常重要的事,所以现在修改代码以增加对xmodem的支持,即增加一个命令loadx。(在配置文件中,会自动包含一个默认的命令配置文件include/config_cmd_default.h,同时U-Boot已经实现的命令的列表在include/config_cmd_all.h中。)依照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'"
);
其次,在do_load_serial_bin函数中增加对loadx命令的处理分支。也依照loady来实现:
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);
}
addr行调用了load_serial_xmodem函数,它也是依照load_serial_ymodem实现的一个函数:
#if defined(CONFIG_CMD_LOADB)
static ulong load_serial_ymodem (ulong offset);
static ulong load_serial_xmodem (ulong offset);
#endif
……
static ulong load_serial_ymodem (ulong offset)
{
……
char ymodemBuf[1024];
……
info.mode = xyzModem_xmodem;
……
}
首先在文件开头增加loadx_serial_xmodem函数的声明,然后复制load_serial_ymodem函数为load_serial_xmodem,稍作修改。
(1)、将局部数组ymodemBuf改名为xmodemBuf,并在后面使用到的地方统一修改,这只是为了与函数名称一致,可改可不改。
(2)、info.mode的值从xyzModem_ymodem改为xyzModem_xmodem。
重新编译,就可以使用loadx命令下载文件了。
- U-Boot移植--支持串口Xmodem协议
- u-boot-2011.03在TQ2440上的移植(10)--支持串口xmodem协议
- u-boot在s3c2416上的移植(10)--支持串口xmodem协议
- U-Boot移植串口xmodem协议_附测试代码
- u-boot移植(二)支持串口及u-boot框架
- 移植u-boot-2015.07-rc3之修改代码支持串口(三)
- u-boot移植(八)支持yaffs
- u-boot移植4:支持 网络
- 移植u-boot-2012.04----支持nand启动
- 移植u-boot-2012.04----支持NORFlash启动
- 移植u-boot-2012.04----支持Nandflash启动
- 移植u-boot-2012.04----支持DM9000网卡
- TQ2440 u-boot-2012.10移植一串口正常输出
- TQ2440 u-boot-2012.04.01移植一串口正常输出
- TQ2440 u-boot-2012.10移植一串口正常输出
- TQ2440 u-boot-2012.04.01移植一串口正常输出
- 移植u-boot启动时串口出现乱码
- 2440 移植u-boot 是串口乱码问题
- Java基本类型和引用类型
- Scramble String
- 39级台阶
- 补零与离散傅里叶变换的分辨率
- Java 引用传递
- U-Boot移植--支持串口Xmodem协议
- [UVALive5058] Counting BST && 计数DP + BST
- 01背包
- 1036. Boys vs Girls (25)
- 定位不到元素的原因
- CAKeyframeAnimation简单旋转动画
- KMP算法
- PIC(programmable interrupt controller),可编程中断控制器。
- POJ 2253 Frogger(kuangbin带你飞 专题四:最短路)