MDK使用armcc armasm armlink生成.axf 或.elf
格式转换:fromelf.exe
CODE:代码区, 保存在ROM
RO: 只读数据区 保存在ROM 程序不能修改其内容
RW: 指初始化为非0的数据,运行的时候常驻RAM区 C中的全局变量初始化为非0
ZI DATA:初始化为0的读写数据区 运行时常驻RAM区,初始化为0或者未进行初始化的默认为0
ZI DATA:的栈空间(stack)及堆空间(heap) 函数内定义的属于栈空间 使用malloc进行动态分配的属于堆空间,程序运行中的栈空间和堆空间都属于ZI DATA,这些空间都会被初始化为0,编译器给出的ZI DATA包含堆栈的大小;
程序的存储和运行:
应用程序的静止态和运行态
Armcc
Armasm
Armlink:
Armar:用于将程序打包成库
Fromelf:可根据axf 生成hex 和bin 文件 使用mdk时可以在user中添加
MDK工程文件:
.dep和.d文件记录工程或者其他文件的依赖,主要记录了用于引用的头文件路径
.dep 记录整个工程的依赖
.d 记录单个源文件的依赖
.crf 交叉引用文件,主要包含浏览信息 即源代码中的宏定义,变量,以及函数的定义和声明的位置 MDK实现跳转的关键文件
.o .elf .axf .lib 文件属于目标文件 都使用elf格式进行存储
系统软件的复用技术 ELF格式文件(Executable and linkable format) 研究操作系统中二进制级软件的静态,动态组装技术
可执行连接格式:ELF(executable and linking format)与 (UNIX System Laboratories,USL)开发时发布,作为应用程序二进制接口(application binary interface,ABI)的一部分 工具接口标准(Tool interface standards,TIS)委员会还将在发展的ELF标准选中作为一种可移植的目标文件格式
目的: 为软件开发人员提供一组二进制接口定义,这些接口可以延伸至多种操作环境,从而减少重新编码,重新编译程序的需要
接口的内容:
目标模块的格式 可执行文件格式 调试记录信息 与格式等
TIS 给出Portable formats specification 1.1版本中主要针对三种不同的目标文件进行了规定,并且规定了程序加载与动态连接的相关细节过程,给出了ansi C和libc 例程并且提供的符号
主要部分:
BOOK I :executable and linking format,描述ELF目标文件格式
BOOK II:processor specific (intel architecture),描述ELF中与硬件相关的信息
BOOK III:operating system specific ,描述ELF中与操作系统有关的部分 例:system V release 4信息等