粤嵌GEC6818-学习笔记1-从零搭建嵌入式开发环境

张开发
2026/4/6 22:25:47 15 分钟阅读

分享文章

粤嵌GEC6818-学习笔记1-从零搭建嵌入式开发环境
1. 从零搭建嵌入式开发环境为什么选择GEC6818第一次接触嵌入式开发的朋友可能会被各种开发板型号搞得眼花缭乱。我刚开始学习时也纠结了很久直到遇到粤嵌的GEC6818开发板。这块板子特别适合新手入门原因很简单资源丰富、社区支持强、性价比高。它采用ARM架构跑的是Linux系统能让你完整地体验从代码编写到板载运行的全流程。记得我第一次点亮开发板时看到串口输出的系统启动信息那种成就感至今难忘。不过在这之前我们需要先搞定开发环境。嵌入式开发有个特点你既要在电脑上写代码又要把程序放到开发板上运行。这就涉及到交叉编译——用电脑的CPU架构比如x86生成能在ARM芯片上运行的程序。2. 开发环境搭建双系统协作实战2.1 共享文件夹Windows与Linux的桥梁大多数开发者习惯在Windows下写代码但编译需要在Linux环境下完成。来回传文件太麻烦共享文件夹就是最佳解决方案。我推荐用VMware安装Ubuntu 18.04稳定性经过大量项目验证。具体操作在VMware菜单选择虚拟机设置→选项→共享文件夹点击总是启用添加你的代码目录比如D:\embedded_code在Ubuntu中进入/mnt/hgfs就能看到共享内容踩坑提醒如果看不到共享文件夹可能需要安装VMware Tools。执行这个命令sudo apt-get install open-vm-tools open-vm-tools-desktop2.2 Linux必备指令速成班刚开始用Linux终端可能会手足无措其实掌握这几个命令就能应付大部分场景文件操作三剑客ls -l # 详细列表查看我习惯加-al参数看隐藏文件 cp -r # 递归复制目录时一定要加-r参数 mv old new # 重命名和移动文件都靠它目录导航技巧cd ~ # 秒回用户主目录 cd - # 返回上一个目录比反复按Tab方便 pwd # 当你迷路时的GPSvim生存指南 新手先用nano编辑器过渡等熟悉了再学vim。记住三个关键操作i进入编辑模式Esc退回命令模式:wq保存退出3. 第一个嵌入式程序从编译到运行3.1 Hello World的嵌入式版本在共享文件夹创建hello.c#include stdio.h int main() { printf(嵌入式版Hello World!\n); return 0; }编译命令看似简单但有讲究gcc hello.c -o hello # 普通编译 ./hello # 在Ubuntu运行 arm-linux-gcc hello.c -o hello.arm # 交叉编译特别注意如果报错arm-linux-gcc未找到说明交叉编译工具链没装好。安装命令sudo apt install gcc-arm-linux-gnueabihf3.2 SecureCRT连接开发板详解串口调试是嵌入式开发的日常SecureCRT的配置有几个关键点在Windows设备管理器查看COM口号比如COM5波特率必须设为115200这是开发板默认值流控制要取消所有勾选连接成功后你会看到类似这样的启动日志[ 0.120000] Linux version 3.4.39 [ 0.240000] CPU: ARMv7 Processor4. 交叉开发全流程实操4.1 程序传输的两种姿势方法一Xmodem协议传输开发板端执行rx hello.armSecureCRT菜单选择传输→发送Xmodem方法二TF卡直拷适合大文件将编译好的程序拷贝到TF卡插入开发板挂载mount /dev/mmcblk0p1 /mnt cp /mnt/hello.arm ~4.2 文件权限那些坑Linux严格的权限管理常让新手头疼。记得第一次运行程序时报错Permission denied解决方法chmod x hello.arm # 添加可执行权限 ./hello.arm # 现在可以运行了如果想批量修改权限可以用数字表示法chmod 755 hello.arm # 7rwx(所有者) 5rx(其他用户)5. 文件IO操作实战精讲5.1 Linux文件操作三步骤就像操作冰箱open()打开冰箱门read()/write()存取食物close()关门重要否则会食物变质示例读取配置文件int fd open(/etc/config, O_RDONLY); char buf[256]; read(fd, buf, sizeof(buf)); close(fd);5.2 文件指针控制妙招lseek()就像文件的GPS典型应用场景获取文件大小int size lseek(fd, 0, SEEK_END);追加写入lseek(fd, 0, SEEK_END); write(fd, data, len);5.3 文件复制实战综合运用IO函数实现文件拷贝while((len read(src_fd, buf, BUF_SIZE)) 0) { write(dst_fd, buf, len); }性能提示缓冲区大小建议设为4K的倍数如4096这是很多硬盘的块大小。6. 常见问题排查指南问题1共享文件夹看不到检查VMware Tools是否安装确认/mnt/hgfs目录权限问题2交叉编译报架构错误确认用的是arm-linux-gcc而非普通gcc检查工具链路径是否在PATH中问题3SecureCRT连接无响应检查USB转串口驱动是否安装确认波特率是否为115200尝试更换USB口有些USB3.0口兼容性差刚开始玩开发板时我经常因为没插紧串口线而折腾半天。后来养成了习惯先查物理连接再查软件配置。嵌入式开发就是这样越注重细节越少走弯路。下次我们可以聊聊如何用这个开发板驱动LCD屏幕那又是另一个有趣的故事了。

更多文章