MAP文件说明(Keil)

MAP文件分析

基本概念

段(section)
描述映像文件代码及数据块
RO
只读的数据和代码,包含RO-data和RO-code
RW
可读写的数据,由程序初始化
ZI
零初始化数据,由编译器初始化
.text
即RO-code
.constdata:
即RO-data
.bss:
即ZI
.data
即RW-data

文件构成

调用关系(Section Cross Reference)

冗余函数

默认即可。

局部标签与全局标签

局部标签是指用static修饰的变量或者函数。
第一列是函数名,前缀i.表示隶属于当前文件,出现无前缀的标签代表static标签。
第二列为地址,也是程序按照下载地址下载后,需要加载到内存的地址,此处可发现,flexspi的相关函数是在片内内存(RT1052片内RAM从0x00000000开始)中执行。
第三列信息中,Number可以忽略。
第四列信息中,大小为0且有前缀说明此标签为全局标签。在这里插入图片描述

映像文件内存映射

加载地址即下载地址,是镜像存放的位置。
执行地址即CPU寻找代码的位置。
下图所示flexspi的相关的函数是被复制到内存中,让CPU进行调用的。
在这里插入图片描述
下图所示函数为就地执行的函数。
在这里插入图片描述

映像文件组件大小

这里的组件指的是单个源文件。

扩展

  1. _main的相关信息

在函数交叉引用时,可以发现entry文件所引用的函数,由函数名称可推断这些函数是被启动文件中的_main函数调用,可以发现sct的相关操作
_main_clock
_main_cpp_init
_main_init
_main_scatterload
_main_stk
在这里插入图片描述
entry4文件引用了_main函数
entry4文件引用了_scatterload函数
ini文件引用了_mian_after_scatterload函数
在这里插入图片描述

  1. scatter文件相关信息

分析镜像文件时,可以发现与sct文件相关的操作函数
__scatterload_copy
__scatterload_null
__scatterload_zeroinit
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡姆图拉夫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值