# 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:ToolChainmingw64in` 添加到环境变量 `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:ToolChaingcc-arm-none-eabi-10.3-2021.10in` 添加到环境变量 `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:ToolChainOpenOCDshareopenocdscripts arget` 目录下。
### 配置环境变量
将 `E:ToolChainOpenOCDin` 添加到环境变量 `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:ToolChainOpenOCDinopenocd.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 CMakeProject`,如下图所示:
等待配置完成即可,配置完成后,CMake 输出窗口会显示如下信息:
并在 `GPIO_Toggle` -> `Project` ->`CMake` 目录下生成 `cmake-build-debug` 目录及 `Makefile` 文件,如下图所示:
## 编译工程
点击 `Build` -> `Build Project` 进行工程的编译,编译完成后 Build 输出窗口会显示如下信息:
## 下载和调试
点击 `Run` -> `Edit Configurations`,点击 `+` 号,选择 `OpenOCD Download & Run`,如下图所示:
配置 `Target`、`Executablebinary` 和 `Board config file`,点击 `OK`,如下图所示:
其中 `Board config file` 选择 `geehyLink.cfg`。文件内容如下:
adapterdriver cmsis-dap
transportselect swd
#0x100000 = 1M Flash Size
setFLASH_SIZE 0x100000
source[find target/apm32f4x.cfg]
#download speed = 10MHz
adapterspeed 10000
点击 `Run` -> `Debug`,开始下载和调试,如下图所示:
## 查看外设寄存器
在 `Debug` 窗口中`Peripheral` 加载官方提供的 `svd` 文件,即可查看外设寄存器信息。
## 查看 Memory 信息
在 `Debug` 窗口中`Memory View` 查看内存信息。
## 观察变量
在 `Debug` 窗口中`Variables` 观察变量。
## AI 代码提示
Clion 带有插件系统,可以安装插件,比如 Github Copilot,可以用 AI 技术帮助我们更快的编写代码。
## 代码补全
Clion 还有着很强大的代码补全功能。
还有更多功能等待大家去发现,这里就不一一介绍了。
到此,Clion 开发 APM32 的环境搭建和工程配置就完成了,大家可以参考着优雅的开发 APM32 了。
全部0条评论
快来发表一下你的评论吧 !