打印
[应用相关]

MDK 的编译过程及文件类型全解(2)

[复制链接]
766|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
redone|  楼主 | 2021-10-13 13:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 redone 于 2021-10-13 13:41 编辑

具体工程中的编译过程

下面我们打开 “流水灯”的工程,以它为例进行讲解,其它工程的编译过程也是一样的,只是文件有差异。打开工程后,点击MDK 的“rebuild”按钮,它会重新构建整个工程,构建的过程会在MDK 下方的“Build Output”窗口输出提示信息



构建工程的提示输出主要分6 个部分,说明如下:
(1) 提示信息的第一部分说明构建过程调用的编译器。图中的编译器名字是“V5.06(build20)”,后面附带了该编译器所在的文件夹。在电脑上打开该路径,可看到该编译器包含图 41-3 中的各个编译工具,如armar、armasm、armcc、armlink 及fromelf,后面四个工具已在图 41-1 中已讲解,而armar 是用于把.o 文件打包成lib 文件的。


(2) 使用armasm编译汇编文件。图中列出了编译startup 启动文件时的提示,编译后每个汇编源文件都对应有一个独立的.o 文件。

(3) 使用armcc 编译c/c++文件。图中列出了工程中所有的c/c++文件的提示,同样地,编译后每个c/c++源文件都对应有一个独立的.o 文件。
(4) 使用armlink 链接对象文件,根据程序的调用把各个.o 文件的内容链接起来,最后生成程序的axf 映像文件,并附带程序各个域大小的说明,包括Code、RO-data、RW-data及ZI-data 的大小。
(5) 使用fromelf 生成下载格式文件,它根据axf 映像文件转化成hex 文件,并列出编译过程出现的错误(Error)和警告(Warning)数量。
(6) 最后一段提示给出了整个构建过程消耗的时间。

构建完成后,可在工程的“Output”及“Listing”目录下找到由以上过程生成的各种文件


可以看到,每个C 源文件都对应生成了.o、.d 及.crf 后缀的文件,还有一些额外的.dep、.hex、.axf、.htm、.lnp、.sct、.lst 及.map 文件



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

132

主题

742

帖子

5

粉丝