ubuntu 下 CubeMX + cmake + gcc-arm-none-eabi + ozone 开发环境搭建

null-qwerty

本文使用的开发板为 RoboMaster 开发板 C 型,其芯片为 STM32F407IG,开发环境为 ubuntu 24.04。

首先下载 J-Link 驱动的依赖 libreadline 库:

1
sudo apt-get install libreadline-dev

SEGGER 官网下载 J-Link 驱动,选择 Linux 版本的 deb 安装包

J-Link 驱动下载

会有一些跳转,根据引导走就行了。下载完成后,使用 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
2
echo 'export PATH=$PATH:/opt/SEGGER/JLink' >> ~/.bashrc
source ~/.bashrc

如果使用的是 zsh,将 ~/.bashrc 替换为 ~/.zshrc 即可。

使用如下命令验证 J-Link 驱动是否安装成功:

1
jlink --version

如果安装成功,会显示 J-Link 的版本信息。

J-Link 接 C 板,插入 J-Link

jlinkconnect

然后执行以下命令:

1
JLinkExe

jlinkexe

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

jlinkexe2

CubeMX 安装

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

CubeMX 下载

笔者在使用 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 芯片包。

CubeMX 芯片包下载

新建工程

先安装 gcc-arm-none-eabi 工具链:

1
sudo apt install gcc-arm-none-eabi

打开 CubeMX,新建工程,选择芯片型号,这里选择 STM32F407IGHx,点击 Start Project,打开 Project Manager,选择 Toolchain/IDECMake,点击 Generate Code

CubeMX 工程配置

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

vscode 打开CubeMX 工程

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

1
2
3
mkdir build
cd build
cmake ..

CubeMX 工程静态分析

clangd 的配置可以看这里

在根目录创建 .JLinkScripts 文件,内容如下:

1
2
3
4
5
speed 4000
device STM32F407IG
r
loadfile ./JLink-test.elf
q

其中 JLink-test.elf 为编译生成的 elf 文件,路径相对于 Makefile 文件。

CMakelists.txt 中添加如下内容:

1
2
3
4
add_custom_command(OUTPUT flash
COMMAND JLinkExe -if SWD -CommanderScript ${CMAKE_SOURCE_DIR}/.JLinkScripts
)
add_custom_target(Flash DEPENDS flash)

这样在执行 make Flash 的时候就会自动烧录。

1
2
3
4
cd build
cmake ..
make -j
make Flash

make Flash

ozone 安装及使用

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

ozone 下载

安装完成后,使用如下命令启动 ozone:

1
ozone

这里使用一个蜂鸣器工程为例。

插上 J-Link,连接 C 板,打开 ozone,选择 STM32F407IG, svd 文件在如图所示的路径下:

ozone 配置

Target Interface 选择 SWD,然后选择底下识别到的 J-Link:
ozone 配置

选择需要调试的 elf 文件:
ozone 配置

第四页可以保持默认,然后点击 Finish,就可以开始调试了:
ozone 配置
ozone 调试页面

点击左上角的绿色图标开始调试,再点击右边的继续按钮,程序就会开始运行,直到遇到断点。

watch data 中可以添加需要监视的变量,如下图所示,并绘制出变量的变化曲线。

ozone 监视变量

其他功能可以自行探索。

效果

  • 标题: ubuntu 下 CubeMX + cmake + gcc-arm-none-eabi + ozone 开发环境搭建
  • 作者: null-qwerty
  • 创建于 : 2024-10-03 20:31:38
  • 更新于 : 2025-03-03 04:03:22
  • 链接: https://blog.null-qwerty.work/2024/10/03/ubuntu-下-CubeMX-cmake-gcc-arm-none-eabi-ozone-开发环境搭建/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
ubuntu 下 CubeMX + cmake + gcc-arm-none-eabi + ozone 开发环境搭建