UP-NETARM2410-S(S3C2410)嵌入式实验环境搭建完整指南

适用对象

本文适用于使用 博创 UP-NETARM2410-S 实验箱(S3C2410 ARM920T) 的嵌入式课程实验,帮助零基础同学在 Windows 下通过虚拟机搭建 Linux 开发环境,完成交叉编译、串口通信、程序下载等操作。

实验箱硬件信息:

  • CPU:三星 S3C2410(ARM920T,200MHz)

  • 交叉编译器:armv4l-unknown-linux-gcc 2.95.2

  • 开发包:Linux V7.2(配套光盘)

  • 安装路径:/arm2410s/

  • 实验代码:/arm2410s/exp/basic/


环境搭建快速上手

虚拟机装好 Ubuntu 之后,按下面两步走:

1. 安装交叉编译环境

  • 将配套光盘 Linux V7.2 (用你老师给的)文件夹拷贝到 Ubuntu 中(放桌面即可)

  • 打开终端进入该目录:

复制代码
 cd ~/桌面/Linux\ V7.2
  • 运行安装脚本:
复制代码
 sudo ./install.sh
  • 脚本会将交叉编译器安装到 /opt/host/armv4l/bin/,实验代码安装到 /arm2410s/

2. 安装并配置 minicom(串口工具)

  • 安装:
复制代码
 sudo apt install minicom
  • 配置:
复制代码
 sudo minicom -s
  • 进入设置:Serial Device → /dev/ttyUSB0,Bps/Par/Bits → 115200 8N1,Hardware Flow Control → No

遇到具体问题看下面各章节的详细说明。


一、虚拟机相关

1. 虚拟机软件不会装 / 装完无法开机

  • 推荐 VMware Workstation(虚拟机相当于一台没有装系统的虚拟电脑,还需安装操作系统才能使用)

  • 从 Linux 官网下载系统镜像(推荐 Ubuntu 22.04 LTS)

  • 创建虚拟机时客户机操作系统选 Ubuntu ,内存至少 8GB ,硬盘 40GB

  • Ubuntu 安装后无法上网:虚拟机网络设置为自定义 → VMnet8(NAT 模式),重启即可

  • 如果提示「VT-x 未启用」:进 BIOS 开启 Intel VT-x / AMD-V 虚拟化技术

2. 不会在虚拟机里安装软件

  • Ubuntu 软件安装方式:
复制代码
 sudo apt update
 sudo apt install <包名>
  • apt 是 Ubuntu 自带的命令行软件包管理器

  • 也可以直接用 Ubuntu 的图形化「软件中心」搜索安装

3. Windows 和 Ubuntu 之间传文件

  • 方法一(推荐):VMware 菜单 → 虚拟机 → 安装 VMware Tools,之后可以直接拖拽文件

  • 方法二:U 盘插到宿主机,VMware 菜单 → 虚拟机 → 可移动设备 → 连接 USB

  • 方法三:在 Ubuntu 中安装 SSH 服务,Windows 用 WinSCP 上传下载

  • U 盘识别不到的话,也可以在 Linux 下登录网页版邮箱,把文件发到邮箱下载

4. 完全没用过 Linux,打开终端一片空白

  • Ctrl + Alt + T 打开终端

  • 常用命令速查:

操作 命令
查看当前目录 pwd
列出文件 ls
进入目录 cd 目录名
回到主目录 cd ~ 或直接 cd
创建目录 mkdir 目录名
编辑文件 vi 文件名vim 文件名
查看文件内容 cat 文件名
复制文件/目录 cp 源 目标
删除文件/目录 rm -rf 文件或目录(谨慎使用,删除后不可恢复)
获得 root 权限 sudo 命令
切换到 root sudo -isu -
  • 编译后生成的可执行文件,用 ./文件名 来运行(./ 表示在当前目录下寻找该程序)

5. 不会用 vi / vim 编辑代码

  • 打开文件:vim hello.c

  • i 进入插入模式,此时可以正常输入

  • 编辑完成后按 Esc 退出插入模式

  • 输入 :wq 保存退出(w = 写入,q = 退出)

  • 输入 :q! 不保存强制退出

  • 不习惯 vim 的话可以安装 gedit(图形化文本编辑器):

复制代码
 sudo apt install gedit

6. 权限不够(Permission denied)

  • 命令前加 sudo,如 sudo ./install.sh

  • 文件没有执行权限:chmod +x 文件名

  • 永久切换 root:sudo -i


二、交叉编译环境安装

7. install.sh 运行报错

  • 先把 Linux V7.2 整个目录拷贝到 Ubuntu 里(放桌面即可)

  • 如果提示「无法找到文件」,用 cd 进入 Linux V7.2 目录,再运行 sudo ./install.sh

  • 如果提示 armv4l-unknown-linux-gcc: command not found,说明 PATH 没配置好

  • 手动在配置文件中添加交叉编译器路径(重启后仍然有效):

复制代码
 vim /root/.bashrc

在文件末尾添加一行:

复制代码
 export PATH=/opt/host/armv4l/bin:$PATH

然后执行 source /root/.bashrc 让配置立即生效

重启电脑或虚拟机后,如果又提示 command not found,需要重新执行一次 source /root/.bashrc

验证是否安装成功:输入 armv4l-unknown-linux-gcc --version,回显版本号即表示成功

8. 64 位 Ubuntu 运行 32 位交叉编译器报错

如果 armv4l-unknown-linux-gcc 已安装(/opt/host/armv4l/bin/ 下存在该文件),但运行时总报错找不到,原因是 64 位系统不兼容 32 位程序,安装 32 位兼容库即可解决:

复制代码
sudo apt update
sudo apt install lib32z1 lib32ncurses5 lib32stdc++6

