pezayo's Blog

蓦然回首,那人却在灯火阑珊处

0%

CLion-STM32开发

CLion-STM32-OpenOCD配置#

这个配置,恕我直言,真的过于阴间。这个 的配置前前后后我不知道配了多久,对着网上的教程进行配置。这里我将其记录下来,然后说出我的一些经验怪谈。

配置这个东西,首先你随便上网一查都能看到需要下载 CLion(收费,但是学生免费),STM32CubeMX,以及OpenOCD。然后你还需要 gcc-arm-mingw。

OpenOCD#

直接搜索下载安装即可,然后假如环境变量即可。

STM32CubeMX#

也是直接下载安装即可,至于要不要导入软件包倒也无所谓,因为在你实现工程的时候,自然而然会给你下载所需要的包。提前装好也不失为一种好的省事的选择。至于如何提前导入包直接百度即可。

arm-none-eabi-gcc(g++ …)#

这个下载也是直接搜索下载安装即可,然后加入环境变量

配置环节#

首先直接按照网上的各种教程将 STM32CubeMX 和 OpenOCD 都加入到 CLion 的配置里面。然后点击 test 看看是否可以识别成功。

然后可以在 CLion 的设置里面新建一个工具链其中使用之前所提到的 arm-none-eabi-gcc 和 arm-none-eabi-gdb,不过对于这里,我还是存在疑问,是否应该这样做?还是说有其他的做法,还是这种做法没什么用。因为我看到网上也是各种参差不齐的说法,也有说不用这个 gdb 直接用 bundled gdb 就行的,看得我也晕了。。。

但就我自己的体验而言,好像这都没什么大用。我甚至都用的是 ninja。程序也能跑起来,就没管了。所以重点还是在后面怎么无脑的机械式的生成能跑,只管自己编写逻辑代码的工程。

创建一个能跑的工程#

直接 CLion 中新建一个工程,起一个名字,便是新建了一个 文件夹。创建的过程中肯定是选择 STM32 的那个选项啦。

然后 CLion 会自动生成一个同样工程名的 .ioc 文件,这个文件是用 STM32CubeMX 来打开编辑的。你直接选中然后用 STM32CubeMX 打开就行了,然后进行属于 STM32CubeMX 的操作环节就可以了。这里最后会有一个文件夹和名字的设置,加入这里自己又设置了其他名字,最后这个 .ioc 文件的名称会被这个覆盖,变成这个名字,不过也没什么大碍。

这里一定要选择 STM32CubeIDE 的模式,不能选择 MDK-ARM 的模式,不然就变成了 Keil 了。然后生成,也就是 generate code,生成好后,会出现 Core 和 Drivers的文件夹以及其他的一些文件。

回到 CLion,他会要你选择一个 cfg,这里的 cfg,我看网上说的,各个都说的轻飘飘的。我也看的云里雾里,不清楚。反正他们的意思是这个文件并不太重要。然而事实也确实是如此。我们只需要关注文件里的两个,一个是 Interface 下的调试器。像我用的是 stlink,所以里面的就是 source [find interface/stlink.cfg],不得不说,stlink 这个调试器是真的无脑,而且下载速度快。除此之外还有一个 target 里面的文件,叫你选择一个单片机处理器相关的文件。直接看型号就行。像我用的探索者板子,芯片是 stm32f407ZGT6,所以这里的配置就是source [find target/stm32f4x.cfg]

当然上面这么多,都不是自己配的,我就是直接在回到 CLion 的界面中选择了 stm32f4discovery.cfg 的选项就可以了。里面就已经有这两行给你配好了。也就是说不用自己再去配了。

这里最神奇,也就是说,从开始创建工程到现在,没有自己额外再去配的部分了,都是直接选择。到了这里,那个编译选项,工具链那个地方(就是 CLion 右上角的图标)自然而然就有了一个锤子样的符号(Build)和 OpenOCD 的一个 configuration ,并且 run 和 debug 都是亮着的,说明是可以直接点击开始跑的。这时候你再点开 Edit configuration ,你就能看到里面已经给你配好了,也就是说,这里好像和你之前的那个配置工具链没有什么关系。所以这里我自己也不太清晰,但是程序能跑就行。

这里你再点击编译,点击下载,就能成功下载了。至此,我们也就云里雾里的成功配置好,并且程序能跑了。

工程移植#

工程移植还是比较麻烦的。直接复制粘贴会出现我的配置文件选用的是原来文件夹里的。然后经过一番倒腾,我发现了一个能行的通的方法。

首先不能直接复制工程,不然后面会很混乱,到底哪个是哪个工程的配置。我们这里应该要新建一个工程,自己取名字等等。

然后新建完一个工程后他会叫你打开并编辑 .ioc 文件,这里就不急,直接把他生成的这个给删掉,然后从原来的工程里把那个复制过来,注意,建议把这个 .ioc 文件名字改成现在工程的名字。不然又乱了。。。。

注意这里很重要,现在要直接用这个文件生成代码,不能直接把代码从原来的工程搬过来。一定要自己这边先生成空的模板代码。

生成完模板代码后,再把原来工程中带有我们的编写信息的代码文件,比如 main.c,maic.h以及其他我们自己的写的头文件和源文件。仅仅把这些我们自己写的文件移植过来。

这时候我们还需要取重新加载这个 CMake 工程。右键 CLion 中的工程文件夹就有这个选项了。

这时候,进行编译,并且进行下载,就能正常下载程序了。

大功告成!

-------------本文结束感谢您的阅读-------------

欢迎关注我的其它发布渠道