minicom下载文件到ARM开发板(主机ubuntu16.04)

一: 安装minicom 

注意设置下面的地方:

  设置默认上传/下载的目录,选择Filenames and paths , 会看到这样的选项:

    +-----------------------------------------------------------------------+
    | A - Download directory : /home/lingd/arm/download                     |
    | B - Upload directory   : /home/lingd/arm/upload                       |
    | C - Script directory   :                                              |
    | D - Script program     : runscript                                    |
    | E - Kermit program     :                                              |
    | F - Logging options                                                   |
    |                                                                       |
    |    Change which setting?                                              |
    +-----------------------------------------------------------------------+
注意:开发板发送给pc的文件将保存在Download directory所设定的目录中,而pc要下载到开发板的文件保存在Upload directory所设定的目录中
     设置完成后,选择”Save setup as dfl”,保存为默认设置.

二、为pc安装lrzsz

lrzsz is a unix communication package providing the XMODEM, YMODEM ZMODEM file transfer protocols.
lingd@ubuntu:~$ sudo apt-get install lrzsz

三、交叉编译lrzsz并下载到开发板上

1、下载lrzsz源码包
到http://download.chinaunix.net/download/0007000/6293.shtml,下一个lrzsz的tar包,
2、解压缩后,到解压目录中执行./configure
lingd@ubuntu:~/arm$ tar -zxf lrzsz-0.12.20.tar.gz 
lingd@ubuntu:~/arm$ cd lrzsz-0.12.20/
lingd@ubuntu:~/arm/lrzsz-0.12.20$ ./configure       (记得chmod +x configure)
...................

..........

creating man/Makefile
creating po/Makefile.in
creating src/Makefile
creating debian/rules
creating Specfile
creating systype
creating src/lrzszbug
creating config.h
3、修改Makefile
有三个Makefile需要修改,分别是~/arm/lrzsz-0.12.20/Makefile、~/arm/lrzsz-0.12.20/lib/Makefile、~/arm/lrzsz-0.12.20/src/Makefile
lingd@ubuntu:~/arm/lrzsz-0.12.20$ vi Makefile
lingd@ubuntu:~/arm/lrzsz-0.12.20$ vi lib/Makefile
lingd@ubuntu:~/arm/lrzsz-0.12.20$ vi src/Makefile
将这三个Makefile中的所有gcc替代成你开发板所需要的交叉编译器,如arm-linux-gcc
即:
CC = gcc
CPP = gcc -E
都改成
CC = arm-linux-gcc
CPP = arm-linux-gcc -E
4、编译
lingd@ubuntu:~/arm/lrzsz-0.12.20$ make
在lrzsz-0.12.20/src目录下会生成两个可执行文件lsz、lrz(或者sz、rz),把它们下载到开发板linux系统的/bin目录下。
lingd@ubuntu:~/arm/lrzsz-0.12.20$ cd src
lingd@ubuntu:~/arm/lrzsz-0.12.20/src$ ls
ansi2knr.1  lrz          lsyslog.o    Makefile.in  tcp.o      zm.o
ansi2knr.c  lrz.c        lsz          protname.c   timing.c   zmodem.h
canit.c     lrz.o        lsz.c        protname.o   timing.h   zperr.c
canit.o     lrzszbug     lsz.o        rbsb.c       timing.o   zperr.o
crctab.c    lrzszbug.in  Makefile     rbsb.o       zglobal.h  zreadline.c
crctab.o    lsyslog.c    Makefile.am  tcp.c        zm.c       zreadline.o

四、测试

1、开发板-->PC机
在开发板上输入 lsz filename,然后会出现一个传输界面,传输完成后可以在你设置的默认下载目录Download directory里找到这个文件。
2、PC机-->开发板
在开发板上先进入/tmp 目录,然后输入lrz。

情况一:
# cd /tmp
# lrz                                                                         
�z waiting to receive.**B0100000023be50
按Ctrl-A,再按s,选择zmoden,会出现一个选择文件的界面,选择你要传输的文件(按一下空格键选择目录,按两下空格键进入目录),回车后出现一个传输界面,传输完成后,便可以在开发板的/tmp目录下找到这个文件了。


情况二:
#对应路径下
#lrz filename 
**B00
弹出下载窗口,然后下载成功




重大问题:


上面步骤完才后  可能出问题  那是因为缺少库文件

在源码的src/目录下会有lrz和lsz两个可执行文件

接下来,需要找到lrz和lsz所用到的动态库:

$ file src/lrz

src/lrz: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped 
$ arm-none-linux-gnueabi-readelf -a src/lrz | grep Shared 
0x00000001 (NEEDED) Shared library: [libnsl.so.1
0x00000001 (NEEDED) Shared library: [libc.so.6]

$ locate libnsl 

/lib/i386-linux-gnu/libnsl-2.15.so 
/lib/i386-linux-gnu/libnsl.so.1 
/lib/x86_64-linux-gnu/libnsl-2.15.so 
/lib/x86_64-linux-gnu/libnsl.so.1 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/armv4t/lib/libnsl-2.8.so 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/armv4t/lib/libnsl.so.1 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/armv4t/usr/lib/libnsl.a 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/armv4t/usr/lib/libnsl.so 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/lib/libnsl-2.8.so 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/lib/libnsl.so.1 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/thumb2/lib/libnsl-2.8.so 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/thumb2/lib/libnsl.so.1 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/thumb2/usr/lib/libnsl.a 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/thumb2/usr/lib/libnsl.so 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/usr/lib/libnsl.a 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/usr/lib/libnsl.so 
/usr/lib/x86_64-linux-gnu/libnsl.a 
/usr/lib/x86_64-linux-gnu/libnsl.so 

最后,把lrz、lsz和库文件一起拷贝到开发板上,验证OK!


本人是找到libnsl-2.9.so 哭文件    然后改名改成 libnsl.so.1   最后把libnsl.so.1传到开发板的/lib文件下  解决了这个问题()


附:http://blog.csdn.net/u012590688/article/details/45916747
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读