如何在 CLion 下编译自己架构下的软件
MultiMCU EDU 2023-06-02

背景介绍:
上一篇中 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 删除!

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 硬件
  • 原理图
  • 信号完整性
  • EMI
下载排行榜
更多
评测报告
更多
广告