# 安装基础开发工具
sudo apt-get install build-essential cmake
# 安装调试工具
sudo apt-get install gdb gdbserver openocd
# 安装交叉编译工具链 (以ARM为例)
sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi
/usr/bin/arm-none-eabi-gcc
/usr/bin/arm-none-eabi-g++
/usr/bin/arm-none-eabi-gdb
# 示例CMakeLists.txt片段
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_COMPILER arm-none-eabi-gcc)
set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
# 添加MCU特定标志
add_compile_options(
-mcpu=cortex-m4
-mthumb
-mfpu=fpv4-sp-d16
-mfloat-abi=hard
-ffunction-sections
-fdata-sections
-Wall
-g
)
# 链接器脚本
set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/STM32F407VGTx_FLASH.ld)
add_link_options(-T ${LINKER_SCRIPT} -specs=nosys.specs)
arm-none-eabi-gdb
tcp:localhost:3333
openocd
-f interface/stlink-v2.cfg -f target/stm32f4x.cfg
# 安装J-Link软件包
wget https://www.segger.com/downloads/jlink/JLink_Linux_Vxxx_x86_64.deb
sudo dpkg -i JLink_Linux_Vxxx_x86_64.deb
# 安装size工具
sudo apt-get install binutils-arm-none-eabi
# 在CMake中添加自定义目标
add_custom_target(
size ALL
COMMAND arm-none-eabi-size ${CMAKE_PROJECT_NAME}.elf
DEPENDS ${CMAKE_PROJECT_NAME}.elf
)
# 检查USB设备权限
lsusb
sudo chmod a+rw /dev/ttyACM0 # 根据实际设备调整
# 检查OpenOCD服务是否运行
ps aux | grep openocd
# 检查GDB server端口
netstat -tulnp | grep 3333
使用ccache加速编译:
sudo apt-get install ccache
# 在CMake中启用
set(CMAKE_C_COMPILER_LAUNCHER ccache)
set(CMAKE_CXX_COMPILER_LAUNCHER ccache)
并行编译:
# 在CLion设置中增加并行编译任务数
# Settings > Build, Execution, Deployment > CMake > Parallel jobs
远程开发:对于资源受限的Linux主机,可考虑使用CLion的远程开发功能连接到更强大的服务器。