如果还不行,安装 gcc-multilib

复制代码
sudo apt install gcc-multilib

9. 交叉编译时提示找不到头文件

  • 检查 install.sh 是否成功执行,/arm2410s/ 目录是否存在

  • 如果 install.sh 有遗漏,手动从 Linux V7.2 目录拷贝到对应位置


三、串口通信(minicom)

10. minicom 无法打开串口

查看 USB 转串口设备是否被识别:

复制代码
ls /dev/ttyUSB*

如果是 /dev/ttyUSB0,配置 minicom:

复制代码
sudo minicom -s

进入设置:

  • Serial Device → /dev/ttyUSB0(如果保存时报错,试试去掉开头的 /,直接写 dev/ttyUSB0

  • Bps/Par/Bits → 115200 8N1

  • Hardware Flow Control → No

如果在虚拟机中运行,需要将 USB 转串口线连接到虚拟机:VMware 菜单 → 虚拟机 → 可移动设备 → 找到 CH340/CP210x/PL2303 等 → 连接

11. 串口连上后屏幕全是乱码

  • 波特率不对:必须设为 115200

  • 流控不对:必须关闭 Hardware Flow Control

  • 检查串口线是否接好:实验箱使用 UART0 接口(通常靠近网口)

12. 每次都要 sudo 才能用 minicom

将自己加入 dialout 组:

复制代码
sudo usermod -a -G dialout $USER

注销重新登录后生效。或者直接切换为 root 用户:su


四、网络配置与 NFS(建议用 U 盘替代 NFS)

13. 实验箱 IP 配置

在 minicom 中登录开发板后输入:

复制代码
ifconfig eth0 192.168.1.100
  • 虚拟机 IP 设为同一网段,例如 192.168.1.10

  • Windows 宿主机的 VMware 虚拟网卡也设为同网段

  • 三者互 ping 测试连通性

14. 虚拟机网络模式选择

  • 使用 NAT 模式(VMnet8),虚拟机通过宿主机共享上网,配置最简单

  • 实验箱通过串口(minicom)连接,不需要与虚拟机在同一网段

15. NFS 挂载失败

检查 Ubuntu 是否安装 NFS 服务:

复制代码
sudo apt install nfs-kernel-server

编辑 /etc/exports,添加一行:

复制代码
/arm2410s *(rw,sync,no_subtree_check,no_root_squash)

重启 NFS:

复制代码
sudo systemctl restart nfs-kernel-server

关闭防火墙:

复制代码
sudo ufw disable

在开发板上执行挂载:

复制代码
mount -t nfs -o nolock 192.168.1.10:/arm2410s /mnt/nfs

必须加 -o nolock,否则会报错

16. 挂载成功但运行程序提示 No such file

  • 检查共享路径是否正确

  • 确认交叉编译生成的文件确实在 /arm2410s/exp/basic/01_hello/

  • 确认文件有执行权限:chmod +x hello


五、Makefile 与编译

Makefile 是告诉编译器如何编译的配置文件,编写完成后直接执行 make 命令,编译器就会按照 Makefile 的规则自动构建。

17. 运行 make 报错 "missing separator"

  • Makefile 中命令的缩进必须使用 Tab,不能用空格

  • vim 编辑时,确保缩进是硬 Tab(不要使用 :set expandtab

  • 检查方法:cat -A Makefile,命令行的缩进应显示为 ^I(Tab)

18. make 成功后文件在 ARM 板上无法运行

  • 确认使用的是 armv4l-unknown-linux-gcc 而非系统自带的 gcc

  • 如果误用 gcc,编译出的文件只能在 Ubuntu 上运行,无法在 ARM 开发板上执行

  • 检查方法:file hello,正确输出应包含 ARM 字样

19. 忘记加 -static 导致运行报错

开发板的文件系统仅提供有限的动态库,普通程序需要使用静态链接。在 Makefile LDFLAGS 中添加 -static

复制代码
LDFLAGS += -static

六、U 盘相关

20. U 盘插到开发板无法识别

先执行 cat /proc/partitions 查看设备节点,如果识别到类似 /dev/scsi/host0/bus0/target0/lun0/part1 的设备,执行:

复制代码
mount -t vfat /dev/scsi/host0/bus0/target0/lun0/part1 /mnt/nfs

然后 cd /mnt/nfs 进入 U 盘,ll 查看 U 盘中所有文件


七、通用经验与建议

21. 报错信息看不懂怎么办

  • 将报错信息复制到搜索引擎或 AI 工具搜索,大部分常见问题都有解决方案

  • 英文报错直接原样搜索,不要自行翻译

22. 操作搞乱了如何恢复

  • 虚拟机可以拍摄快照(VMware 菜单 → 虚拟机 → 快照 → 拍摄快照),出问题后直接恢复

  • 或者重装 Ubuntu,熟练后 20 分钟即可完成

23. 不想安装虚拟机的替代方案

  • 安装双系统(过程较复杂,不推荐初学者尝试)

  • 如果仅编写代码和撰写报告,不涉及开发板运行,可以使用 WSL(Windows Subsystem for Linux)体验 Linux 命令


总结

嵌入式开发环境搭建的常见问题主要集中在以下几类:

  • PATH 环境变量未配置 --- 交叉编译器找不到

  • 权限不足 --- 忘记加 sudo 或未加入 dialout 组

  • 串口参数错误 --- 波特率或流控设置不对

  • Makefile 格式错误 --- Tab 缩进问题

遇到问题先仔细阅读报错信息,结合搜索引擎基本都能解决。本文基于 UP-NETARM2410-S(S3C2410)实验箱编写,其他 ARM 嵌入式实验箱的环境搭建流程也可参考。