# 01 前言
APM32 官方 SDK 中提供了三種開(kāi)發(fā)環(huán)境:Keil、IAR 和 Eclipse。不否認(rèn)這三種環(huán)境的強(qiáng)大,但是在 AI 時(shí)代做嵌入式開(kāi)發(fā),用這三種環(huán)境就顯得有點(diǎn)不夠優(yōu)雅了。本篇文章主要介紹怎么用Clion 開(kāi)發(fā) APM32,涉及 CMake、Makefile、OpenOCD 和PyOCD 的知識(shí),供大家參考。
# 02 環(huán)境搭建
## 軟件環(huán)境
- 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
## 硬件環(huán)境
- APM32F407IG Tiny 開(kāi)發(fā)板
## 搭建 MinGW-w64 環(huán)境
### 安裝 MinGW-w64
[MinGW-W64](https://sourceforge.net/projects/mingw-w64/files/mingw-w64/)全稱(chēng)為 Minimalist GNU for Windows,是一個(gè)在 Windows 平臺(tái)上編譯 32 位和64 位應(yīng)用程序的工具集。MinGW-w64 是 MinGW 的一個(gè)分支,它支持 64 位 Windows 和 32 位 Windows。
MinGW-w64 支持在線安裝和離線安裝,這里建議大家使用離線安裝方式,因?yàn)樵诰€安裝的速度太慢了。Windows 系統(tǒng)開(kāi)發(fā) Linux 應(yīng)用選擇 `x86_64-posix-seh`,Windows 系統(tǒng)開(kāi)發(fā) Windows 應(yīng)用選擇 `x86_64-win32-seh`。
我是用 Windows 系統(tǒng)開(kāi)發(fā)Windows 應(yīng)用,所以選擇 `x86_64-win32-seh` 進(jìn)行下載。從上面鏈接下載完成后,解壓壓縮包中的 mingw64 文件夾到自己喜歡的位置,這里解壓到 `E:ToolChain`。
### 配置環(huán)境變量
將 `E:ToolChainmingw64in` 添加到環(huán)境變量 `Path` 中。
### 驗(yàn)證 MinGW-w64 是否安裝成功
打開(kāi) CMD,輸入 `gcc -v`,如果出現(xiàn)如下信息,則說(shuō)明 MinGW-w64 安裝成功。
## 搭建gcc-arm-none-eabi 環(huán)境
### 安裝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 官方提供的一款免費(fèi)的編譯器,支持多種操作系統(tǒng),包括Windows、Linux 和 macOS。
從上面的鏈接下載壓縮包后,同樣解壓到 `E:ToolChain`。
### 配置環(huán)境變量
將`E:ToolChaingcc-arm-none-eabi-10.3-2021.10in` 添加到環(huán)境變量 `Path` 中。
### 驗(yàn)證gcc-arm-none-eabi 是否安裝成功
打開(kāi) CMD,輸入`arm-none-eabi-gcc -v`,如果出現(xiàn)如下信息,則說(shuō)明 gcc-arm-none-eabi 安裝成功。
## 搭建 OpenOCD 環(huán)境
### 安裝 OpenOCD
[OpenOCD](https://sourceforge.net/projects/openocd/files/openocd/0.12.0-rc1/)全稱(chēng)為 Open On-Chip Debugger,是一個(gè)開(kāi)源的調(diào)試工具,支持多種調(diào)試器,包括 J-Link、ST-Link、CMSIS-DAP等。
從上面鏈接下載后,同樣解壓到 `E:ToolChain`。
因?yàn)?OpenOCD 官方還未支持APM32,所以需要增加對(duì) APM32 的支持。將附件提供的`apm32f4x.cfg` 文件拷貝到`E:ToolChainOpenOCDshareopenocdscripts arget` 目錄下。
### 配置環(huán)境變量
將 `E:ToolChainOpenOCDin` 添加到環(huán)境變量 `Path` 中。
### 驗(yàn)證 OpenOCD 是否安裝成功
打開(kāi) CMD,輸入 `openocd-v`,如果出現(xiàn)如下信息,則說(shuō)明 OpenOCD 安裝成功。
# 03 配置 Clion
### 配置工具鏈
打開(kāi) Clion,點(diǎn)擊 `File`-> `Settings` -> `Build, Execution, Deployment` -> `Toolchains`,點(diǎn)擊 `+` 號(hào),選擇 `MinGW`,點(diǎn)擊`OK`。將上述搭建的環(huán)境填入對(duì)應(yīng)的位置,點(diǎn)擊 `OK`。如下圖所示:
> 注意:CMake 選擇 Bundled,Debuggers 選擇 Bundled GDB。
到 `CMake` 選項(xiàng)卡中確認(rèn)`Toolchain` 選擇的是 `MinGW`,如下圖所示:
### 配置 OpenOCD
點(diǎn)擊 `File` -> `Settings` -> `Build,Execution, Deployment` -> `Embedded Development` -> `OpenOCD Localtion` 設(shè)置為 `E:ToolChainOpenOCDinopenocd.exe`,如下圖所示:
# 04 Clion 開(kāi)發(fā) APM32
## 導(dǎo)入工程
Clion 使用 CMake 構(gòu)建工程,所以在 APM32 官方 SDK 中的工程需要加入 CMakeLists.txt 文件。
這里用到我另一篇帖子 [使用CMake構(gòu)建APM32工程](https://bbs.21ic.com/icview-3357660-1-1.html)里面的工程,大家可以去下載。下載完成后,將工程導(dǎo)入或直接拖拽工程目錄入 Clion,如下圖所示:
工程導(dǎo)入后,Clion 會(huì)提示項(xiàng)目未配置。我們打開(kāi) `GPIO_Toggle` -> `Project` -> `CMake` 目錄,然后在 `CMakeLists.txt` 文件右鍵選擇 `Load CMakeProject`,如下圖所示:
等待配置完成即可,配置完成后,CMake 輸出窗口會(huì)顯示如下信息:
并在 `GPIO_Toggle` -> `Project` ->`CMake` 目錄下生成 `cmake-build-debug` 目錄及 `Makefile` 文件,如下圖所示:
## 編譯工程
點(diǎn)擊 `Build` -> `Build Project` 進(jìn)行工程的編譯,編譯完成后 Build 輸出窗口會(huì)顯示如下信息:
## 下載和調(diào)試
點(diǎn)擊 `Run` -> `Edit Configurations`,點(diǎn)擊 `+` 號(hào),選擇 `OpenOCD Download & Run`,如下圖所示:
配置 `Target`、`Executablebinary` 和 `Board config file`,點(diǎn)擊 `OK`,如下圖所示:
其中 `Board config file` 選擇 `geehyLink.cfg`。文件內(nèi)容如下:
adapterdriver cmsis-dap
transportselect swd
#0x100000 = 1M Flash Size
setFLASH_SIZE 0x100000
source[find target/apm32f4x.cfg]
#download speed = 10MHz
adapterspeed 10000
點(diǎn)擊 `Run` -> `Debug`,開(kāi)始下載和調(diào)試,如下圖所示:
## 查看外設(shè)寄存器
在 `Debug` 窗口中`Peripheral` 加載官方提供的 `svd` 文件,即可查看外設(shè)寄存器信息。
## 查看 Memory 信息
在 `Debug` 窗口中`Memory View` 查看內(nèi)存信息。
## 觀察變量
在 `Debug` 窗口中`Variables` 觀察變量。
## AI 代碼提示
Clion 帶有插件系統(tǒng),可以安裝插件,比如 Github Copilot,可以用 AI 技術(shù)幫助我們更快的編寫(xiě)代碼。
## 代碼補(bǔ)全
Clion 還有著很強(qiáng)大的代碼補(bǔ)全功能。
還有更多功能等待大家去發(fā)現(xiàn),這里就不一一介紹了。
到此,Clion 開(kāi)發(fā) APM32 的環(huán)境搭建和工程配置就完成了,大家可以參考著優(yōu)雅的開(kāi)發(fā) APM32 了。
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19123瀏覽量
305143 -
AI
+關(guān)注
關(guān)注
87文章
30887瀏覽量
269060 -
開(kāi)發(fā)環(huán)境
+關(guān)注
關(guān)注
1文章
225瀏覽量
16617 -
SDK
+關(guān)注
關(guān)注
3文章
1036瀏覽量
45934
原文標(biāo)題:APM32芯得 EP.48 | 用 Clion 開(kāi)發(fā) APM32
文章出處:【微信號(hào):geehysemi,微信公眾號(hào):Geehy極海半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論