> 技术文档 > STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件


背景

最近在使用git进行多人协作的STM32工程开发,在推送和拉取文件时,会因为工程编译文件和个人用户配置文件产生大量冲突,需要手动一个一个解决冲突,很麻烦。

于是疑惑是否有些工程文件可以不用进行同步,以降低冲突量。

用DeepSeek深度思考模式辅助后,向大家分享一下我的所获。

正文

以下是各个文件后缀及其在STM32-Keil uVision5工程中的作用说明:


1. 工程配置与用户文件

(1) .uvprojx
  • 图片示例

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • 作用
    Keil MDK 的 主工程文件,包含项目结构、源文件列表、编译选项、目标设备型号等信息。

  • 重要性:必须保留,丢失后需重新创建工程。

(2) .uvoptx
  • 图片示例

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • 作用
    存储 用户个性化设置,如调试器配置、断点位置、窗口布局等。

  • 重要性:非关键文件,但删除后用户设置会丢失。

(3) .uvguix.ayou
  • 图片示例

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • 作用
    记录 用户界面状态(如项目树展开/折叠状态、最近打开的文件),后缀 ayou 是当前用户的缩写。

  • 重要性:用户本地文件,无需提交到版本控制。

(4) .scvd
  • 图片示例

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • 作用
    EventRecorder 的配置文件,用于代码执行时的实时事件记录与分析(如RTOS任务调度)。

  • 典型工具:Keil 的 Event Recorder 组件。


2. 核心库与启动文件

(1) .c.h
  • 图片示例

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • 作用

    • .c:C 语言源文件(如 core_cm3.c 提供 Cortex-M3 内核函数)。
    • .h:头文件(如 stm32f10x.h 定义寄存器地址和外设宏)。
(2) .s
  • 图片示例

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • 作用
    汇编启动文件(如 startup_stm32f10x_hd.s),定义中断向量表、栈初始化、复位处理流程。

  • 后缀含义

    • hd:高容量型号(如 STM32F103ZE)。
    • md:中等容量型号(如 STM32F103C8)。
(3) misc.c/misc.h
  • 图片示例

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • 作用
    提供 杂项功能(如 NVIC 中断优先级配置、系统时钟初始化辅助函数)。


3. 编译与链接生成文件

(1) .lst
  • 图片示例

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • 作用
    列表文件,由编译器生成,包含源代码与汇编指令的对应关系,用于调试或优化分析。

  • 示例startup_stm32f10x_hd.lst 显示启动代码的汇编细节。

(2) .map
  • 图片示例

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • 作用
    内存映射文件,由链接器生成,展示全局变量、函数的内存地址分配及 Flash/RAM 占用统计。

  • 用途:分析内存溢出或优化代码体积。

(3) .o
  • 图片示例

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • 作用
    目标文件,由编译器将 .c 文件编译生成,包含机器码和符号表,供链接器合并为最终固件。

(4) .d
  • 图片示例

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • 作用
    依赖文件,记录源文件的头文件依赖关系,用于增量编译时判断是否需要重新编译。

(5) .crf
  • 图片示例
  • ![[Pasted image 20250517135317.png]]
  • 作用
    交叉引用文件,由编译器生成,用于代码导航(如查找符号定义位置),通常与 IDE 集成。

4. 调试与目标配置

(1) .dbgconf
  • 图片示例

  • STM32-Keil uVision5工程各个文件后缀的作用说明_scvd文件

  • 作用
    调试配置文件,存储调试器设置(如目标芯片型号、接口类型、断点配置等)。

  • 示例Target_1_STM32F103RC_1.0.0.dbgconf 对应 STM32F103RC 的调试参数。


总结

文件类型 典型文件 作用 是否需版本控制 工程配置 .uvprojx, .uvoptx 定义工程结构与用户设置 ✅ 用户界面状态 .uvguix.* 记录窗口布局和文件状态 ❌ 核心库与启动文件 .c, .h, .s 提供内核支持与启动代码 ✅ 编译与链接文件 .o, .d, .map, .lst 生成机器码、记录依赖和内存布局 ❌ 调试配置 .dbgconf 调试器参数设置 按需提交

通过合理管理这些文件,可确保STM32工程的编译、调试和维护效率。


最后

如果觉得有用,麻烦动动小手,给个小赞,十分感谢!