MDK使用的工具链

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信息等

猜你喜欢

转载自www.cnblogs.com/miwang-fengqing/p/12126350.html
今日推荐