关于_map文件的全面解析
引用链接:https://www.strongerhuang.com/Keil/Keil系列教程12_map文件全面解析.html
这篇文章介绍的比较全面,摘录部分我认为比较重要的如下:
什么是map文件?
简单的说:map文件是通过编译器编译之后,集程序、数据及IO空间的一种映射文件。
很多技术牛逼的工程师在遇到内存越界,或溢出的情况,首先想到的就是分析map文件。通过map文件可以知道函数大小,入口地址等一些重要信息。
我们在Keil中最常见的就是在编译之后,编译窗口会显示类似如下一段关于程序和数据大小的信息:
Program Size: Code=1112 RO-data=320 RW-data=0 ZI-data=1632
这一段提示信息其实是汇总了程序和数据的信息,这些信息其实是单个模块汇总而成,在map文件里有详细列表。
keil 主要包含配置:
Memory Map:内存映射
Callgraph:图像映射
Symbols:符号
Cross Reference:交叉引用
Size Info:大小信息
Totals Info:统计信息
Unused Section Info:未调用模块信息
Veneers Info:装饰信息
2.3 map文件内容分类
从上面输出配置可以看得出来map文件大概包含了哪些信息。map文件将其分为如下五大类:
1.Section Cross References:模块、段(入口)交叉引用
2.Removing Unused input sections from the image:移除未调用模块
3.Image Symbol Table:映射符号表
4.Memory Map of the image:内存(映射)分布
5.Image component sizes:存储组成大小
我们编译工程后,在编译窗口一般会看到类似如下一段信息:
Program Size: Code=1112 RO-data=320 RW-data=0 ZI-data=1632
Code:指代码的大小;
Ro-data:指除了内联数据(inline data)之外的常量数据;
RW-data:指可读写(RW)、已初始化的变量数据;
ZI-data:指未初始化(ZI)的变量数据;
提醒:
A.Code、Ro-data:位于FLASH中;
B.RW-data、ZI-data:位于RAM中;
C.RW-data已初始化的数据会存储在Flash中,上电会从FLASH搬移至RAM。
关系如下:
RO Size = Code + RO Data
RW Size = RW Data + ZI Data
ROM Size = Code + RO Data + RW Data
关于_map文件的全面解析相关推荐
- python中的doc_基于Python获取docx/doc文件内容代码解析
这篇文章主要介绍了基于Python获取docx/doc文件内容代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 整体思路: 下载文件并修改后缀 ...
- 利用js-xlsx.js插件实现Excel文件导入并解析Excel数据成json数据格式
<!--本文转载于网络,有太多一样的文章,不知道原作者是哪位了,就不注明出处了.这里记载下来,用于自己的学习借鉴--><!DOCTYPE html><html lang= ...
- android启动---lk入口文件crt0.s解析
android启动---lk入口文件crt0.s解析 // .section 伪操作, 用户可以通过.section 伪操作来自定义一个段,每一个段以段名为开始, //以下一个段名或者文件结尾为结束, ...
- Android数据存储——2.文件存储_C_DOM解析XML文档
今天学习Android数据存储--文件存储_DOM解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效 ...
- 对xml文件的sax解析(增删改查)之一
crud(增删改查): c:creat r:retrieve u:update d:delete 以下笔记来自于韩顺平老师的讲解. 现在是用java来操作. 第一步:新建java工程.file-new ...
- nginx 上传文件漏洞_nginx解析漏洞复现
nginx解析漏洞复现 一.漏洞描述 该漏洞与nginx.php版本无关,属于用户配置不当造成的解析漏洞 二.漏洞原理 1. 由于nginx.conf的如下配置导致nginx把以'.php'结尾的文件 ...
- 分析FLV文件分析和解析器的开源代码
分析一下GitHub上一份FLV文件分析和解析器的开源代码 GitHub源码地址:功能强大的 FLV 文件分析和解析器 :可以将flv文件的视频tag中的h264类型数据和音频tag中的aac类型数据 ...
- pymavlink 源码剖析(一)之XML文件的数据解析
文章目录 1 引言 2 pymavlink 的代码自动生成方法 3 XML 文件的数据解析 3.1 XML 文件预处理 3.2 解析 XML 的数据 3.2.1 依据协议版本初始化一些版本特征变量 3 ...
- 使用Java泛型和反射机制编写Excel文件生成和解析的通用工具类
前几天被派到一个小项目中做临时维护,工作地点不方便且不说,项目代码那叫一个恶心... 代码几乎完全没有注释.这应该是我们天朝大部分程序员的习惯,代码不写注释,给后面维护的同事带来多大麻烦啊! 几百行的 ...
最新文章
- oracle 实现HA,oracle RAC的客户端HA配置
- 03_属性别名映射的配置
- openresty测试lua脚本配置示例
- docker概念很乱?俺来替你理一下!
- c#读取string类型的xml格式的字符串
- 2020年首届算法竞赛网络挑战赛直播讲解课程
- P3806-【模板】点分治1
- 【计算机组成原理】指令执行过程
- ECCV 2020 论文大盘点-实例分割篇
- element中根据条件判断按钮是否禁用_从零动手封装一个通用的vue按钮组件
- 【转贴】蚂蚁和大象的恩怨
- 20190216-Java 教程(菜鸟教程)
- 营业执照在线生成_潍坊发出全省首张覆盖四大市场主体类型的“微信秒批”营业执照...
- myeclipse 10破解方法
- WINCE 矩阵键盘 介绍
- Redis trouble21 -- aof持久化导致redis命令阻塞
- Jzoj5444【NOIP2017提高A组冲刺11.2】救赎
- 帮助中国IT企业吃掉更多不会跳舞的大象
- 浏览器预检请求返回400 has been blocked by CORS policy: Response to preflight request doesn’t pass access cont
- 【如何快速的开发一个简单的iOS直播app】(代码篇)