STM32-Keil uVision5工程各个文件后缀的作用说明
STM32-Keil uVision5工程中各个文件后缀的作用说明,包括 .uvprojx .uvoptx .uvguix.ayou .scvd .s .lst .map .o .d .crf .dbgconf 等
背景
最近在使用git进行多人协作的STM32工程开发,在推送和拉取文件时,会因为工程编译文件和个人用户配置文件产生大量冲突,需要手动一个一个解决冲突,很麻烦。
于是疑惑是否有些工程文件可以不用进行同步,以降低冲突量。
用DeepSeek深度思考模式辅助后,向大家分享一下我的所获。
正文
以下是各个文件后缀及其在STM32-Keil uVision5工程中的作用说明:
1. 工程配置与用户文件
(1) .uvprojx
-
图片示例:
-
![![[Pasted image 20250517125612.png]]](https://i-blog.csdnimg.cn/direct/0abfb62c2e7a43d9b895b764a99be0c7.png)
-
作用:
Keil MDK 的 主工程文件,包含项目结构、源文件列表、编译选项、目标设备型号等信息。 -
重要性:必须保留,丢失后需重新创建工程。
(2) .uvoptx
-
图片示例:
-
![![[Pasted image 20250517125932.png]]](https://i-blog.csdnimg.cn/direct/cc68cf3c245644c48725e3fb1f77c1c3.png)
-
作用:
存储 用户个性化设置,如调试器配置、断点位置、窗口布局等。 -
重要性:非关键文件,但删除后用户设置会丢失。
(3) .uvguix.ayou
-
图片示例:
-
![![[Pasted image 20250517130121.png]]](https://i-blog.csdnimg.cn/direct/1a9b2c944879457781e6418b77b4bef0.png)
-
作用:
记录 用户界面状态(如项目树展开/折叠状态、最近打开的文件),后缀ayou是当前用户的缩写。 -
重要性:用户本地文件,无需提交到版本控制。
(4) .scvd
-
图片示例:
-
![![[Pasted image 20250517130233.png]]](https://i-blog.csdnimg.cn/direct/30544096274a4d87934436933d39f2df.png)
-
作用:
EventRecorder 的配置文件,用于代码执行时的实时事件记录与分析(如RTOS任务调度)。 -
典型工具:Keil 的 Event Recorder 组件。
2. 核心库与启动文件
(1) .c 和 .h
-
图片示例:
-
![![[Pasted image 20250517130309.png]]](https://i-blog.csdnimg.cn/direct/ad8a5395f4444815a6cef2580d92c802.png)
-
![![[Pasted image 20250517130333.png]]](https://i-blog.csdnimg.cn/direct/b2fa83ce111e4927b798e5d3a97462e4.png)
-
作用:
.c:C 语言源文件(如core_cm3.c提供 Cortex-M3 内核函数)。.h:头文件(如stm32f10x.h定义寄存器地址和外设宏)。
(2) .s
-
图片示例:
-
![![[Pasted image 20250517133259.png]]](https://i-blog.csdnimg.cn/direct/22abe6373960483b87326b32471051c5.png)
-
作用:
汇编启动文件(如startup_stm32f10x_hd.s),定义中断向量表、栈初始化、复位处理流程。 -
后缀含义:
hd:高容量型号(如 STM32F103ZE)。md:中等容量型号(如 STM32F103C8)。
(3) misc.c/misc.h
-
图片示例:
-
![![[Pasted image 20250517133732.png]]](https://i-blog.csdnimg.cn/direct/b9410dacbe734633bd1e583a7b065a96.png)
-
![![[Pasted image 20250517133810.png]]](https://i-blog.csdnimg.cn/direct/80f25a34db0c4f5ab53ab800f2442c21.png)
-
作用:
提供 杂项功能(如 NVIC 中断优先级配置、系统时钟初始化辅助函数)。
3. 编译与链接生成文件
(1) .lst
-
图片示例:
-
![![[Pasted image 20250517134849.png]]](https://i-blog.csdnimg.cn/direct/64a6ff8432324e6a82dae86e38b8adee.png)
-
作用:
列表文件,由编译器生成,包含源代码与汇编指令的对应关系,用于调试或优化分析。 -
示例:
startup_stm32f10x_hd.lst显示启动代码的汇编细节。
(2) .map
-
图片示例:
-
![![[Pasted image 20250517134952.png]]](https://i-blog.csdnimg.cn/direct/0a519997dd1241d3a2fd0425f71b270f.png)
-
作用:
内存映射文件,由链接器生成,展示全局变量、函数的内存地址分配及 Flash/RAM 占用统计。 -
用途:分析内存溢出或优化代码体积。
(3) .o
-
图片示例:
-
![![[Pasted image 20250517135058.png]]](https://i-blog.csdnimg.cn/direct/38a9d8fe2f3e473a9b4f79adcc23880a.png)
-
作用:
目标文件,由编译器将.c文件编译生成,包含机器码和符号表,供链接器合并为最终固件。
(4) .d
-
图片示例:
-
![![[Pasted image 20250517135141.png]]](https://i-blog.csdnimg.cn/direct/a40c07cae6274dd2ba51874fcc8108ee.png)
-
作用:
依赖文件,记录源文件的头文件依赖关系,用于增量编译时判断是否需要重新编译。
(5) .crf
- 图片示例:
- ![[Pasted image 20250517135317.png]]
- 作用:
交叉引用文件,由编译器生成,用于代码导航(如查找符号定义位置),通常与 IDE 集成。
4. 调试与目标配置
(1) .dbgconf
-
图片示例:
-
![![[Pasted image 20250517140049.png]]](https://i-blog.csdnimg.cn/direct/33197d5ab95343538fdb36aa40868820.png)
-
作用:
调试配置文件,存储调试器设置(如目标芯片型号、接口类型、断点配置等)。 -
示例:
Target_1_STM32F103RC_1.0.0.dbgconf对应 STM32F103RC 的调试参数。
总结
| 文件类型 | 典型文件 | 作用 | 是否需版本控制 |
|---|---|---|---|
| 工程配置 | .uvprojx, .uvoptx |
定义工程结构与用户设置 | ✅ |
| 用户界面状态 | .uvguix.* |
记录窗口布局和文件状态 | ❌ |
| 核心库与启动文件 | .c, .h, .s |
提供内核支持与启动代码 | ✅ |
| 编译与链接文件 | .o, .d, .map, .lst |
生成机器码、记录依赖和内存布局 | ❌ |
| 调试配置 | .dbgconf |
调试器参数设置 | 按需提交 |
通过合理管理这些文件,可确保STM32工程的编译、调试和维护效率。
最后
如果觉得有用,麻烦动动小手,给个小赞,十分感谢!
更多推荐



所有评论(0)