#使用adbd传输文件
参考何元杰的文章 用adb建立rtt于PC的文件传输通道
以及之前撰写的相关文档 rtt下的adbd使用
本文介绍 智龙开发板 应用ADB 包 ,与PC机进行文件传输。
1. 引言
与开发进行文件传输,可使用 tftp ,要在开发板端打开tftp服务。 另外还有一种方法: adbd, 利用 pkgs, 可以方便地实现在PC端将文件传到开发板上,还可以传送文件夹。
2. 使用环境
2.1 硬件平台
智龙开发板V3.4,128M Flash 32M RAM。
2.2 软件平台
RT-Thread 4.0.2 。
3.使用方法
3.1 网络配置
- 使用env和pkgs 配置网络组件
首先按照 龙芯RTT教程 21.1 配置 网络组件,这里选择 Lwip 2.1.0 需要选中以下网络选项:
[*] Enable lwIP stack
lwIP version (lwIP v2.1.0) --->
- 使用env配置网络SAL组件
按照 龙芯RTT教程 21.2 配置 SAL组件
-*- Enable socket abstraction layer
protocol stack implement --->
[*] Support lwIP stack
-*- Enable BSD socket operated by file system API
(4) the maximum number of protocol families
- 使用env配置文件系统选项
[*] Enable elm-chan fatfs
elm-chan's FatFs, Generic FAT Filesystem Module --->
-*- Using devfs for device objects
3.2 ADBD配置
- 使用env配置网络ADBD组件
RT-Thread online packages --->
tools packages --->
[*] ADBD: Android Debug Bridge daemon implementation in RT-Thread ---
[*] Using TCPIP transfer
[ ] Using USB transfer
(1280) Set transfer thread stack size
[*] Enable Shell service
-*- Enable File service
(2304) Set file service thread stack size
(2000) Set file service receive timeout(ms)
[*] Enable external MOD
[*] Enable File SYNC Mod
[*] Enable File LIST Mod --->
Version (latest) --->
配置成功后如图:
3.3 测试过程
在env环境中直接使用adb 命令进行 push 和 pull 测试。这里有2个设备,智龙开发板为一端,PC机为一端。
智龙开发板建立文件夹:board, 该 文件夹下有board文件,该文件内容为: This is board file. 如图1示。
PC机建立文件夹:pc, 该 文件夹下有 PC 文件,该文件内容为: This is pc file. 如图2示。
在 env 中配置好后,编译下载到开发板。
开发板启动后,在串口助手中用 ifconfig 检查开发板的IP的地 如图:
在PC上的 env 环境中,用 ping 指令检查能 ping 通开发板.
建立连接:
adb connect 192.168.0.104
连接成功后如图:
将开发板上的文件夹拉到 PC 机上:
adb pull /board board
将PC机上文件夹推到开发板上:
adb push pc /pc
传送文件过程如图
adb --help
命令查看帮助。
file transfer:
push [--sync] LOCAL... REMOTE
copy local files/directories to device
--sync: only push files that are newer on the host than the device
pull [-a] REMOTE... LOCAL
copy files/dirs from device
-a: preserve file timestamp and mode
sync [all|data|odm|oem|product|system|vendor]
sync a local build from $ANDROID_PRODUCT_OUT to the device (default all)
-l: list but don't copy
sync a local build from $ANDROID_PRODUCT_OUT to the device (default all)
-l: list but don't copy