[IDEA]现代化嵌入式AI编程-Clion指南
前情
【安装与更新】IDE安装链接:https://www.jetbrains.com/zh-cn/toolbox-app/
【兼容性】安装或更新CLion(IDEA家用于C/C++的编程平台,可以兼容平替CUBEIDE工程,Keil工程的IDE内编译调试还需自己适配)
【版本安装建议】建议版本安装26年,因为有部分AI插件在25年版本后才能搜索到,并且根据安富莱论坛来说26年版本兼容VScode的工程了
【环境搭建】对于环境的安装可以参考我早年的博客:https://blog.csdn.net/2303_81879249/article/details/138239156?spm=1001.2014.3001.5502
【破解】最后破解:可以找淘宝解决,最省时间
【系统兼容】和IDEA家其他产品一样,支持liunx、windows、macos。

破解与插件
up自己购买获得的链接
windows破解:https://xcntyqfow9pt.feishu.cn/wiki/DLvGwZAnriPP8rkK33CciKIfnxd

插件推荐
IDEA家的AI(需要魔法和美元)


国内较好用的AI(免费)
不仅仅是多了一个浏览器一样的对话框、而是嵌入进了idea里面,可以直接帮你管理git仓库、添加合并代码,自己查看工程源文件和md文件,还有自动联想补全代码和注释


翻译软件
直接使用AI翻译也可以

或者专门的插件

