CLion 是 Jetbrains 公司开发的一款现代化的 C/C++ IDE,具有十分智能的代码补全、重构等功能。
要替代传统的 MDK 开发工具环境,要解决两个问题。一个是将 C/C++以及汇编代码编译成二进制,另一个是芯片的仿真问题(即将编译好的二进制烧录进 STM32 的芯片以及调试功能的实现)。
前者我们可通过 ARM 提供的 gcc-arm-none-eabi
工具链解决,后者我们可通过开源的 OpenOCD 解决。
OpenOCD(Open On-Chip Debugger)是一个开源的片上调试器,旨在提供针对嵌入式设备的调试、系统编程和边界扫描功能。
OpenOCD 的功能需要调试仿真器来辅助完成,调试仿真器是一个提供调试目标电信号的小型硬件单元。常用的有 JLink、STLink 等。
环境安装
需要的程序如下(点击文字即可跳转下载网页)
OpenOCD 下来是压缩包,解压后并将其 bin 目录添加进 PATH 环境变量。
安装程序的直接运行安装即可。
STM32CubeMX 需要电脑有 Java 运行环境,如果没有 Java 环境需要先安装 Java(JRE)。
Package 是在安装 STM32CubeMX 后,通过 STM32CubeMX 程序自带的下载程序下载即可。打开如图菜单,找到所需芯片的最新的 Pack,点击下载。
配置工程
首先新建工程,选择 STM32CubeMX 工程,点击完成后显示如图界面。默认是 STM32F0 的芯片,我们需要打开 CubeMX 更换芯片并配置引脚。点击 Open with STM32CubeMX 即可打开。
点击箭头位置,进入 MCU 选择界面,输入你选用的芯片型号,在结果中点击芯片,然后点击开始项目。
之后工程将变为你选择的芯片,直接点击芯片的引脚即可修改引脚对应的外设功能。
接下来是配置时钟树,点击 Clock Configuration,在 HCLK 输入你需要的系统频率并回车,STM32CubeMX 将自动搜索可用的时钟方案。
搜索过程中可能提示要求更换时钟源,点击确定即可。
如图我这里 STM32F4 芯片,配置的 168Mhz,回车后自动搜索的方案如下。
之后点击 Project Manager,设置项目信息。
在 Project Name 中填入项目路径的文件夹名,在 Project Location 中填项目的上层路径。
比如我的 CLion 路径是 D:\Projects\RTU-STM32F4-TEST
,则在 Project Name 中填 RTU-STM32F4-TEST
,在 Project Location 中填 D:\Projects\
。目的就是保证最终的 Toolchain Folder Location 为你的 CLion 工程的位置。
然后设置 Toolchain 为 SW4STM32
即可,只有这个 Toolchain 才是基于 CLion 可以识别的 CMake 工程创建的。
点击 Generate Code,出现如图提示则说明路径设置是正确的,因为我们需要替换 CLion 默认创建的 STM32F0 的项目文件。点击确定。
等待进度条走完,出现如图对话框点击关闭即可。
此时应该已经可以正常开发、编译了、
配置 OpenOCD
OpenOCD 是一个通用的调试器,我们需要为其设置芯片的参数,以便让 OpenOCD 知道如何调试我们的芯片。
点击 Edit Configurations
显示如图对话框,选择 All targets,然后选择项目名.elf
的执行文件,点击 Assist,在预置的配置文件选择 stm32f4discovery.cfg 然后点击确定。
之后项目的根目录会多出一个 stm32f4discovery.cfg
文件,找到其中的 source [find target/stm32f4x.cfg]
一行,根据自己选用的芯片进行修改。所有的配置文件都在 openocd 的安装目录的 scripts 目录下,根据自己的实际情况选用最合适的。