本文简要介绍了如何使用CLion做STM32上的嵌入式开发。整个开发流程不离开CLion环境,提高工作效率。
JetBrain家的开发工具基本都是最棒的,对编程语言、框架支持得最好。CLion经过几年的发展,从无到有,成为了一个越来越完善的C++ IDE。在官方论坛上,用户呼声很高的一个需求就是remote debugging、嵌入式开发。
在最近几次更新里,CLion逐渐添加了remote debugging相关的支持。笔者经过摸索配置,终于能够在CLion中完成嵌入式开发的全套流程了。从写代码、编译,到烧写、调试,全都在CLion环境下完成,不用来回切换窗口了。虽然CLion在调试方面的功能还不够完善,但代码编辑绝对是一流的,调试的“手感”也比Eclipse舒服很多。
本文以STM32开发为例讲解开发环境的配置。理论上,其他ARM的MCU是一样的原理,可根据需要自行修改配置。
环境
本文所使用的软硬件工具有:
· IDE:CLion 2016.3(建议使用这个版本,稍早的版本不确定能不能用)
· toolchain / 编译器:GNU GCC for ARM (gcc-arm-none-eabi)
· Debugger:OpenOCD 0.9.0
· MCU:STM32F103,自己的板子
· 仿真器:STLink-v2
配置方法
前提条件
首先假设你已经有了一份项目代码,安装好了 gcc-arm-none-eabi toolchain,能够用Makefile或Eclipse等方式正常编译。这部分内容不再详述。本文中,项目名为 testprj 。
CMake配置
CLion使用CMake系统,项目文件就是 CMakeLists.txt 。
首先,创建一个公用的toolchain配置文件 toolchain-arm-eabi-gcc.cmake ,这个文件让CMake使用gcc-arm-none-eabi toolchain中的工具,并设置特定平台的编译参数等。文件内容如下。
toolchain-arm-eabi-gcc.cmake
include(CMakeForceCompiler)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR cortex-m3)
find_program(ARM_CC arm-none-eabi-gcc ${TOOLCHAIN_DIR}/bin)
find_program(ARM_CXX arm-none-eabi-g++ ${TOOLCHAIN_DIR}/bin)
find_program(ARM_OBJCOPY arm-none-eabi-objcopy ${TOOLCHAIN_DIR}/bin)
find_program(ARM_SIZE_TOOL arm-none-eabi-size ${TOOLCHAIN_DIR}/bin)
CMAKE_FORCE_C_COMPILER(${ARM_CC} GNU)
CMAKE_FORCE_CXX_COMPILER(${ARM_CXX} GNU)