2. 开发环境搭建:工欲善其事,必先利其器
说实话,做嵌入式开发这么多年,我见过太多因为环境没搭好就急着写代码的案例。结果呢?编译报错找不到头文件、Git 提交把二进制文件也推上去了、Python 脚本跑不起来…… 这些坑我基本都踩过。所以这一章,咱们老老实实把环境搭好,后面才能专心搞业务逻辑。
这一节我们要搞定四样东西:Git、Python、VS Code、交叉编译工具链。顺序不重要,但缺一不可。我习惯先装 Git 和 Python,因为它们是最基础的依赖。
2.1 安装 Git:版本管理的基石
Git 这东西,说白了就是个后悔药。你改错了代码,它能帮你回退;你写崩了功能,它能帮你切分支。我在项目中遇到过最惨的一次,是同事直接在产品分支上改代码,结果上线前发现改错了,又没法回退…… 从那以后,我要求团队所有人必须用 Git,而且必须用分支开发。
安装步骤很简单:
- 去 Git 官网下载对应操作系统的安装包(Windows 选 .exe,macOS 选 .dmg,Linux 用包管理器)。
- 一路默认安装,但注意几个关键选项:
- 选择默认编辑器: 我建议选 VS Code,别选 Vim,除非你真的很熟 Vim。
- 调整 PATH 环境: 选 "Git from the command line and also from 3rd-party software"。
- 换行符转换: Windows 选 "Checkout Windows-style, commit Unix-style line endings"。
- 安装完成后,打开终端(CMD 或 PowerShell),输入
git --version验证。
# 验证 Git 安装
git --version
# 输出示例:git version 2.39.2.windows.1
# 配置用户名和邮箱(必须做)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
user.name 设成中文全名,这样提交记录里一眼能看出是谁改的。邮箱用公司邮箱就行,别用个人邮箱。
2.2 安装 Python:自动化脚本的引擎
Python 在固件开发里主要干三件事:写编译脚本、做自动化测试、处理数据。你想想看,每次编译完都要手动改配置文件?那太累了。用 Python 写个脚本,一键搞定。
安装建议:
- 版本选择: 我推荐 Python 3.10 或 3.11,别追最新版,有些库还没适配。也别用 Python 2.7,那东西已经退休了。
- 安装时勾选: "Add Python to PATH" —— 这个必须勾,不然你后面在命令行里敲
python会找不到。 - 验证安装:
# 验证 Python 安装
python --version
# 输出示例:Python 3.11.4
# 验证 pip(Python 包管理器)
pip --version
# 输出示例:pip 23.1.2 from ...
python3 和 pip3 来区分。我曾经因为没注意版本,用 Python 2 跑了个只支持 Python 3 的脚本,排查了半天…… 嗯,这种低级错误犯一次就够了。
2.3 安装 VS Code:不只是编辑器
VS Code 现在基本是嵌入式开发的标配了。它轻量、插件丰富、对 C/C++ 和 Python 支持都很好。我刚开始用的时候还觉得它不如 IDE 专业,后来发现…… 真香。
安装步骤:
- 去 VS Code 官网下载安装包,选 "System Installer" 版本(稳定,权限问题少)。
- 安装时建议勾选:
- "Add 'Open with Code' action to Windows Explorer file context menu"
- "Add 'Open with Code' action to Windows Explorer directory context menu"
- "Register Code as an editor for supported file types"
- 安装完成后,安装几个必备插件:
插件名称 用途 备注 C/C++ (by Microsoft) 代码补全、调试、语法高亮 必装 Python (by Microsoft) Python 开发支持 必装 GitLens Git 历史、代码责任人查看 强烈推荐 Markdown All in One Markdown 编辑预览 写文档用 YAML YAML 语法支持 配置文件常用
Ctrl + Shift + P → 搜索 "Terminal: Select Default Profile" → 选 "Git Bash"。
2.4 配置交叉编译工具链:打通 PC 到嵌入式设备的桥梁
交叉编译,说白了就是在你的 PC 上编译出能在嵌入式设备上运行的代码。为什么不能直接在设备上编译?因为嵌入式设备性能太弱了,编译一个 Linux 内核可能要几个小时,而 PC 上只要几分钟。
我以 ARM Cortex-M 系列为例,演示如何配置 GCC 交叉编译工具链。其他架构(RISC-V、Xtensa 等)原理类似。
2.4.1 下载工具链
推荐使用 ARM 官方提供的 GNU Arm Embedded Toolchain。去官网下载对应操作系统的版本:
- Windows: .exe 安装包或 .zip 压缩包
- Linux: .tar.bz2 压缩包
- macOS: .pkg 安装包
2.4.2 解压并配置环境变量
以 Windows 为例,假设你解压到了 C:\arm-gcc-toolchain:
# 将工具链的 bin 目录添加到系统 PATH
# 路径示例:C:\arm-gcc-toolchain\bin
# 验证安装
arm-none-eabi-gcc --version
# 输出示例:arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.10) 10.3.1 20210824 (release)
2.4.3 编写一个简单的测试程序
写一个最简单的 C 程序,交叉编译看看能不能通过:
// test.c
#include <stdio.h>
int main() {
printf("Hello from ARM!\n");
return 0;
}
# 交叉编译
arm-none-eabi-gcc -c test.c -o test.o
# 查看生成的目标文件信息
arm-none-eabi-objdump -f test.o
# 输出中应该包含:architecture: arm
如果能看到 architecture: arm,说明交叉编译工具链配置成功了。你生成的 test.o 是 ARM 指令集的目标文件,不能在 PC 上直接运行,但可以链接到嵌入式固件中。
2.5 本章知识体系总览
下面这张图把本章的核心内容串起来了。你可以把它当作一个检查清单,看看自己有没有遗漏什么。
2.6 环境验证清单
全部装完后,我建议你做一个快速验证。下面这个表格可以帮你检查每一项是否到位:
| 组件 | 验证命令 | 预期输出 | 状态 |
|---|---|---|---|
| Git | git --version |
git version 2.x.x | ✅ / ❌ |
| Python | python --version |
Python 3.x.x | ✅ / ❌ |
| pip | pip --version |
pip 23.x.x from ... | ✅ / ❌ |
| VS Code | code --version |
1.x.x | ✅ / ❌ |
| 交叉编译链 | arm-none-eabi-gcc --version |
arm-none-eabi-gcc (GNU Arm Embedded Toolchain ...) | ✅ / ❌ |
如果所有项都打上了 ✅,恭喜你,开发环境搭建完毕。如果某一步卡住了,别急,回头看看对应的章节,大概率是 PATH 没配好或者安装包版本选错了。嗯,这些坑我都踩过,你肯定能绕过去。