2. 开发环境搭建:Keil/IAR/STM32CubeIDE安装配置、仿真器驱动与Git基础
说实话,做单片机开发这么多年,我见过太多人栽在环境搭建这一步。工具链没配好,后面调试起来简直要命。今天咱们就把这三样东西——IDE、仿真器驱动、版本控制——一次性理清楚。
2.1 三大IDE的选择与安装
先说说我个人的习惯。ARM Cortex-M系列我主要用Keil,IAR偶尔碰,STM32CubeIDE则是这两年项目里用得越来越多。你可能会问,到底选哪个?
| 特性 | Keil MDK | IAR EWARM | STM32CubeIDE |
|---|---|---|---|
| 编译器 | ARMCC v6/v5 | IAR C/C++ | GCC (arm-none-eabi) |
| 调试器支持 | J-Link, ST-Link, ULINK | J-Link, I-Jet, ST-Link | ST-Link (原生), J-Link (插件) |
| 代码大小优化 | 优秀 | 极优 | 良好 |
| 免费/收费 | 收费(有代码限制版) | 收费(有代码限制版) | 完全免费 |
| 生态成熟度 | 极高 | 高 | 中等(增长快) |
2.2 Keil MDK安装与配置
Keil的安装其实不复杂,但有几个坑。我踩过,你最好别踩。
- 下载安装包:去ARM官网或Keil官网下载MDK-Arm最新版。注意版本号,我建议用5.38或更新版本,对ARMCC v6支持更好。
- 安装路径:别用中文路径!别用空格!我见过有人把Keil装到“D:\程序\Keil_v5”里,结果编译时路径解析出问题,折腾半天。
- 激活License:如果你有正版License,在File → License Management里添加。没有的话,用代码限制版(32KB代码限制)也够学完这门课。
- 安装器件包:打开Pack Installer,找到你用的芯片型号(比如STM32F103C8),点击Install。这一步很多人忘,结果新建工程时找不到芯片。
2.3 IAR EWARM安装要点
IAR的安装逻辑和Keil不太一样。它按芯片架构分版本,比如ARM版、RISC-V版。别下错了。
- 下载:去IAR官网,选“IAR Embedded Workbench for Arm”。
- 安装:一路Next,但注意勾选“Add IAR to PATH”,这样命令行也能用iccarm。
- License:IAR的License管理比较严格。如果你用试用版,记得在License Manager里激活30天试用。
- 配置工程:IAR的工程文件是.ewp,和Keil的.uvprojx不通用。但你可以通过CMSIS-Pack导入部分配置。
个人经验:IAR的编译器优化确实强。有一次我把一个Keil编译后32KB的固件,用IAR重新编译,直接压到26KB。但代价是——IAR的调试界面我总觉得不如Keil顺手。嗯,这纯属个人习惯。
2.4 STM32CubeIDE——免费且强大
STM32CubeIDE是ST官方基于Eclipse打造的免费IDE。它集成了CubeMX的图形化配置功能,非常适合快速原型开发。
安装步骤很简单:
- 去ST官网下载安装包(Windows/Linux/macOS都有)。
- 解压后直接运行安装程序。注意:它需要Java运行环境,但安装包会自带。
- 第一次启动时,选择工作空间(Workspace)路径。同样,别用中文路径。
- 安装完成后,在Help → Install New Software里可以添加插件,比如J-Link支持。
2.5 仿真器驱动安装:J-Link与ST-Link
仿真器是连接电脑和开发板的桥梁。驱动装不好,你连下载程序都做不到。我当年第一次用J-Link时,插上电脑没反应,还以为仿真器坏了……结果是驱动没装。
J-Link驱动
- 下载:去SEGGER官网下载“J-Link Software and Documentation Pack”。
- 安装:运行安装程序,它会自动安装驱动和J-Link Commander工具。
- 验证:插上J-Link,打开设备管理器,应该能看到“J-Link”设备。或者在命令行输入
JLinkExe,如果能进入SEGGER命令行界面,说明驱动正常。
Driver文件夹。
ST-Link驱动
- 内置驱动:ST-Link的驱动通常随STM32CubeIDE或Keil一起安装。如果你单独需要,可以去ST官网下载“ST-Link/V2-1 USB driver”。
- 验证:插上ST-Link(比如Nucleo板自带的),设备管理器里应该出现“STMicroelectronics STLink dongle”。
- 固件升级:ST-Link的固件偶尔需要更新。用STM32CubeProgrammer的“Firmware update”功能,或者ST-Link Utility都能做。
2.6 版本控制基础:Git
你可能觉得,一个人做单片机项目,用Git是不是小题大做?我告诉你,不是。有一次我改了一个驱动文件,改完发现程序跑不起来了,但我不记得改了哪里。如果没有Git,我只能重写。有了Git,一个git diff就解决了。
Git安装与配置
- 下载:去git-scm.com下载对应系统的安装包。
- 安装:一路默认,但注意在“Choosing the default editor”这一步,我建议选“Use Visual Studio Code as Git's default editor”。
- 配置用户名和邮箱:打开Git Bash,输入:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"
基本操作流程
说白了,Git就三板斧:
git init:在项目文件夹里初始化仓库。git add .:把修改的文件加入暂存区。git commit -m "描述信息":提交一个版本。
我的习惯:每次提交前,先写一个.gitignore文件,把编译生成的中间文件(比如.obj、.hex、.bin、Debug文件夹)排除掉。不然Git会把这些二进制文件也跟踪起来,仓库会变得很臃肿。
与IDE集成
Keil和STM32CubeIDE都支持Git插件。我个人更推荐在命令行或VS Code里操作Git,IDE里的Git功能有时候会漏掉文件。
2.7 知识体系总览
下面这张图,把本章的核心内容串起来了。你搭建环境时,可以对照着检查每一步。
2.8 环境验证清单
环境搭完,别急着写代码。先跑一个简单的“点灯”程序,验证整个链路通不通。我列个清单,你照着检查:
| 步骤 | 检查项 | 预期结果 |
|---|---|---|
| 1 | IDE能新建工程 | 选择芯片型号后,工程模板生成成功 |
| 2 | 编译无错误 | 输出0 Error, 0 Warning |
| 3 | 仿真器连接 | IDE的调试器设置里能识别到仿真器 |
| 4 | 下载程序 | 进度条走完,开发板复位后程序运行 |
| 5 | Git初始化 | git status显示工作区干净 |