STM32-CUBEIDE工程
直接打开就兼容,idea官方主力推荐,支持gcc、g++编译、内存调试、步进调试、link下载代码
看up链接:https://blog.csdn.net/2303_81879249/article/details/138239156?spm=1001.2014.3001.5502
# 此文件从模板自动生成! 请勿更改!
# 设置 CMake 目标系统名称为 Generic(通用),用于嵌入式开发
set(CMAKE_SYSTEM_NAME Generic)
# 设置 CMake 目标系统版本
set(CMAKE_SYSTEM_VERSION 1)
# 指定 CMake 需要的最低版本
cmake_minimum_required(VERSION 3.25)
# ============================== 交叉编译器配置 ============================== #
# 指定 C 语言编译器
set(CMAKE_C_COMPILER arm-none-eabi-gcc)
# 指定 C++ 语言编译器
set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
# 指定汇编编译器
set(CMAKE_ASM_COMPILER arm-none-eabi-gcc)
# 指定静态库打包工具
set(CMAKE_AR arm-none-eabi-ar)
# 指定目标文件转换工具(将 ELF 转换为 HEX 或 BIN)
set(CMAKE_OBJCOPY arm-none-eabi-objcopy)
# 指定目标文件反汇编工具
set(CMAKE_OBJDUMP arm-none-eabi-objdump)
# 指定大小计算工具
set(SIZE arm-none-eabi-size)
# 设定 CMake 交叉编译的目标类型为静态库
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
# ============================== 项目配置 ============================== #
# 设置项目名称,并支持 C、C++ 和汇编(ASM)语言
project(ADC+DAC C CXX ASM)
# 设置 C++ 标准为 C++17
set(CMAKE_CXX_STANDARD 17)
# 设置 C 标准为 C11
set(CMAKE_C_STANDARD 11)
# ============================== 浮点运算支持(可选) ============================== #
# 如果 MCU 具有 FPU(浮点运算单元),可启用硬件浮点支持(使用 `hard`)
# 也可以使用 `soft` 选项以软件方式模拟浮点运算
# 硬件浮点(取消注释可启用)
# add_compile_definitions(ARM_MATH_CM4;ARM_MATH_MATRIX_CHECK;ARM_MATH_ROUNDING)
# add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
# add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
# 软件浮点(取消注释可启用)
# add_compile_options(-mfloat-abi=soft)
# ============================== 编译选项 ============================== #
# 指定 CPU 架构(这里是 Cortex-M4)
add_compile_options(-mcpu=cortex-m4 -mthumb -mthumb-interwork)
# 优化代码以减少代码大小,提高性能
add_compile_options(-ffunction-sections -fdata-sections -fno-common -fmessage-length=0)
# 解决 C++17 中的绝对地址警告
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-register")
# 允许汇编文件预处理
add_compile_options($<$<COMPILE_LANGUAGE:ASM>:-x$<SEMICOLON>assembler-with-cpp>)
# ============================== 编译优化等级 ============================== #
# 根据不同的构建类型(Release/Debug)设置优化等级
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
message(STATUS "Maximum optimization for speed")
add_compile_options(-Ofast)
elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo")
message(STATUS "Maximum optimization for speed, debug info included")
add_compile_options(-Ofast -g)
elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "MinSizeRel")
message(STATUS "Maximum optimization for size")
add_compile_options(-Os)
else ()
message(STATUS "Minimal optimization, debug info included")
add_compile_options(-Og -g)
endif ()
# ============================== 头文件路径 ============================== #
# 指定项目所需的头文件目录
include_directories(
Core/Inc
Drivers/STM32F4xx_HAL_Driver/Inc
Drivers/STM32F4xx_HAL_Driver/Inc/Legacy
Drivers/CMSIS/Device/ST/STM32F4xx/Include
Drivers/CMSIS/Include
)
# ============================== 预定义宏 ============================== #
# 这些宏定义通常由 HAL 库需要
add_definitions(-DDEBUG -DUSE_HAL_DRIVER -DSTM32F407xx)
# ============================== 源文件路径 ============================== #
# 递归查找并包含 `Library`、`Core` 和 `Drivers` 目录下的所有源文件
file(GLOB_RECURSE SOURCES "Library/*.*" "Core/*.*" "Drivers/*.*")
# ============================== 链接器脚本 ============================== #
# 指定链接脚本文件(用于控制 STM32F407ZGTX 的内存映射)
set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/STM32F407ZGTX_FLASH.ld)
# ============================== 链接选项 ============================== #
# 启用垃圾回收(移除未使用的代码),输出内存使用情况,并生成 `.map` 文件
add_link_options(-Wl,-gc-sections,--print-memory-usage,-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map)
# 指定 CPU 架构(与编译器选项一致)
add_link_options(-mcpu=cortex-m4 -mthumb -mthumb-interwork)
# 指定使用的链接脚本
add_link_options(-T ${LINKER_SCRIPT})
# ============================== 生成可执行文件 ============================== #
# 生成可执行文件(.elf 文件),包含所有源文件和链接脚本
add_executable(${PROJECT_NAME}.elf ${SOURCES} ${LINKER_SCRIPT})
# ============================== 生成 HEX 和 BIN 文件 ============================== #
# 生成的 HEX 和 BIN 文件的存储路径
set(HEX_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex)
set(BIN_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.bin)
# ============================== 浮点支持选项 ============================== #
# 启用 `nano.specs` 以节省 Flash,并支持 printf/scanf 浮点输出
set(COMMON_FLAGS "-specs=nosys.specs -specs=nano.specs -u _printf_float -u _scanf_float")
# 添加链接选项以节省 Flash
add_link_options(-specs=nano.specs)
# 设置链接器标志,启用 nano.specs
#set(CMAKE_EXE_LINKER_FLAGS "-specs=nano.specs -specs=nosys.specs")
# 使用标准 C 库
set(CMAKE_C_STANDARD_LIBRARIES "-lc")
# ============================== 生成 HEX 和 BIN 文件 ============================== #
# 在 ELF 文件构建完成后,自动转换为 HEX 和 BIN 文件
add_custom_command(TARGET ${PROJECT_NAME}.elf POST_BUILD
COMMAND ${CMAKE_OBJCOPY} -Oihex $<TARGET_FILE:${PROJECT_NAME}.elf> ${HEX_FILE}
COMMAND ${CMAKE_OBJCOPY} -Obinary $<TARGET_FILE:${PROJECT_NAME}.elf> ${BIN_FILE}
COMMENT "Building ${HEX_FILE}
Building ${BIN_FILE}")
还有stlink下载的cfg文件(他们官方有挺多的),DAPlink的忘记放哪儿了
# SPDX-License-Identifier: GPL-2.0-or-later
# This is an STM32F4 discovery board with a single STM32F407VGT6 chip.
# http://www.st.com/internet/evalboard/product/252419.jsp
source [find interface/stlink.cfg]
transport select hla_swd
# increase working area to 64KB
set WORKAREASIZE 0x10000
source [find target/stm32f4x.cfg]
reset_config none
STM32-Keil工程

理论上可以做到和CUBEIDE工程一致,但是up还没搞明白idea官方写的适配的cmake
# 此文件从模板自动生成! 请勿更改!
# 该文件用于配置 STM32 工程的 CMake 构建系统
# 指定目标系统类型(嵌入式裸机系统)
set(CMAKE_SYSTEM_NAME Generic)
# 系统版本(仅标识用途)
set(CMAKE_SYSTEM_VERSION 1)
# 要求的最低 CMake 版本
cmake_minimum_required(VERSION 3.25)
# ==============================
# 交叉编译工具链配置
# ==============================
# 指定 C 编译器
set(CMAKE_C_COMPILER arm-none-eabi-gcc)
# 指定 C++ 编译器
set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
# 指定汇编编译器
set(CMAKE_ASM_COMPILER arm-none-eabi-gcc)
# 静态库归档工具
set(CMAKE_AR arm-none-eabi-ar)
# ELF 转 HEX/BIN 工具
set(CMAKE_OBJCOPY arm-none-eabi-objcopy)
# ELF 反汇编工具
set(CMAKE_OBJDUMP arm-none-eabi-objdump)
# 查看程序大小工具
set(SIZE arm-none-eabi-size)
# 防止 CMake 在配置阶段尝试运行目标程序
# 因为嵌入式程序无法在主机运行
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
# ==============================
# 工程基本信息
# ==============================
# 定义工程名称和支持语言
project(H5_RTOS_Demo C CXX ASM)
# C++ 标准
set(CMAKE_CXX_STANDARD 17)
# C 标准
set(CMAKE_C_STANDARD 11)
# ==============================
# 浮点运算配置
# ==============================
# 如果 MCU 使用硬件浮点单元,可以启用下面配置
add_compile_definitions(ARM_MATH_CM4;ARM_MATH_MATRIX_CHECK;ARM_MATH_ROUNDING)
add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
# 如果使用软件浮点运算
#add_compile_options(-mfloat-abi=soft)
# ==============================
# 处理器架构配置
# ==============================
# 指定 CPU 架构
add_compile_options(
-mcpu=cortex-m4
-mthumb
-mthumb-interwork
)
add_compile_options(
-ffunction-sections
-fdata-sections -fno-common
-fmessage-length=0
)
# 如果 C++17 出现绝对地址警告可以启用
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-register")
# ==============================
# 允许 ASM 文件使用 C 预处理
# ==============================
add_compile_options($<$<COMPILE_LANGUAGE:ASM>:-x$<SEMICOLON>assembler-with-cpp>)
# ==============================
# 编译优化等级配置
# ==============================
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
message(STATUS "Maximum optimization for speed")
add_compile_options(-Ofast)# 最高性能优化
elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo")
message(STATUS "Maximum optimization for speed, debug info included")
add_compile_options(-Ofast -g) # 高优化 + 调试信息
elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "MinSizeRel")
message(STATUS "Maximum optimization for size")
add_compile_options(-Os)# 最小代码体积
else ()
message(STATUS "Minimal optimization, debug info included")
add_compile_options(-Og -g)# 调试模式
endif ()
# ==============================
# 头文件搜索路径
# ==============================
include_directories(
#HAL框架库
Core/Inc
Drivers/STM32H5xx_HAL_Driver/Inc
Drivers/STM32H5xx_HAL_Driver/Inc/Legacy
Drivers/CMSIS/Device/ST/STM32H5xx/Include
Drivers/CMSIS/Include
#FreeRTOS库
Middlewares/Third_Party/FreeRTOS/Source/include/
Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM33_NTZ/non_secure/
Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/
Middlewares/Third_Party/CMSIS/RTOS2/Include/
Middlewares/ST/ARM/DSP/Inc
#工程内部库
BSP
)
# ==============================
# 宏定义
# ==============================
add_definitions(-DDEBUG -DUSE_HAL_DRIVER -DSTM32H563xx)
# ==============================
# 自动搜索源文件
# ==============================
# 递归搜索 Core / Drivers / Middlewares 所有源码
file(GLOB_RECURSE SOURCES
"Core/*.*"
"Middlewares/*.*"
"Drivers/*.*"
"BSP/*.*"
)
# ==============================
# 链接脚本
# ==============================
# 指定 MCU Flash / RAM 分布
set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/STM32H563RITX_FLASH.ld )
# ==============================
# 链接参数
# ==============================
add_link_options(
-Wl,-gc-sections,# 移除未使用代码
--print-memory-usage,# 输出内存使用情况
-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map# 生成 map 文件
)
# 指定 CPU 架构
add_link_options(
-mcpu=cortex-m4
-mthumb
-mthumb-interwork
)
# 指定链接脚本
add_link_options(-T ${LINKER_SCRIPT})
# ==============================
# 生成 ELF 可执行文件
# ==============================
# ==============================
# 生成 HEX / BIN 文件
# ==============================
set(HEX_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex)
set(BIN_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.bin)
ESP32工程
兼容,但是up没折腾
图形化git代码管理
创建或拉取仓库


登录
正常直接使用地址+令牌登录
或者图形化

push、合并等

代码编辑服务
配置好cmake,就可以有代码补全和函数追踪了
代码补全是自动的,会关联你写的函数以及传参,并给出警告等
函数追踪是鼠标中键,直接跳转。还有函数参数标签。



转存中...(img-8nHyuTVX-1776050294323)]
外链图片转存中...(img-3B8rgFG5-1776050294323)
登录
正常直接使用地址+令牌登录
或者图形化
外链图片转存中...(img-wxYxVNj1-1776050294323)
push、合并等
外链图片转存中...(img-UbZJAlYc-1776050294324)
代码编辑服务
配置好cmake,就可以有代码补全和函数追踪了
代码补全是自动的,会关联你写的函数以及传参,并给出警告等
函数追踪是鼠标中键,直接跳转。还有函数参数标签。
外链图片转存中...(img-ojlUadOY-1776050294324)
外链图片转存中...(img-gOP6x1GR-1776050294324)
外链图片转存中...(img-wNleKEGo-1776050294324)
