跳转至

Zephyr Clion 开发环境配置

Zephyr 的构建环境是基于 CMake 的,而 Clion 也以 CMake 作为首要支持的构建环境,因此以 Clion 作为 Zephyr 开发 IDE 是一个不错的选择。

  1. 安装 Clion 与 Bash Support 插件(可选)
  2. File -> Settings -> Build, Execution, Deployment -> CMake , 添加环境变量:
ZEPHYR_BASE=/path/to/ncs/zephyr
GNUARMEMB_TOOLCHAIN_PATH=/path/to/gnuarmemb
  1. 编辑项目的 CMakeLists.txt 文件,在 cmake_minimum_required 下面添加类此内容 (BOARD与BOARD_DIR按实际情况修改):
set(ENV{BOARD} nrf9160_pca10090ns)
set(ENV{BOARD_DIR} $ENV{ZEPHYR_BASE}/boards/arm/nrf9160_pca10090)

set(ENV{ZEPHYR_TOOLCHAIN_VARIANT} gnuarmemb)

set(ENV{CMAKE_AR} $ENV{GNUARMEMB_TOOLCHAIN_PATH}/bin/arm-none-eabi-ar)
set(ENV{CMAKE_AS} $ENV{GNUARMEMB_TOOLCHAIN_PATH}/bin/arm-none-eabi-as)
set(ENV{CMAKE_ASM_COMPILER} $ENV{GNUARMEMB_TOOLCHAIN_PATH}/bin/arm-none-eabi-gcc)
set(ENV{CMAKE_ASM_COMPILER_AR} $ENV{GNUARMEMB_TOOLCHAIN_PATH}/bin/arm-none-eabi-gcc-ar)
set(ENV{CMAKE_ASM_COMPILER_RANLIB} $ENV{GNUARMEMB_TOOLCHAIN_PATH}/bin/arm-none-eabi-gcc-ranlib)

set(ENV{CMAKE_ASM_FLAGS_DEBUG} -g)
set(ENV{CMAKE_ASM_FLAGS_MINSIZEREL} "-Os -DNDEBUG")
set(ENV{CMAKE_ASM_FLAGS_RELEASE} "-O3 -DNDEBUG")
set(ENV{CMAKE_ASM_FLAGS_RELWITHDEBINFO} "-O2 -g -DNDEBUG")

set(ENV{CMAKE_CXX_COMPILER} $ENV{GNUARMEMB_TOOLCHAIN_PATH}/bin/arm-none-eabi-g++)
set(ENV{CMAKE_CXX_COMPILER_AR} $ENV{GNUARMEMB_TOOLCHAIN_PATH}/bin/arm-none-eabi-gcc-ar)
set(ENV{CMAKE_CXX_COMPILER_RANLIB} $ENV{GNUARMEMB_TOOLCHAIN_PATH}/bin/arm-none-eabi-gcc-ranlib)
  1. 重新加载 CLion 项目,可能会有一些警告提示,根据需要进行修改
  2. Zephyr 项目代码较大,如果经常出现 CLion 卡死,CPU疯转的情况,可以尝试将 Help -> Change Memory Settings 中内存值改大到4G以上