[发明专利]一种映射文件的自动分析方法和装置有效
申请号: | 201210192146.1 | 申请日: | 2012-06-11 |
公开(公告)号: | CN103488640B | 公开(公告)日: | 2017-01-25 |
发明(设计)人: | 张宗义;左从兵;张春淮;王海燕 | 申请(专利权)人: | 北汽福田汽车股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙)11201 | 代理人: | 张大威 |
地址: | 102206*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 映射 文件 自动 分析 方法 装置 | ||
技术领域
本发明涉及汽车制造技术领域,特别涉及一种映射文件的自动分析方法和装置。
背景技术
目前,在汽车电子控制领域,由编译链接器自动生成的MAP文件包含有软件各模块的存储器使用状况信息,但是对存储器总体的使用状况却没有统计。软件开发人员难以从整体上把握存储器资源的使用状况。因为汽车软件模块繁多,手工统计存储器总体的使用状况需要耗费大量的人力和时间。
支持嵌入式系统开发的集成开发环境编译链接器在生成可执行程序的同时可以生成MAP文件。编译链接器按照代码性质将组成可执行程序的各模块分成众多程序片断。链接命令文件(Link File)用于将存储器划分成若干不同性质的存储器片断。程序片断被链接器存入对应存储器片断中。MAP文件就是纪录程序片断和存储器片断对应关系的存储器地图,同时支持嵌入式系统开发的微控制器包含寄存器,RAM,EEPROM,FLASH等类型存储器。其中,当FLASH的大小超出微控制器的可寻址空间大小时,通常采用分页机制对FLASH进行寻址。FLASH中采用了分页机制的部分叫做分页FLASH,未采用FLASH的部分叫做固定FLASH。
汽车软件由上层应用程序,底层驱动程序,库程序三部分组成。由这三个部分生成的可执行程序包含上百个程序模块。高档汽车的软件包含的程序模块更多。MAP文件虽然包含了各个模块的存储器使用状况信息,却没有包含存储器的总使用量,总空余量,使用率这些宏观信息。而对于微控制器的选型,存储器大小的选定,程序开发,代码执行效率分析等,存储器使用状况宏观信息是至关重要的。对上百个模块甚至更多的模块进行手工统计人工成本高,花费时间长而且得到的结果准确性难以保证。另外,MAP文件中包含信息繁多,程序开发人员难于快速找出所需程序模块的存储器使用状况信息。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的一个目的在于提出一种速度快、准确率高且可降低人力成本的映射文件的自动分析方法。
本发明的另一目的在于提出一种映射文件的自动分析装置。
为了实现上述目的,本发明第一方面的实施例提出了一种映射文件的自动分析方法,包括以下步骤:A:获取映射文件,其中,所述映射文件包括多个程序模块的文件名、每个程序模块包括的多个程序片段的程序片段名称、程序片段长度值;B:对每个程序模块的文件名进行分析以得到对应的程序模块的程序模块名称;C:分别根据每个程序模块包括的多个程序片段的程序片段名称获取预存所述多个程序片段的多个存储器的存储器类型;D:根据所述多个存储器的存储器类型生成与所述多个存储器类型一一对应的多个哈希表,且分别将每个程序模块中预存在同一类型存储器中的程序片段对应的程序片段长度值和对应的程序模块名称写入相应的哈希表中;E:对每个哈希表中的每个程序模块名称对应的程序片段长度值进行统计,以得到每个程序模块中的程序片段在每种类型存储器中的占用量;以及F:对所述每个程序模块中的程序片段在每种类型存储器中的占用量进行统计,并根据统计结果得到每种类型存储器的使用状况信息。
另外,根据本发明上述实施例的映射文件的自动分析方法还可以具有如下附加的技术特征:
在一些示例中,所述步骤B进一步包括:从所述映射文件中提取多个程序模块的文件名,其中,所述程序模块的文件名包括存储地址、文件名称以及文件扩展名;和分别提取多个程序模块的文件名称作为对应的程序模块的程序模块名称。
在一些示例中,所述步骤C进一步包括:获取存储每个程序模块的所有程序片段的多个存储器信息;根据所述多个存储器信息判断所述多个存储器的每一个存储器的类型。
在一些示例中,所述多个存储器类型包括RAM存储器类型、固定FLASH存储器类型和分页FLASH存储器类型。
在一些示例中,所述多个哈希表包括分别与所述RAM存储器类型、固定FLASH存储器类型和分页FLASH存储器类型对应的第一至第三哈希表。
在一些示例中,所述映射文件的自动分析方法,还包括:将所述第二和第三哈希表中每个程序模块的多个程序片段长度值的统计结果相加以得到FLASH存储器的占用量。
在一些示例中,所述映射文件的自动分析方法,还包括:根据程序模块名称对各个程序模块进行排序;或者根据每个程序模块的多个程序片段在RAM存储器中的占用量对各个程序模块进行排序;或者根据每个程序模块的多个程序片段在FLASH存储器中的占用量对各个程序模块进行排序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北汽福田汽车股份有限公司,未经北汽福田汽车股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210192146.1/2.html,转载请声明来源钻瓜专利网。