秋风清,秋月明;落叶聚还散,寒鸦栖复惊。相思相见知何日,此时此夜难为情
在mac下进行stm32的开发,我选择的方式是STM32CubeMX + Clion
这个具体来说就是STM32CubeMX进行配置生成HAL库的c代码,随后导入Clion,通过Clion的STM32CubeMX + openOCD的插件进行导入,最后通过Cmake + gcc-arm交叉编译链构建,通过openOCD进行下载调试(这里由于我水平有限,并且是临时借了一个较为小众的下载器,只能下载而不能在线调试,这个问题在最后会说明)
一些背景知识:
交叉编译:使用Cmake工具构建,使用arm-none-eabi-gcc编译。Cmake是用来构建整个工程的,由于是在电脑端编写c语言程序,想要编译二进制到单片机上就必须需要交叉编译,这就是为什么都用c语言但是可以生成不同机器能够运行的二进制代码。arm-none-eabi-gcc就相当于编译器,Cmake就是构建工具。所以,如果使用了别的第三方库,则需要在Cmakelist文件中修改,可以添加头文件(.h)的查询位置等其他参数命令
整个的程序编写下载流程我认为是这样的:
如果你够强,可以只下载标准库或者HAL库的所选芯片的包,然后一行一行自己全码出来
但是更为便捷和快速容易上手的方式是通过CubeMX做一些基础配置并生成代码,生成的代码中能够包含Cmake工具进行构建所需的配置文件,所以在导入Clion后根据CubeMX的配置文件进行构建(要安装一个插件)就可以完全将工程转入Clion环境下。CubeMX生成的代码