ubuntu 下 CubeMX + cmake + gcc-arm-none-eabi + ozone 开发环境搭建
本文使用的开发板为 RoboMaster 开发板 C 型,其芯片为 STM32F407IG,开发环境为 ubuntu 24.04。
J-Link 驱动安装
安装 J-Link 驱动
首先下载 J-Link 驱动的依赖 libreadline 库:
1 | sudo apt-get install libreadline-dev |
在 SEGGER 官网下载 J-Link 驱动,选择 Linux 版本的 deb 安装包

会有一些跳转,根据引导走就行了。下载完成后,使用 dpkg 安装:
1 | sudo dpkg -i JLink_Linux_Vxxx_x86_64.deb |
驱动程序将被安装到 /opt/SEGGER/JLink 目录下,同时会在 /etc/udev/rules.d 目录下生成一个 99-jlink.rules 文件,用于配置 J-Link 的权限。将 JLink 目录添加到环境变量中:
1 | echo 'export PATH=$PATH:/opt/SEGGER/JLink' >> ~/.bashrc |
如果使用的是 zsh,将 ~/.bashrc 替换为 ~/.zshrc 即可。
验证 J-Link 驱动
使用如下命令验证 J-Link 驱动是否安装成功:
1 | jlink --version |
如果安装成功,会显示 J-Link 的版本信息。
J-Link 接 C 板,插入 J-Link

然后执行以下命令:
1 | JLinkExe |

提示输入 connect,并输入芯片型号,这里输入 STM32F407IG,然后选择 SWD,speed 可以使用默认的 4000kHz,如下图所示则连接成功。

CubeMX 安装
在 ST 官网下载 CubeMX,选择 Linux 版本的安装包,下载完成后解压。

笔者在使用 6.12.1 版本时,JxBrowser Engine 在刚打开 CubeMX 的时候直接报 crash 导致窗口无法正常打开,切换至 6.11.1 版本后问题解决。
2025.3.3 更新:更新至 6.14.0 版本后问题解决。
解压后进入文件夹,执行 ./SetupSTM32CubeMX-x.xx.x 安装 CubeMX,根据提示安装即可。
打开 CubeMX,登录账号,登录后点击 INSTALL/REMOVE 安装 STM32F4 芯片包。

新建工程
先安装 gcc-arm-none-eabi 工具链:
1 | sudo apt install gcc-arm-none-eabi |
打开 CubeMX,新建工程,选择芯片型号,这里选择 STM32F407IGHx,点击 Start Project,打开 Project Manager,选择 Toolchain/IDE 为 CMake,点击 Generate Code。

在项目根目录打开 vscode,Core/Src/main.c 就是主函数所在的文件:

发现静态分析崩了,原因是使用了 clangd 进行了静态分析,在没有编译过的情况下,clangd 无法找到头文件,所以会报错。这里 cmake 一下就好了。
1 | mkdir build |

clangd 的配置可以看这里。
在根目录创建 .JLinkScripts 文件,内容如下:
1 | speed 4000 |
其中 JLink-test.elf 为编译生成的 elf 文件,路径相对于 Makefile 文件。
在 CMakelists.txt 中添加如下内容:
1 | add_custom_command(OUTPUT flash |
这样在执行 make Flash 的时候就会自动烧录。
1 | cd build |

ozone 安装及使用
在 SEGGER 官网下载 ozone,选择 Linux 版本的安装包,下载完成后使用 dpkg 安装。

安装完成后,使用如下命令启动 ozone:
1 | ozone |
这里使用一个蜂鸣器工程为例。
插上 J-Link,连接 C 板,打开 ozone,选择 STM32F407IG, svd 文件在如图所示的路径下:

Target Interface 选择 SWD,然后选择底下识别到的 J-Link:
选择需要调试的 elf 文件:
第四页可以保持默认,然后点击 Finish,就可以开始调试了:

点击左上角的绿色图标开始调试,再点击右边的继续按钮,程序就会开始运行,直到遇到断点。
在 watch data 中可以添加需要监视的变量,如下图所示,并绘制出变量的变化曲线。

其他功能可以自行探索。
效果
- 标题: ubuntu 下 CubeMX + cmake + gcc-arm-none-eabi + ozone 开发环境搭建
- 作者: null-qwerty
- 创建于 : 2024-10-03 20:31:38
- 更新于 : 2025-10-28 09:54:55
- 链接: https://blog.null-qwerty.work/2024/10/03/ubuntu-下-CubeMX-cmake-gcc-arm-none-eabi-ozone-开发环境搭建/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。