• 串口传输文件 lrzsz


    假设有一种开发环境,一块板子,除了串口,没有任何外部出入输出设备,没有sd卡,没有网线,这个时候如果你想跟这块板子传输交互文件,要怎么办?

    根据modem所采用的文件传输协议:xmodem,ymodem,zmodem将其分类  

    xmodem:简单通用,传输信息单位是“包=128B”,传输速度慢,适合电话线路质量差的情况下用  
    ymodem:由XMODEM演变来,效率可靠性高,包=128*8B;一次传输可发送或接受几个文件  

    zmodem:于上两种不同,已连续的数据流发送数据,效率更高

    在ubuntu主机中可以直接使用rz或者sz命令与secureCRT交互文件

    在开发板中busybox提供rx命令可直接Xmodem下载文件到开发板,但是没有找到上传命令

    命令:

    rz 下载Zmodem

    xz 上传Zmodem

    rx 下载Zmodem

    如果想在开发板中上传文件的话可以移植完整版的lrzsz到开发板,完整使用其功能

    一,移植lrzsz到开发板中

    lrzsz工具在配合secureCRT相当实用,现把其移植到arm-linux下

    交代下环境:

    pc ubuntu12.4

    cross-compile arm-linux-gcc

    --1--获取源码

    http://www.ohse.de/uwe/software/lrzsz.html

    获取lrzsz-0.12.20.tar.gz

    --2--解压源码

    tar -xzf lrzsz-0.12.20.tar.gz

    --3--生成cache文件

    ./configure --host=arm-linux --cache-file=./arm-linux.cache

    这个时候目录中应该生成了./arm-linux.cache文件

    --4--修改配置

    vi arm-linux.cache

    ac_cv_prog_CC=${ac_cv_prog_CC='gcc'}

    改成

    ac_cv_prog_CC=${ac_cv_prog_CC='arm-linux-gcc'}

    --5--使用cache文件配置源码

    ./configure --host=arm-linux --cache-file=./arm-linux.cache

    --6--编译源码

    make

    注:可能出现的问题:zglobal.h:188:22: error: libintl.h: No such file or directory

    注:可能出现的问题:warning: incompatible implicit declaration of built-in function 'gettext'

    解决方法:

    vi config.h

    修改/* Define to 1 if NLS is requested.  */
    #define ENABLE_NLS 1

    #define ENABLE_NLS 0

    --6--得到工具

    在src/文件夹下的lrz和lsz工具即是交叉编译成功的lrzsz工具了

    --7--实用

    将lrz和lsz复制到板子/bin下,即可使用,当然要配合secureCRT

    一,利用lrzsz通过串口与secureCRT传输文件

    --1--secureCRT设置,在串口的情况下需要打开XON/XOFF流控机制

    会话选项->串行->流控->XON/XOFF 打钩,然后重启会话

    会话选项->终端->X/Y/Zmodem->目录 选择要存放的目录(我选择的是桌面)

    --2--上传文件

    终端输入lrz命令后自动弹出选择文件对话框,选择之后开始传输

          $ ./lrz 

    --2--下载文件

    终端中输入lsz+文件名

     $ ./lsz <文件名>

    --3--通过BusyBox中的rx简单下载文件

    如果根本完全没有任何外部接口,连lrzsz都灌不进去。或者只想下载传输文件,不需要上传的情况,可以使用Busybox中的rx命令简单下载文件

    终端中输入rx+要保存的名称,比如$rx redmin.txt

    然后在终端中发送文件 菜单->传输->发送Xmodem->选择redmin.txt文件发送数据


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    what's the python之if判断、while循环以及for循环
    what's the python之基本运算符及字符串、列表、元祖、集合、字典的内置方法
    what's the python之变量、基本数据类型
    what's the python之python介绍
    计算机基础系列之网络基础——网络协议
    计算机基础系列之何为操作系统
    计算机基础系列之计算机硬件
    EXT3_DX_ADD_ENTRY: DIRECTORY INDEX FULL!
    无shell情况下的mysql远程mof提权利用方法详解
    /bin/rm: Argument list too long解決方法
  • 原文地址:https://www.cnblogs.com/lidabo/p/4780866.html
Copyright © 2020-2023  润新知