《APM32芯得》系列内容为用户使用APM32系列产品的经验总结,均转载自21ic论坛极海半导体专区,全文未作任何修改,未经原文作者授权禁止转载。
# 01 前言
APM32 官方 SDK 中提供了三种开发环境:Keil、IAR 和 Eclipse。不否认这三种环境的强大,但是在 AI 时代做嵌入式开发,用这三种环境就显得有点不够优雅了。本篇文章主要介绍怎么用Clion 开发 APM32,涉及 CMake、Makefile、OpenOCD 和PyOCD 的知识,供大家参考。
# 02 环境搭建
## 软件环境
- Windows 10/11
- Clion 2023.2.2
- MinGW-w64 8.1.0
- OpenOCD 0.12.0-rc1
- gcc-arm-none-eabi 10.3.1
- APM32_DAL_SDK_V1.0
## 硬件环境
- APM32F407IG Tiny 开发板
## 搭建 MinGW-w64 环境
### 安装 MinGW-w64
[MinGW-W64](https://sourceforge.net/projects/mingw-w64/files/mingw-w64/)全称为 Minimalist GNU for Windows,是一个在 Windows 平台上编译 32 位和64 位应用程序的工具集。MinGW-w64 是 MinGW 的一个分支,它支持 64 位 Windows 和 32 位 Windows。
MinGW-w64 支持在线安装和离线安装,这里建议大家使用离线安装方式,因为在线安装的速度太慢了。Windows 系统开发 Linux 应用选择 `x86_64-posix-seh`,Windows 系统开发 Windows 应用选择 `x86_64-win32-seh`。
我是用 Windows 系统开发Windows 应用,所以选择 `x86_64-win32-seh` 进行下载。从上面链接下载完成后,解压压缩包中的 mingw64 文件夹到自己喜欢的位置,这里解压到 `E:\ToolChain\`。
### 配置环境变量
将 `E:\ToolChain\mingw64\bin` 添加到环境变量 `Path` 中。
### 验证 MinGW-w64 是否安装成功
打开 CMD,输入 `gcc -v`,如果出现如下信息,则说明 MinGW-w64 安装成功。
## 搭建gcc-arm-none-eabi 环境
### 安装gcc-arm-none-eabi
[gcc-arm-none-eabi](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)是 ARM 官方提供的一款免费的编译器,支持多种操作系统,包括Windows、Linux 和 macOS。
从上面的链接下载压缩包后,同样解压到 `E:\ToolChain\`。
### 配置环境变量
将`E:\ToolChain\gcc-arm-none-eabi-10.3-2021.10\bin` 添加到环境变量 `Path` 中。
### 验证gcc-arm-none-eabi 是否安装成功
打开 CMD,输入`arm-none-eabi-gcc -v`,如果出现如下信息,则说明 gcc-arm-none-eabi 安装成功。
## 搭建 OpenOCD 环境
### 安装 OpenOCD
[OpenOCD](https://sourceforge.net/projects/openocd/files/openocd/0.12.0-rc1/)全称为 Open On-Chip Debugger,是一个开源的调试工具,支持多种调试器,包括 J-Link、ST-Link、CMSIS-DAP等。
从上面链接下载后,同样解压到 `E:\ToolChain\`。
因为 OpenOCD 官方还未支持APM32,所以需要增加对 APM32 的支持。将附件提供的`apm32f4x.cfg` 文件拷贝到`E:\ToolChain\OpenOCD\share\openocd\scripts\target` 目录下。
### 配置环境变量
将 `E:\ToolChain\OpenOCD\bin` 添加到环境变量 `Path` 中。
### 验证 OpenOCD 是否安装成功
打开 CMD,输入 `openocd -v`,如果出现如下信息,则说明 OpenOCD 安装成功。
# 03 配置 Clion
### 配置工具链
打开 Clion,点击 `File` -> `Settings` -> `Build, Execution, Deployment` -> `Toolchains`,点击 `+` 号,选择 `MinGW`,点击`OK`。将上述搭建的环境填入对应的位置,点击 `OK`。如下图所示:
> 注意:CMake 选择 Bundled,Debuggers 选择 Bundled GDB。
到 `CMake` 选项卡中确认`Toolchain` 选择的是 `MinGW`,如下图所示:
### 配置 OpenOCD
点击 `File` -> `Settings` -> `Build, Execution, Deployment` -> `Embedded Development` -> `OpenOCD Localtion` 设置为 `E:\ToolChain\OpenOCD\bin\openocd.exe`,如下图所示:
# 04 Clion 开发 APM32
## 导入工程
Clion 使用 CMake 构建工程,所以在 APM32 官方 SDK 中的工程需要加入 CMakeLists.txt 文件。
这里用到我另一篇帖子 [使用CMake构建APM32工程](https://bbs.21ic.com/icview-3357660-1-1.html)里面的工程,大家可以去下载。下载完成后,将工程导入或直接拖拽工程目录入 Clion,如下图所示:
工程导入后,Clion 会提示项目未配置。我们打开 `GPIO_Toggle` -> `Project` -> `CMake` 目录,然后在 `CMakeLists.txt` 文件右键选择 `Load CMake Project`,如下图所示:
等待配置完成即可,配置完成后,CMake 输出窗口会显示如下信息:
并在 `GPIO_Toggle` -> `Project` -> `CMake` 目录下生成 `cmake-build-debug` 目录及 `Makefile` 文件,如下图所示:
## 编译工程
点击 `Build` -> `Build Project` 进行工程的编译,编译完成后 Build 输出窗口会显示如下信息:
## 下载和调试
点击 `Run` -> `Edit Configurations`,点击 `+` 号,选择 `OpenOCD Download & Run`,如下图所示:
配置 `Target`、`Executable binary` 和 `Board config file`,点击 `OK`,如下图所示:
其中 `Board config file` 选择 `geehyLink.cfg`。文件内容如下:
adapter driver cmsis-dap
transport select swd
# 0x100000 = 1M Flash Size
set FLASH_SIZE 0x100000
source [find target/apm32f4x.cfg]
# download speed = 10MHz
adapter speed 10000
点击 `Run` -> `Debug`,开始下载和调试,如下图所示:
## 查看外设寄存器
在 `Debug` 窗口中`Peripheral` 加载官方提供的 `svd` 文件,即可查看外设寄存器信息。
## 查看 Memory 信息
在 `Debug` 窗口中`Memory View` 查看内存信息。
## 观察变量
在 `Debug` 窗口中`Variables` 观察变量。
## AI 代码提示
Clion 带有插件系统,可以安装插件,比如 Github Copilot,可以用 AI 技术帮助我们更快的编写代码。
## 代码补全
Clion 还有着很强大的代码补全功能。
还有更多功能等待大家去发现,这里就不一一介绍了。
到此,Clion 开发 APM32 的环境搭建和工程配置就完成了,大家可以参考着优雅的开发 APM32 了。
# 参考资料
https://openocd.org/pages/documentation.html
https://www.jetbrains.com/help/clion/viewing-inline-documentation.html
注:文章作者在原帖中提供了例程文件,有需要请至原文21ic论坛下载
原文地址:https://bbs.21ic.com/icview-3363676-1-1.html
或点击下方 阅读原文 跳转
↑↑↑ 点击上方卡片关注极海 ↑↑↑