公开
版本 1.0
HC32L072 .clangd文件
描述
基本上解决了所有工程目录内的的报错
提示词内容
###############################################################################
# Clangd 诊断抑制配置
# 作用:直接控制 clangd 静态分析行为(与编译器无关)
###############################################################################
Diagnostics:
Suppress:
# === 跨平台兼容性抑制 ===
- unknown_typename # 抑制 ARMCC 专有语法(如 __value_in_regs)的类型名错误
- nonportable-include-path # 抑制头文件大小写警告(Windows 路径不敏感)
- incompatible_sysroot # 抑制ARMCC专用sysroot警告
- invalid_asm_operand_code # 抑制ARM汇编指令校验错误
- expected_semi_after_top_level_declarator # 抑制顶层声明后缺少分号警告
# === 嵌入式开发专用抑制 ===
- int-to-pointer-cast # 允许整型转指针(常见于寄存器地址操作)
- pointer-to-int-cast # 允许指针转整型(内存地址计算场景)
# === 工程结构抑制 ===
- unused-includes # 抑制未使用头文件警告(兼容多层级头文件包含)
- pp_including_mainfile_in_preamble # 忽略主文件被包含的警告
- pp_hash_error # 抑制因无法识别编译器(如 ARMCC)导致的预处理错误
- invalid_token_after_toplevel_declarator # 抑制顶层声明符后出现无效标记的错误(兼容 ARMCC 特性)
###############################################################################
# Clangd 编译参数配置
# 作用:模拟编译器行为,影响代码解析逻辑
###############################################################################
CompileFlags:
Add:
# === 包含路径配置 ===
- "-ID:/keil_v5/ARM/ARMCC/include" # 添加 Keil 的 include 路径
# === 错误限制配置 ===
- "-ferror-limit=0" # 禁用错误限制
# === 警告抑制配置 ===
# - "-Wno-int-to-pointer-cast" # 抑制整型转指针警告
- "-Wno-macro-redefined" # 抑制宏重定义警告
# - "-Wno-pointer-to-int-cast" # 抑制“Cast to smaller integer type”警告
# === 强制包含配置 ===
- "-include" # 强制在所有文件前包含 FreeRTOS.h
- "FreeRTOS.h"
Remove:
# === 优化控制配置 ===
- "-fno-tree-switch-conversion" # 禁用 switch 语句转换为树形结构优化
- "-fno-shrink-wrap" # 禁用 shrink-wrap 优化(不启用局部 prologue/epilogue 放置)
- "-mlongcalls" # 禁用生成长调用序列(使用短调用)
# === 内存布局与变量优化配置 ===
- "-mtext-section-literals" # 禁用将字面量存放在独立文本节中
- "-fstrict-volatile-bitfields" # 严格处理 volatile 位字段,防止意外优化
# === 目标架构配置 ===
- "-mdisable-hardware-atomics" # 禁用硬件原子操作支持
- "-march=rv32imac_zicsr_zifencei" # 指定目标架构及扩展(RV32IMAC、zicsr、zifencei)
# === ARMC 标准与接口配置(clangd不支持这里的参数,所以要删除) ===
- "--cpu=Cortex-M0+" # 针对 ARMCC,指定目标 CPU 为 Cortex-M0+
- "--c99" # 针对 ARMCC,启用 C99 标准支持
- "--split_sections" # 针对 ARMCC,启用分割 sections 优化
- "--apcs=interwork" # 针对 ARMCC,启用交叉调用接口模式
- "--diag_suppress=66,550,1296,1299" # 针对 ARMCC,抑制诊断警告编号 66, 550, 1296, 1299