Hi,我是嘉赫。
终于忍受不了Keil了,需要换一个Windows和Mac通用的STM32开发环境。
其实早就受不了Keil了,虽然各路大佬都有很多其他IDE的环境配置,但是总觉得差强人意。现在终于发掘出一个能让自己满意的环境。
本文要介绍的是基于CLion、STM32CubeMX、Jlink的STM32开发环境,为什么要强调JLink这个调试器呢,因为目前来看,无论是市面上在售的各种调试器,还是各路神仙自制的DAPLink,都难以和JLink的简单而强大相媲美。JLink仍然是最优秀的调试器之一。
JetBrain系的CLion集大成于一身,功能强大,插件丰富,当然好看也是选择的重点之一。STM32CubeMX也是简单易用,生成HAL工程非常便捷。所以这套环境完美适合各路颜狗、懒狗、菜狗。
在写这篇文章的时候正在配置Mac上的开发环境,所以环境都是基于Mac的,Windows实际上没什么差异,需要的宝宝自己研究研究,仅供参考。软件版本差异不大的都适用,不用专门找我的版本。
软件 | 版本 |
---|---|
CLion | 2021.3.4 |
STM32CubeMX | 6.5.0 |
JLink Driver Pack | V7.22a |
ARM GCC | gcc-arm-none-eabi-10.3-2021.10 |
软件安装省略,都没什么坑,只说一嘴gcc。gcc可以选pkg安装也可以选tar包,tar包不需要安装,只要解压出来放在一个好找的位置就行,但是没有签名,系统可能报运行警告,百度一下关了就行。不管怎样都要知道路径在哪,pkg装完在user目录。
随后将gcc-arm扔进环境变量PATH,不然一会儿CMake找不着,在用户目录下创建文本文件.zshrc
,如果有这个文件就在后面追加,填入以下内容保存(把里面的GCC_ARM路径换成你自己的路径)。
export GCC_ARM="/Users/larry/gcc-arm-none-eabi-10.3-2021.10"
export PATH="$GCC_ARM/bin:$PATH"
首先CLion是原生支持STM32CubeMX的,在创建CLion工程时直接选择STM32CubeMX就好。
创建好空白工程后开始使用STM32CubeMX开始配置HAL工程。只需要点击右侧的链接打开STM32CudeMX。需要注意的是,在第一次配置好STM32CubeMX工程并生成代码前不要尝试做后面的配置,会让你质疑人生的。
这里我就配置一个简单的STM32F103VET6闪烁的工程做个测试,在生成Code时注意工程名和路径都要和刚刚创建的CLion工程保持完全一致,工具链要选SW4STM32不然后面CMake会懵逼。
最后点击右上角生成Code即可,在生成结束后弹出的窗口中不要打开工程,CLion里面会自动解析。此时解析成功与否还不重要,因为还没有配置工具链,所以失败了也不要慌。
打开首选项(Preference)的Build, Execution, Deployment里的Toolchains配置一个新的工具链,GCC和G++填入上面的ARM GCC路径,选择对应的可执行文件。注意Make和GDB不要选择ARM GCC里的,后面可能出问题,用默认的就好。
此时就差一步了,就是接入JLink。刚创建好的工程默认使用的是OpenOCD,我们要换成JLink GDB Server。打开运行、调试配置页面,新建一个配置,选择Embedded GDB Server,照着下图配置。
这里面的参数大致一看就知道是什么意思,其他JLink GDB Server的参数看看文档吧,这几个就够了。JLink GDB Server是通过socket通信的,在本地创建了一个TCP服务器,默认用2331端口。所以是tcl:localhost:2331
。
然后就可以在main.c里面写点测试代码了,这里修改下CLion的Inspections,把死循环的检测去掉,嵌入式开发里死循环很正常。
这样配置就完成了,接上板子试一下。
这篇文章借鉴了稚晖君的配置流程,加入了JLink GDB Server的配置,并且移到了mac上。
另外我们学校的edu邮箱账号居然我毕业了还保留着,正好白嫖JetBrain全家桶,如果停了还可以白嫖女朋友的,美滋滋。
晚安各位。