背景介绍:
上一篇中 Sugar 介绍了 CLion 下建立 STM32CubeMX 项目。
代码发展久了就会有自己的架构,软件会在 STM32CubeMX 的 HAL 库基础上发展起来。
本篇 Sugar 就以自己的开源项目xm_rc为例,说一说如何在 CLion 下编译自己架构下的软件。
探索之源
通过上一篇已经掌握了如何用 CLion 创建 STM32CubeMX 项目。当掌握这个技能后进而产生了一个念头:CLion 创建的 STM32CubeMX 工程与 STM32CubeMX 本身创建的工程究竟有什么不同,是什么使得 CLion 下建的 STM32CubeMX 工程就能被 CLion 自然支持?
带着上面的问题 Sugar 使用“CLion 下建的 STM32CubeMX 工程”与“STM32CubeMX 本身建的工程”做了个对比,结果如下图:
通过对比发现只是多了个CMakeLists.txt在起作用。即然只是多了一个文件,那么就代表只要研究透这一个文件就能把自己的代码加进去了。
研究CMakeLists.txt
在上面的图片中,我们发现 CLion 贴心地给出了 template 模板文件以供研究,所以我们就从对比开始吧:
加入自己的代码
Sugar 在xm_rc开源项目中使用了 ardupilot 的 C++ 前后台架构、RT-Thread 实时操作系统以及 STM32CubeMX 裸机驱动。
不同架构文件独立管理,在文件管理得当的前提下修改CMakeLists.txt就十分容易。
project generator 与 CMake
project generator 与 CMake 都是自动生成 Makefile 的工具。project generator 与 Makefile 更近一些,通过简单地*.yaml配置文件直接生成 Makefile。而 CMake 比 project generator 条理更清晰一些,但因为有其自身的规则,所以离 Makefile 较远一点。
既然大家都是自动生成 Makefile 的工具,那么就一定有相通之处,如下:
CLion 下C/C++混编加 RT-Thread 的结果
本文源自微信公众号:MultiMCU EDU,不代表用户或本站观点,如有侵权,请联系nick.zong@aspencore.com 删除!