从Windows到GEC6818开发板:手把手教你用VMware+Ubuntu搭建嵌入式交叉编译环境(含SecureCRT连接避坑)

张开发
2026/4/21 17:16:51 15 分钟阅读

分享文章

从Windows到GEC6818开发板:手把手教你用VMware+Ubuntu搭建嵌入式交叉编译环境(含SecureCRT连接避坑)
从Windows到GEC6818开发板零基础搭建嵌入式开发环境的完整指南刚接触嵌入式开发时最令人头疼的莫过于搭建开发环境。Windows下写代码、Ubuntu虚拟机编译、最后在GEC6818开发板上运行——这个看似简单的流程实际操作中却会遇到各种坑。本文将带你一步步完成整个环境搭建重点解决那些教程里很少提及的实际问题。1. 虚拟机与共享文件夹配置VMware Workstation Player是Windows下运行Ubuntu虚拟机的理想选择。建议使用Ubuntu 18.04 LTS版本因为它既有长期支持又与大多数嵌入式工具链兼容良好。共享文件夹设置是第一个容易出错的地方。很多教程只告诉你启用共享文件夹但没说明后续权限问题。正确的完整步骤应该是在VMware中启用共享文件夹管理→虚拟机设置→选项→共享文件夹添加Windows目录作为共享文件夹在Ubuntu中验证/mnt/hgfs/下应能看到共享文件夹如果看不到共享文件夹试试这个命令sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtypevmhgfs-fuse,allow_other注意共享文件夹中的文件在Linux下可能默认没有执行权限需要手动添加chmod x 文件名2. Ubuntu基础命令速成在嵌入式开发中这些Linux命令使用频率最高命令用途示例cd切换目录cd /mnt/hgfs/projectls列出文件ls -l显示详细信息pwd显示当前路径-mkdir创建目录mkdir -p project/srccp/mv复制/移动文件cp file1 file2chmod修改权限chmod 755 script.sh特别提醒初学者注意Linux路径的几个特殊符号~表示用户主目录.当前目录..上级目录3. 交叉编译环境搭建GEC6818开发板使用ARM架构处理器因此需要在x86的Ubuntu上安装交叉编译工具链。推荐使用arm-linux-gcc这是最常用的ARM交叉编译器。安装步骤# 下载工具链具体版本可能不同 wget https://example.com/arm-linux-gcc-4.9.4.tar.gz # 解压到/opt目录 sudo tar -xvf arm-linux-gcc-4.9.4.tar.gz -C /opt/ # 添加环境变量 echo export PATH$PATH:/opt/gcc-4.9.4/bin ~/.bashrc source ~/.bashrc验证安装arm-linux-gcc -v应该能看到类似这样的输出gcc version 4.9.4 (crosstool-NG 1.20.0)编译测试程序arm-linux-gcc hello.c -o hello.arm生成的hello.arm就是能在GEC6818上运行的可执行文件。4. SecureCRT连接开发板实战通过串口连接开发板是嵌入式开发的必备技能。SecureCRT是常用的终端工具但新手常在这些地方出错端口选择错误在Windows设备管理器中确认开发板使用的COM端口号波特率不匹配GEC6818通常使用115200波特率权限问题Linux下可能需要将用户加入dialout组sudo usermod -a -G dialout $USER文件传输步骤开发板上进入接收模式rx filenameSecureCRT菜单中选择发送Xmodem选择要传输的文件常见问题解决传输中断检查线缆连接降低波特率试试权限不足开发板上使用chmod x filename添加执行权限文件损坏验证开发板上的文件大小是否与原始文件一致5. 嵌入式文件操作实战Linux下一切皆文件的理念在嵌入式开发中尤为重要。以下是文件IO的基本操作框架#include fcntl.h #include unistd.h int main() { int fd open(test.txt, O_RDWR); if(fd 0) { // 错误处理 return -1; } char buf[100]; int n read(fd, buf, sizeof(buf)); // 处理数据... close(fd); return 0; }文件操作常见问题忘记检查返回值每次文件操作都应检查返回值资源泄漏确保每个open都有对应的close缓冲区溢出确保读取/写入的数据不超过缓冲区大小6. 开发实战从编写到部署的完整流程让我们通过一个LED控制示例体验完整的开发流程Windows下编写代码保存到共享文件夹// led.c #include stdio.h #include fcntl.h #include unistd.h int main() { int fd open(/dev/led, O_RDWR); if(fd 0) { perror(open led failed); return -1; } // LED闪烁 for(int i0; i5; i) { write(fd, 1, 1); sleep(1); write(fd, 0, 1); sleep(1); } close(fd); return 0; }Ubuntu中交叉编译arm-linux-gcc led.c -o led.armSecureCRT传输到开发板rx led.arm chmod x led.arm ./led.arm这个简单的例子涵盖了嵌入式开发的核心流程。实际项目中你可能还需要Makefile管理多文件项目版本控制git远程调试gdbserver7. 常见问题速查表问题现象可能原因解决方案共享文件夹不可见VMware Tools未正确安装重新安装VMware Toolsarm-linux-gcc未找到路径未正确设置检查PATH环境变量开发板无响应串口配置错误确认波特率/端口号文件传输失败线缆问题/Xmodem未启用更换线缆/检查rx命令权限被拒绝文件无执行权限chmod x filename嵌入式开发环境搭建是个系统工程遇到问题时建议检查最基本的连接和配置分步骤验证每个环节善用搜索引擎和开发者社区记住每个开发者都经历过这个学习曲线。当你成功在开发板上运行第一个程序时那种成就感会让你觉得这一切都是值得的。

更多文章