0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎么用Clion开发APM32

Geehy极海半导体 来源:Geehy极海半导体 2024-12-17 09:19 次阅读

# 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`。

8cf23fb2-b93e-11ef-8732-92fbcf53809c.jpg

我是用 Windows 系统开发Windows 应用,所以选择 `x86_64-win32-seh` 进行下载。从上面链接下载完成后,解压压缩包中的 mingw64 文件夹到自己喜欢的位置,这里解压到 `E:ToolChain`。

8cf6dfae-b93e-11ef-8732-92fbcf53809c.jpg

### 配置环境变量

将 `E:ToolChainmingw64in` 添加到环境变量 `Path` 中。

8d0828d6-b93e-11ef-8732-92fbcf53809c.jpg

### 验证 MinGW-w64 是否安装成功

打开 CMD,输入 `gcc -v`,如果出现如下信息,则说明 MinGW-w64 安装成功。

8d19276c-b93e-11ef-8732-92fbcf53809c.jpg

## 搭建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。

8d28f854-b93e-11ef-8732-92fbcf53809c.jpg

从上面的链接下载压缩包后,同样解压到 `E:ToolChain`。

8d4205f6-b93e-11ef-8732-92fbcf53809c.jpg

### 配置环境变量

将`E:ToolChaingcc-arm-none-eabi-10.3-2021.10in` 添加到环境变量 `Path` 中。

8d60ada8-b93e-11ef-8732-92fbcf53809c.jpg

### 验证gcc-arm-none-eabi 是否安装成功

打开 CMD,输入`arm-none-eabi-gcc -v`,如果出现如下信息,则说明 gcc-arm-none-eabi 安装成功。

8d6fd468-b93e-11ef-8732-92fbcf53809c.jpg

## 搭建 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`。

8d80027a-b93e-11ef-8732-92fbcf53809c.jpg

因为 OpenOCD 官方还未支持APM32,所以需要增加对 APM32 的支持。将附件提供的`apm32f4x.cfg` 文件拷贝到`E:ToolChainOpenOCDshareopenocdscripts arget` 目录下。

8d886f32-b93e-11ef-8732-92fbcf53809c.jpg

### 配置环境变量

将 `E:ToolChainOpenOCDin` 添加到环境变量 `Path` 中。

8d9e31e6-b93e-11ef-8732-92fbcf53809c.jpg

### 验证 OpenOCD 是否安装成功

打开 CMD,输入 `openocd-v`,如果出现如下信息,则说明 OpenOCD 安装成功。

8db5b316-b93e-11ef-8732-92fbcf53809c.jpg

# 03 配置 Clion

### 配置工具链

打开 Clion,点击 `File`-> `Settings` -> `Build, Execution, Deployment` -> `Toolchains`,点击 `+` 号,选择 `MinGW`,点击`OK`。将上述搭建的环境填入对应的位置,点击 `OK`。如下图所示:

8dc3168c-b93e-11ef-8732-92fbcf53809c.jpg

> 注意:CMake 选择 Bundled,Debuggers 选择 Bundled GDB。

到 `CMake` 选项卡中确认`Toolchain` 选择的是 `MinGW`,如下图所示:

8ddd31ca-b93e-11ef-8732-92fbcf53809c.jpg

### 配置 OpenOCD

点击 `File` -> `Settings` -> `Build,Execution, Deployment` -> `Embedded Development` -> `OpenOCD Localtion` 设置为 `E:ToolChainOpenOCDinopenocd.exe`,如下图所示:

8dff10d8-b93e-11ef-8732-92fbcf53809c.jpg

# 04 Clion 开发 APM32

## 导入工程

Clion 使用 CMake 构建工程,所以在 APM32 官方 SDK 中的工程需要加入 CMakeLists.txt 文件。

