谷动谷力

标题: Keil 项目/生成的各种文件类型(.AXF、.D、.crf、.exf)说明 [打印本页]

作者: sunsili    时间: 2023-1-3 22:27
标题: Keil 项目/生成的各种文件类型(.AXF、.D、.crf、.exf)说明
本帖最后由 sunsili 于 2023-1-3 22:46 编辑

Keil 项目/生成的各种文件类型(.AXF、.D、.crf、.exf)说明

Keil 是 ARM 推出(收购)的针对 Cortex-M 系列等低功耗芯片芯片的集成开发环境的品牌名称。目前 Keil 的最新版本为 μVision5。旧版本的 Keil 目前使用的已经非常少了,当前使用主要以 μVision4 和 μVision5 这两个版本为主。在使用 Keil 时,Keil 构建项目时会产生很多扩展名的文件,了解各文件的作用对于深入研究编译有很大帮助(主要是各种编译输出文件)。例如,.map文件就是个非常有必要在项目开发阶段实时查看,并且深入研究的文档。同样,其他文件将是深入研究时有效的参考。??随着 Keil 的升级,各种文件在不同版本可能有区别。部分文件在高版本中已经弃用,或者被新的文件代替。具体见下文的说明。适用范围包括 Keil 全部产品:MDK-ARM、C51、C166、C251。
严格来说,以下部分文件不应该算是 Keil 的文件,因为他们是由编译器产生的,而 Keil 就是个 IDE,ARM 公司除了提供了各种方便的 IDE 之外,还提供独立版的编译套件,可以方便的在命令行中使用。

Project Files

项目文件主要是通过 Keil 创建项目(工程)时生成的各种文件,这些文件记录项目(工程)的各种信息。在使用 Keil 打开项目时,Keil 会使用这些文件。
具体见下图:

Source Files

源码文件应该没啥可说的。表示了Keil 所支持的源码文件类型(支持代码高亮、错误提示等)。
Listing Files

这部分主要是一些由编译器和连接器输出的中间文件,对于研究编译过程非常有帮助。
Keil 中可以通过如下配置,来输出其中的某些文件


用户在选择了这些条目之后,其实就是在命令行工具中增加对应的参数。例如连接器参数

Object and HEX Files

这部分主要是编译器输出(连接器输出)的各种编译后的文件,包括可执行文件、库文件、对象文件等。
关于该部分的.ELF、.AXF、.HEX、文件,详细可见博文 ELF文件、镜像(Image)文件、可执行文件、对象文件 详解

Build Files

Debugger Files
调试文件没啥可说的。
// 在线调试时使用
LOAD %L INCREMENTAL

// 在使用Keil的Trace功能时使用
///*-------------------------------------------------------------------
//** Define the function to enable the trace port
//**-----------------------------------------------------------------*/
//FUNC void EnableTPIU(void) {

// _WDWORD(0xE0042004, 0x000000E0);   // Set 4-pin tracing via DBGMCU_CR
//}

///*-------------------------------------------------------------------
//** Invoke the function at debugger startup
//**-----------------------------------------------------------------*/
//EnableTPIU();
12345678910111213141516Other Files

在部分文件有的是编译器输出,有的是Keil输出的。
LR_IROM1 0x08003000 0x00005000 {   ; load region size_region
ER_IROM1 0x08003000 0x00005000 { ; load address = execution address
  *.o (RESET, +First); 中断向量表
}

ER_IROM2 + 0 {; 应用程序信息
  *.o (SECTION_APP_INFO, +First)
}

ER_IROM3 + 0 {; 初始化相关代码+其他代码
  *(InRoot$$Sections); 初始化相关
  .ANY (+RO); 其他所有代码
}

RW_IRAM1 0x20000000 0x00001800 { ; 内存
  *.o (SECTION_APP_VECTOR, +First)/* APP的中断向量表 */
  .ANY (+RW +ZI)
}
}
12345678910111213141516171819参考文档

http://www.keil.com/support/man/docs/uv4/uv4_b_filetypes.htm





欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2