ARM开发板基础与文件传输
ARM 开发板使用(以 GEC6818 为例)
GEC6818 是嵌入式开发常用的 ARM 平台,搭载三星Cortex-A53 八核处理器(最高 1.4GHz),支持 Linux/Android 系统,适用于驱动开发与应用测试。
开发板核心资源
类别 | 具体参数 |
---|---|
处理器 | 三星 S5P6818(Cortex-A53 架构,8 核,1.4GHz) |
支持系统 | 嵌入式 Linux、Android |
外设接口 | 千兆以太网、LVDS 接口(显示屏)、MIPI 接口(摄像头)、USB、串口、网口 |
存储 | 板载 8G 存储 IC(分多个分区,部分分区未启用,可扩容) |
开发板连接与启动
步骤 1:硬件接线
-
供电:用 5V 电源适配器连接开发板电源接口(注意电压,避免烧板);
-
数据通信:
- 串口连接:用 “USB 转串口线” 连接开发板串口与电脑 USB 口(无串口的笔记本必用);
- 网口连接:用网线连接开发板网口与路由器(用于高速文件传输)。
步骤 2:安装 USB 转串口驱动
-
电脑需安装驱动(常见芯片:CH340 (CH343SER.EXE - 南京沁恒微电子股份有限公司)或 PL2303,驱动文件可从官网下载);
-
验证驱动:右键 “此电脑”→“管理”→“设备管理器”→“端口(COM 和 LPT)”,若显示 “Prolific USB-to-Serial Comm Port (COMX)”(如 COM9),说明驱动安装成功(COMX 为端口号,每次连接可能变化)。
步骤 3:用 SecureCRT 连接开发板(串口监控)
SecureCRT 是串口调试工具,用于查看开发板启动日志、输入 Linux 命令。
-
打开 SecureCRT,点击 “快速连接”;
-
协议选择 “Serial”(串口),配置参数:
-
点击 “连接”,若左上角出现绿色对勾,说明连接成功。
步骤 4:启动开发板
-
拨动开发板电源开关(往上拨),SecureCRT 中会显示启动日志;
-
若启动卡在某一行不动:原因是开发板自动运行的应用占用了终端,按 Ctrl+C 强制结束进程,即可进入 Linux 命令行(默认用户为 root,无需密码)。
开发板文件传输(3 种方案)
开发板的 Linux 系统是 “裁剪版”,仅支持运行程序,不支持编辑和编译,需从电脑传输已编译好的文件。
方案 1:串口传输(rx/rz 命令,适合小文件)
-
rx 命令(单次传 1 个文件,慢):
-
开发板终端进入工作目录(如
cd /workspace
); -
输入
rx 文件名
(如rx demo.c
); -
SecureCRT 菜单栏 “传输”→“发送 Xmodem”,选择电脑中的文件,等待传输完成。
-
-
rz 命令(单次传多个文件,快):
-
先将
rz
工具传到开发板:用 rx 命令传输rz
文件; -
赋予
rz
执行权限:chmod 777 rz
; -
移动
rz
到系统命令目录(让所有目录都能调用):mv rz /bin
; -
使用:输入
rz
,弹出文件选择窗口,勾选多个文件即可传输。 -
注意:可修改secureCRT软件下载文件的路径,固定每次弹出窗口的路径位置,快速定位下载文件,如下所示
-
方案 2:网络传输(TFTP,适合大文件)
TFTP 是轻量级文件传输协议,需开发板与电脑在同一局域网(如连同一路由器)。
-
电脑端配置:
-
打开 TFTP 工具(如 tftpd32.exe);
-
设置 “Current Directory” 为电脑中文件存放路径(如
C:\code
); -
确认 “Server interface” 选择与开发板同网段的 IP(如 192.168**.3**.13)。
-
-
开发板端操作:
- 查看开发板 IP:输入
ifconfig
,eth0 后的 “inet addr” 即为 IP(如 192.168.3.12); - 若 IP 与电脑不同网段,手动配置:
ifconfig eth0 192.168.3.12
(单次有效,重启失效); - 下载文件(电脑→开发板):
tftp -g 电脑IP -r 文件名
(如tftp -g 192.168.3.13 -r demo_arm
); - 上传文件(开发板→电脑):
tftp -p 电脑IP -r 文件名
(如tftp -p 192.168.3.13 -r log.txt
)。
- 查看开发板 IP:输入
方案 3:U 盘传输(适合无网络场景)
- 将文件拷贝到 U 盘(格式为 FAT32);
- U 盘插入开发板 USB 口;
- 开发板终端挂载 U 盘:
mount /dev/sda1 /mnt/udisk
(/dev/sda1 为 U 盘设备名,/mnt/udisk 为挂载目录,需先创建); - 访问 U 盘文件:
cd /mnt/udisk
。
开发板存储扩容(挂载未使用分区)
开发板根目录(/)空间有限(约 300M),需挂载未使用的大分区(如 mmcblk0p7,约 6G)。
-
查看分区情况:
cat /proc/partitions
,找到未使用的分区(如 mmcblk0p7); -
格式化分区(FAT32 格式):
mkfs.vfat /dev/mmcblk0p7
(清除分区原有数据,谨慎操作); -
创建工作目录:
mkdir /workspace
(用于挂载分区); -
挂载分区:
mount -t vfat /dev/mmcblk0p7 /workspace
(-t 指定格式为 vfat); -
验证挂载:
df -h
,若显示/dev/mmcblk0p7
挂载到/workspace
,且大小约 6G,说明成功; -
设置开机自启(避免重启后挂载失效):
-
编辑自启脚本:
vi /etc/profile
; -
在文件末尾添加:
mount -t vfat /dev/mmcblk0p7 /workspace
; -
重启开发板:
reboot
。
-
交叉编译工具安装(ARM-linux-gcc)
开发板(ARM 架构)无法编译程序,需在电脑(X86 架构)上用交叉编译器编译出 ARM 能运行的文件,核心工具为arm-linux-gnueabi-gcc
(5.4.0 版本常用)。
核心概念
- 交叉编译:在 A 架构(如 X86)编译出能在 B 架构(如 ARM)运行的程序;
- 编译器区别:
gcc
用于 X86 程序编译,arm-linux-gcc
用于 ARM 程序编译。
安装步骤(Ubuntu 系统)
步骤 1:拷贝压缩包到 Linux
- 将交叉编译器压缩包(如
arm-linux-gnueabi-5.4.0.tar.xz
)放到 VMware 共享文件夹(如/mnt/hgfs/share
); - 拷贝到 Linux 家目录(避免共享文件夹权限问题):
cp /mnt/hgfs/share/arm-linux-gnueabi-5.4.0.tar.xz ~/
(~ 表示家目录,如 /home/gec)。
步骤 2:解压压缩包
- 先解压 xz 格式:
xz --decompress arm-linux-gnueabi-5.4.0.tar.xz
(生成.tar 文件); - 再解压 tar 格式:
tar xf arm-linux-gnueabi-5.4.0.tar
(生成usr
文件夹,包含编译器文件)。
步骤 3:配置环境变量
环境变量用于让 Linux 在任何目录都能调用arm-linux-gcc
。
- 进入编译器二进制文件目录:
cd ~/usr/local/arm/5.4.0/usr/bin
(路径需与解压后的实际路径一致); - 查看当前路径:
pwd
,复制输出(如/home/gec/usr/local/arm/5.4.0/usr/bin
); - 编辑环境变量配置文件:
vi ~/.bashrc
; - 在文件末尾添加:
export PATH=/home/gec/usr/local/arm/5.4.0/usr/bin:$PATH
($PATH 表示保留原有环境变量); - 让配置生效:
source ~/.bashrc
。
步骤 4:验证安装
输入 arm-linux-gcc -v
,若显示版本信息(如gcc version 5.4.0
),说明安装成功。
常见错误解决
- 错误:error while loading shared libraries: libmpfr.so.4原因:系统缺少
libmpfr.so.4
库文件(Ubuntu 默认是libmpfr.so.6
)。解决:创建软链接映射:sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4
。 - 错误:./demo_arm: cannot execute binary file原因:在 X86 系统运行 ARM 程序(
demo_arm
是 ARM 可执行文件)。解决:将demo_arm
传到开发板,在开发板上运行。
交叉编译实战
-
编写测试代码(
demo.c
):#include <stdio.h> int main() {printf("Hello ARM!\n");return 0; }
-
交叉编译:
arm-linux-gcc demo.c -o demo_arm
(生成 ARM 可执行文件demo_arm
); -
传输到开发板:用 rz 命令将
demo_arm
传到/workspace
; -
开发板运行:
- 赋予权限:
chmod 777 demo_arm
; - 执行:
./demo_arm
,输出 “Hello ARM!”,说明成功。
- 赋予权限:
集成开发工具(MobaXterm 与 VSCode)
嵌入式开发中,用单一工具替代多个软件(如 SecureCRT、VMware、TFTP),可提升效率,常用工具为 MobaXterm 和 VSCode。
MobaXterm(全能远程工具)
MobaXterm 集成了串口、SSH、TFTP、FTP等功能,支持 Windows 系统,无需单独安装多个工具。
功能 1:串口连接开发板
-
打开 MobaXterm,点击左上角 “Session”→“Serial”;
-
配置参数(同 SecureCRT):端口(COMX)、波特率 115200、数据位 8、奇偶位无、停止位 1;
-
点击 “OK”,即可连接开发板,界面与 SecureCRT 一致。
功能 2:TFTP 文件传输
-
打开 MobaXterm,点击顶部 “Tools”→“TFTP Server”;
-
设置 “Root directory” 为电脑文件路径(如
C:\code
),“Listening port” 默认 69; -
开发板端用 TFTP 命令传输文件(同前文 “开发板网络传输” 步骤)。
功能 3:SSH 远程登录 Linux(虚拟机 / 开发板)
SSH 是安全远程登录协议,可在 MobaXterm 中直接操作 Linux 终端,无需打开 VMware。
- 登录虚拟机 Ubuntu:
-
虚拟机中安装 SSH 服务:
sudo apt install openssh-server
; -
启动 SSH:
sudo systemctl start ssh
,设置开机自启:sudo systemctl enable ssh
; -
MobaXterm 中点击 “Session”→“SSH”,输入虚拟机 IP(如 192.168.3.13),勾选 “Specify username”(输入虚拟机用户名,如 gec);
-
输入密码,即可远程操作虚拟机终端。
-
- 登录开发板 Linux:
-
开发板安装 SSH 工具:用 TFTP 将
openssh.tar.bz
传到/workspace
,解压:tar zxf openssh.tar.bz
; -
进入解压目录:
cd openssh
,执行安装脚本:./auto
; -
设置 root 密码:
passwd root
(输入密码,不回显,按提示确认); -
MobaXterm 中用 SSH 连接开发板 IP(如 192.168.3.12),用户名 root,输入密码即可登录。
-
VSCode(代码编辑与远程开发)
VSCode 是轻量级编辑器,支持插件扩展,通过Remote-SSH 插件可远程编辑虚拟机 / 开发板中的代码,无需本地拷贝。
步骤 1:安装插件
打开 VSCode,点击左侧 “扩展”,搜索并安装 “Remote-SSH”(微软官方插件)。
步骤 2:远程连接虚拟机 / 开发板
-
点击 VSCode 左下角 “><” 图标(远程连接按钮),选择 “连接到主机”→“添加新的主机”;
-
输入 SSH 命令:
用户名@IP
(如虚拟机:gec@192.168.3.13
;开发板:root@192.168.3.12
),按回车;
-
选择配置文件保存路径(默认即可),点击 “连接”;
-
输入对应密码,连接成功后,VSCode 终端会显示远程主机的路径(如
gec@ubuntu:~$
)。
步骤 3:远程编辑与文件传输
- 编辑代码:点击 “文件”→“打开文件夹”,选择远程主机中的目录(如
/home/gec/code
),即可直接编辑代码。 - 文件传输:用
scp
命令(SSH 自带):-
本地→远程:
scp 本地文件 用户名@IP:远程路径
(如
scp demo.c gec@192.168.3.13:/home/gec
)将文件传输到哪里去; -
远程→本地:
scp 用户名@IP:远程文件 本地路径
(如
scp root@192.168.3.12:/workspace/log.txt C:\
)从哪里下拉文件。
-