这里用到我另一篇帖子 [使用CMake构建APM32工程](https://bbs.21ic.com/icview-3357660-1-1.html)里面的工程,大家可以去下载。下载完成后,将工程导入或直接拖拽工程目录入 Clion,如下图所示:

8e0cdd1c-b93e-11ef-8732-92fbcf53809c.jpg

工程导入后,Clion 会提示项目未配置。我们打开 `GPIO_Toggle` -> `Project` -> `CMake` 目录,然后在 `CMakeLists.txt` 文件右键选择 `Load CMakeProject`,如下图所示:

8e16f28e-b93e-11ef-8732-92fbcf53809c.jpg

等待配置完成即可,配置完成后,CMake 输出窗口会显示如下信息:

8e2b3f46-b93e-11ef-8732-92fbcf53809c.jpg

并在 `GPIO_Toggle` -> `Project` ->`CMake` 目录下生成 `cmake-build-debug` 目录及 `Makefile` 文件,如下图所示:

8e3d1f2c-b93e-11ef-8732-92fbcf53809c.jpg

## 编译工程

点击 `Build` -> `Build Project` 进行工程的编译,编译完成后 Build 输出窗口会显示如下信息:

8e451e66-b93e-11ef-8732-92fbcf53809c.jpg

## 下载和调试

点击 `Run` -> `Edit Configurations`,点击 `+` 号,选择 `OpenOCD Download & Run`,如下图所示:

8e5a0678-b93e-11ef-8732-92fbcf53809c.jpg

配置 `Target`、`Executablebinary` 和 `Board config file`,点击 `OK`,如下图所示:

8e733058-b93e-11ef-8732-92fbcf53809c.jpg

其中 `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`,开始下载和调试,如下图所示:

8e7f64fe-b93e-11ef-8732-92fbcf53809c.png

## 查看外设寄存器

在 `Debug` 窗口中`Peripheral` 加载官方提供的 `svd` 文件,即可查看外设寄存器信息。

8e980734-b93e-11ef-8732-92fbcf53809c.jpg

## 查看 Memory 信息

在 `Debug` 窗口中`Memory View` 查看内存信息。

8ea15384-b93e-11ef-8732-92fbcf53809c.jpg

## 观察变量

在 `Debug` 窗口中`Variables` 观察变量。

8eb7833e-b93e-11ef-8732-92fbcf53809c.jpg

## AI 代码提示

Clion 带有插件系统,可以安装插件,比如 Github Copilot,可以用 AI 技术帮助我们更快的编写代码。

8ecdad30-b93e-11ef-8732-92fbcf53809c.jpg

## 代码补全

Clion 还有着很强大的代码补全功能。

8edac59c-b93e-11ef-8732-92fbcf53809c.jpg

还有更多功能等待大家去发现,这里就不一一介绍了。

到此,Clion 开发 APM32 的环境搭建和工程配置就完成了,大家可以参考着优雅的开发 APM32 了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19088

    浏览量

    304552
  • AI
    AI
    +关注

    关注

    87

    文章

    30615

    浏览量

    268812
  • 开发环境
    +关注

    关注

    1

    文章

    224

    浏览量

    16607
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1033

    浏览量

    45877

原文标题:APM32芯得 EP.48 | 用 Clion 开发 APM32

文章出处:【微信号:geehysemi,微信公众号:Geehy极海半导体】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    APM32代替STM32遇到的坑

    APM32芯片是如何替换STM32芯片的?有哪些操作流程?
    发表于 09-22 07:56

    APM32 ST-LINK不能刷入的解决办法

    APM32 ST-LINK不能刷入之前一直apm32F103CBT6代替stm32F103C8T6,然后突然没法刷入程序,解决方案如下:把st-link/v2的TVCC引脚接到单片机的3.3v电源
    发表于 02-18 07:09

    APM32工业级硬核抗寒体质,无惧-40℃寒潮!

    极海APM32全系列MCU,工作温度覆盖-40℃~+105℃,ESD等级高达8KV,具有低功耗、高性能、安全可靠、可移植性好、客户接受程度高等特点,可保障智能快递柜在各种严苛高低温工作环境中稳定运行。
    发表于 01-14 17:13 2762次阅读

    clion自带的嵌入式开发功能和stm32cubeMX开发stm32!!!

    起因因为keil的难用…以前开发stm32,我都是使用stm32cube生成了项目文件之后,clion编辑,然后用keil编译下载加Debug.说实话,整体感觉还不错,但总感觉怪怪的.也曾尝试
    发表于 11-03 09:36 14次下载
    <b class='flag-5'>用</b><b class='flag-5'>clion</b>自带的嵌入式<b class='flag-5'>开发</b>功能和stm32cubeMX<b class='flag-5'>开发</b>stm32!!!

    APM32 ST-LINK不能刷入

    APM32 ST-LINK不能刷入之前一直apm32F103CBT6代替stm32F103C8T6,然后突然没法刷入程序,解决方案如下:把st-link/v2的TVCC引脚接到单片机的3.3v电源
    发表于 12-23 19:01 5次下载
    <b class='flag-5'>APM32</b> ST-LINK不能刷入

    基于APM32 MCU的电动车BMS及电机控制应用方案

    极海APM32系列工业级通用MCU,低功耗、高性能、高集成、易于移植、支持96位唯一设备ID(UID),ESD高达8KV,符合工业级可靠性标准,具有较强的抗干扰性和防静电能力,全系列产品工作温度覆盖-40℃~+105℃,满足严苛工作环境的温度要求,可为电动车行业提供安全可靠的嵌入式应用解决方案。
    发表于 02-08 17:01 17次下载
    基于<b class='flag-5'>APM32</b> MCU的电动车BMS及电机控制应用方案

    嵌入式开发工具服务商IAR Systems工具链全面支持极海半导体APM32系列MCU

    嵌入式开发工具服务商IAR Systems工具链全面支持极海半导体APM32系列MCU. IAR Embedded Workbench for Arm 9.30已全面支持极海半导体APM32系列
    发表于 07-13 17:08 1804次阅读
    嵌入式<b class='flag-5'>开发</b>工具服务商IAR Systems工具链全面支持极海半导体<b class='flag-5'>APM32</b>系列MCU

    APM32 PROG开发工具使用说明

    APM32_PROG使用说明书,软件使用方法
    发表于 09-30 14:39 2次下载

    APM32系列工业级MCU GW88系列低功耗蓝牙芯片选型

    APM32系列工业级MCU GW88系列低功耗蓝牙芯片选型表免费下载。需要样品可以留言下载,15994789587
    发表于 12-13 11:51 12次下载

    APM32烧录器使用说明书

    APM32烧录器使用说明书
    发表于 11-09 21:03 6次下载
    <b class='flag-5'>APM32</b>烧录器使用说明书

    APM32 PROG安装包

    APM32 PROG安装包
    发表于 11-09 21:03 6次下载
    <b class='flag-5'>APM32</b> PROG安装包

    APM32F030X8_配置差异_APM32库在main前时钟配置出现异常

    APM32F030X8_配置差异_APM32库在main前时钟配置出现异常
    发表于 11-09 21:03 0次下载
    <b class='flag-5'>APM</b>32F030X8_配置差异_<b class='flag-5'>APM32</b>库在main前时钟配置出现异常

    APM32 MCU助力推动新型工业化发展

    国产APM32 MCU助力推动新型工业化发展
    的头像 发表于 09-28 17:38 804次阅读
    <b class='flag-5'>APM32</b> MCU助力推动新型工业化发展

    PICO Example Clion开发

    以下是一些在 linux 环境下,使用 Clion 开发基于 C/C++ SDK 的 PICO-Example 的注意事项,使用 Clion 的下载和调试配置在上一篇文章中已经介绍。
    的头像 发表于 10-09 10:16 808次阅读

    RaspberryPi Pico Clion开发环境配置

    该文章用于记录使用一块 Pico通过 picoprobe 调试另一块 Pico 的开发方案,使用的 IDE 为 Clion,工程文件为 RT-Thread BSP。
    的头像 发表于 10-09 16:16 1328次阅读
    RaspberryPi Pico <b class='flag-5'>Clion</b><b class='flag-5'>开发</b>环境配置