我开始使用已经设置了makefile的现有stm32项目进行工作。我设置了arm-none-eabi
工具链和openocd
,并能够从命令行使用Makefile进行闪存/调试。
我想使用CLion开发和调试该项目,但是遇到了一些困难,因为CLion本身不支持makefile。我在OSX 10.14.4上使用CLion 2019.1。
由于CLion 2019.1引入了对使用openocd(https://www.jetbrains.com/help/clion/2019.1/embedded-development.html)进行嵌入式开发的正式支持,因此我首先尝试使用上述网页上的指南创建一个新项目,并粘贴我的源代码以及翻译将makefile放入CMake模板。但是由于makefile本身很复杂,而且我对CMake还是陌生的,因此我无法用CMake进行编译。
然后,我尝试的第二种方法是使用现有的makefile进行编译,并使用已编译的二进制文件创建自定义目标,以进行刷新和调试。
我能够找到一种解决方法,方法是首先单击New CMake Project from Sources
,然后在add_executable(...)
中注释生成的CMakeLists.txt
,然后添加以下行:
add_custom_target(upload COMMAND make)
然后在“运行/调试配置”中添加了OpenOCD Download & Run
目标,并将目标设置为自定义目标upload
,然后将可执行文件设置为由makefile生成的elf文件。这是一个
。
我可以使用此配置进行闪存和调试,但是有两个问题。
我的自定义目标似乎并未实际执行命令make
,因此我必须去终端并键入make
才能将代码编译为elf文件,然后单击“运行”。 CLion中的“或”“调试”以使代码更改生效。
我所有的源代码都标记为“此文件不属于任何项目目标”,并且所有不错的代码洞察功能均不适用于它们。这是由于我在add_executable
中注释掉了“ CMakeList
”,因此取消注释即可解决问题。但是我每次都要在“运行”或“调试”之前对其进行评论。
将项目导入CLion时,我觉得这是一个注释问题。我想知道这里是否有人有类似的挣扎并有更好的解决方案。