MDK的编译过程及文件类型全解(第4节)- 杂项文件.pptx
MDK,全称Keil μVision Development Kit,是一款广泛使用的嵌入式系统开发工具,尤其在STM32等微控制器的开发中应用颇广。本节主要探讨的是MDK的编译过程及其涉及的文件类型。 让我们了解MDK的编译过程。编译过程大致分为以下几个步骤: 1. 预处理:这个阶段处理源文件中的宏定义、条件编译指令,以及包含头文件等。预处理器将.c或.cpp文件转换成.i文件,对于.s或.inc文件则不进行预处理。 2. 编译:编译器将预处理后的文件转化为汇编语言(.s)。编译器检查语法,优化代码,并生成中间文件(.o或.obj)。 3. 汇编:汇编器将汇编语言转换成机器码,生成可重定位的目标文件(.o)。 4. 链接:链接器将多个目标文件合并,处理外部符号引用,解决内存分配,并生成最终的可执行文件。同时,链接器还会生成.map文件,描述内存映射和符号信息。 5. 生成目标文件:最终生成的文件通常有多种格式,如.lib库文件、.bin二进制文件、.hexIntel Hex格式文件、.elf或.axf可执行对象文件等,它们各有用途,如.bin和.hex文件用于烧录到微控制器的闪存中,.elf和.axf文件用于调试。 MDK工程中包含的文件类型多样,具体如下: 1. *.uvguix和*.UVGUI:这些文件存储了MDK5的窗口布局设置,类似地,*.uvprojx和*.UVPROJ是工程文件,它们以XML格式记录工程结构和配置。 2. *.uvoptx:这个文件存储了工程的配置选项,如调试器设置、变量跟踪、断点和打开的文件等。 3. *.ini:某些下载器的配置文件。 4. 源文件:*.c、*.cpp是C/C++源文件,*.h是头文件,*.s是汇编源文件,*.inc是汇编头文件。 5. 输出目录下的文件:*.lib是库文件,*.dep记录依赖关系,*.d描述源文件依赖,*.crf包含浏览信息,*.o是可重定位对象文件,*.bin和*.hex是不同格式的映像文件,*.elf和*.axf是可执行对象文件,*.sct是链接器控制文件,*.scr是分散加载文件,*.lnp是链接输入文件,*.htm是静态调用图和构建日志。 6. Listing目录下的文件:*.lst是编译器生成的列表文件,提供源码和汇编代码的对照,*.map是链接器生成的内存映射文件。 在实际开发过程中,uvprojx文件是至关重要的,因为它包含了整个工程的结构信息。uvoptx和uvguix虽然不是必需的,但它们保存了用户界面布局和配置,丢失后可以由默认值重建。源代码文件是开发者的主要工作内容,而Output目录下的文件则是编译过程的产物,用于构建、调试和部署。 通过理解这些文件类型及其作用,开发者可以更好地管理和维护MDK工程,提高开发效率。在进行版本控制时,通常只将uvprojx和源代码文件纳入,以保持工程的完整性和可重复性。
剩余18页未读,继续阅读
- 粉丝: 1671
- 资源: 598
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助