一种映射文件的自动分析方法和装置制造方法

文档序号:6485932阅读:182来源:国知局
一种映射文件的自动分析方法和装置制造方法
【专利摘要】本发明提出一种映射文件的自动分析方法和装置,该方法包括:获取映射文件,包括多个程序模块的文件名、每个程序模块中多个程序片段名称、程序片段长度值;得到程序模块的程序模块名称;根据程序模块的多个程序片段名称获取多个存储器的类型;根据存储器类型生成多个哈希表,且将每个程序模块中预存在同一存储器中的程序片段对应的程序片段长度值和程序模块名称写入相应的哈希表中;对每个哈希表中的每个程序模块名称对应的程序片段长度值统计以得到该程序片段在每种存储器中的占用量;对所有程序片段在每种存储器中的占用量统计,得到每种存储器的使用状况信息。本发明对映射文件进行自动分析具有速度快、准确率高且可降低人力成本的优点。
【专利说明】一种映射文件的自动分析方法和装置
【技术领域】
[0001]本发明涉及汽车制造【技术领域】,特别涉及一种映射文件的自动分析方法和装置。【背景技术】
[0002]目前,在汽车电子控制领域,由编译链接器自动生成的MAP文件包含有软件各模块的存储器使用状况信息,但是对存储器总体的使用状况却没有统计。软件开发人员难以从整体上把握存储器资源的使用状况。因为汽车软件模块繁多,手工统计存储器总体的使用状况需要耗费大量的人力和时间。
[0003]支持嵌入式系统开发的集成开发环境编译链接器在生成可执行程序的同时可以生成MAP文件。编译链接器按照代码性质将组成可执行程序的各模块分成众多程序片断。链接命令文件(Link File)用于将存储器划分成若干不同性质的存储器片断。程序片断被链接器存入对应存储器片断中。MAP文件就是纪录程序片断和存储器片断对应关系的存储器地图,同时支持嵌入式系统开发的微控制器包含寄存器,RAM, EEPROM, FLASH等类型存储器。其中,当FLASH的大小超出微控制器的可寻址空间大小时,通常采用分页机制对FLASH进行寻址。FLASH中采用了分页机制的部分叫做分页FLASH,未采用FLASH的部分叫做固定FLASH。
[0004]汽车软件由上层应用程序,底层驱动程序,库程序三部分组成。由这三个部分生成的可执行程序包含上百个程序模块。高档汽车的软件包含的程序模块更多。MAP文件虽然包含了各个模块的存储器使用状况信息,却没有包含存储器的总使用量,总空余量,使用率这些宏观信息。而对于微控制器的选型,存储器大小的选定,程序开发,代码执行效率分析等,存储器使用状况宏观信息是至关重要的。对上百个模块甚至更多的模块进行手工统计人工成本高,花费时间长而且得到的结果准确性难以保证。另外,MAP文件中包含信息繁多,程序开发人员难于快速找出所需程序模块的存储器使用状况信息。

【发明内容】

[0005]本发明旨在至少解决上述技术问题之一。
[0006]为此,本发明的一个目的在于提出一种速度快、准确率高且可降低人力成本的映射文件的自动分析方法。
[0007]本发明的另一目的在于提出一种映射文件的自动分析装置。
[0008]为了实现上述目的,本发明第一方面的实施例提出了一种映射文件的自动分析方法,包括以下步骤:A:获取映射文件,其中,所述映射文件包括多个程序模块的文件名、每个程序模块包括的多个程序片段的程序片段名称、程序片段长度值:对每个程序模块的文件名进行分析以得到对应的程序模块的程序模块名称;C:分别根据每个程序模块包括的多个程序片段的程序片段名称获取预存所述多个程序片段的多个存储器的存储器类型;D:根据所述多个存储器的存储器类型生成与所述多个存储器类型一一对应的多个哈希表,且分别将每个程序模块中预存在同一类型存储器中的程序片段对应的程序片段长度值和对应的程序模块名称写入相应的哈希表中;E:对每个哈希表中的每个程序模块名称对应的程序片段长度值进行统计,以得到每个程序模块中的程序片段在每种类型存储器中的占用量;以及F:对所述每个程序模块中的程序片段在每种类型存储器中的占用量进行统计,并根据统计结果得到每种类型存储器的使用状况信息。
[0009]另外,根据本发明上述实施例的映射文件的自动分析方法还可以具有如下附加的技术特征:
[0010]在一些示例中,所述步骤B进一步包括:从所述映射文件中提取多个程序模块的文件名,其中,所述程序模块的文件名包括存储地址、文件名称以及文件扩展名;和分别提取多个程序模块的文件名称作为对应的程序模块的程序模块名称。
[0011]在一些示例中,所述步骤C进一步包括:获取存储每个程序模块的所有程序片段的多个存储器信息;根据所述多个存储器信息判断所述多个存储器的每一个存储器的类型。
[0012]在一些示例中,所述多个存储器类型包括RAM存储器类型、固定FLASH存储器类型和分页FLASH存储器类型。
[0013]在一些示例中,所述多个哈希表包括分别与所述RAM存储器类型、固定FLASH存储器类型和分页FLASH存储器类型对应的第一至第三哈希表。
[0014]在一些示例中,所述映射文件的自动分析方法,还包括:将所述第二和第三哈希表中每个程序模块的多个程序片段长度值的统计结果相加以得到FLASH存储器的占用量。
[0015]在一些示例中,所述映射文件的自动分析方法,还包括:根据程序模块名称对各个程序模块进行排序;或者根据每个程序模块的多个程序片段在RAM存储器中的占用量对各个程序模块进行排序;或者根据每个程序模块的多个程序片段在FLASH存储器中的占用量对各个程序模块进行排序。
[0016]在一些示例中,所述每种类型存储器的使用状况信息包括:每种类型存储器的总使用量、剩余使用量、使用率。
[0017]在一些示例中,所述使用率为所述剩余使用量除以所述总使用量。
[0018]本发明第二方面的实施例还提出了一种映射文件的自动分析装置,包括:获取模块,用于获取映射文件,其中,所述映射文件包括多个程序模块的文件名、每个程序模块包括的多个程序片段的程序片段名称、程序片段长度值;程序模块名称生成模块,用于对每个程序模块的文件名进行分析以得到对应的程序模块的程序模块名称;存储器类型获取模块,用于分别根据每个程序模块包括的多个程序片段的程序片段名称获取预存所述多个程序片段的多个存储器的存储器类型;哈希表生成模块,用于根据所述多个存储器的存储器类型生成与所述多个存储器类型一一对应的多个哈希表,且分别将每个程序模块中预存在同一类型存储器中的程序片段对应的程序片段长度值和对应的程序模块名称写入相应的哈希表中;计算模块,用于对每个哈希表中的每个程序模块名称对应的程序片段长度值进行统计,以得到每个程序模块中的程序片段在每种类型存储器中的占用量;以及统计模块,用于对所述每个程序模块中的程序片段在每种类型存储器中的占用量进行统计,并根据统计结果得到每种类型存储器的使用状况信息。
[0019]根据本发明实施例的映射文件的自动分析方法和装置,应用于汽车电子控制领域,可对由编译链接器自动生成的映射文件,即MAP文件包含的软件的各程序模块存储的存储器总体的使用状况信息进行自动的分析和生成,从而方便用户直观地从整体上把握存储器资源的使用状况。具体而言,由于汽车软件的程序模块繁多,手工统计存储器总体的使用状况需要耗费大量的人力和时间,因此,本发明的实施例通过对映射文件自动分析统计,快速且精确地计算出每个存储器的总使用量,总空余量,使用率等使用状况信息。从而用户可根据上述使用状况信息有利于对微控制器的选型,存储器大小的选定,程序开发,代码执行效率分析的把握。另外,如果对上百个程序模块甚至更多的程序模块进行手工统计上述使用状况信息,不但人工成本高,花费时间长而且得到的结果准确性难以保证。因此,本发明通过对映射文件的自动分析,可以方便,快速,准确地得出存储器使用状况信息,同时降低人力成本。
[0020]本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0021]本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0022]图1为本发明实施例的映射文件的自动分析方法的流程图;
[0023]图2为本发明一个实施例的映射文件的自动分析方法的流程图;
[0024]图3为本发明另一实施例的映射文件的自动分析方法的流程图;和
[0025]图4为本发明一个实施例的映射文件的自动分析装置的结构图。
【具体实施方式】
[0026]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0027]在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0028]在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0029]以下结合附图首先描述根据本发明实施例的映射文件的自动分析方法。
[0030]参考图1,根据本发明实施例的映射文件的自动分析方法,包括如下步骤:
[0031]步骤S101,获取映射文件,其中,映射文件包括多个程序模块的文件名、每个程序模块包括的多个程序片段的程序片段名称、程序片段长度值。映射文件为在汽车电子控制领域中由编译链接器自动生成的MAP文件。
[0032]步骤S102,对每个程序模块的文件名进行分析以得到对应的程序模块的程序模块名称。具体而言,从映射文件中提取多个程序模块的文件名,其中,程序模块的文件名包括存储地址、文件名称以及文件扩展名,并分别提取多个程序模块的文件名称作为对应的程序模块的程序模块名称。换言之,针对每一个程序模块,从包含该程序模块路径的完整文件名中提取出文件名本体,即文件名作为该程序模块名称,并去除路径,即存储地址和文件扩展名。需要说明的是,MAP文件中的文件名为包含路径的完整文件名,上述的路径为文件的存储地址,一般而言,MAP文件的文件扩展名的形式为0”等形式的扩展名。
[0033]步骤S103,分别根据每个程序模块包括的多个程序片段的程序片段名称获取预存多个程序片段的多个存储器的存储器类型。具体地,首先获取存储每个程序模块的所有程序片段的多个存储器信息,然后根据多个存储器信息判断多个存储器的每一个存储器的类型。在本发明的一个示例中,多个存储器类型包括但不限于以下三种类型:RAM存储器类型、固定FLASH存储器类型和分页FLASH存储器类型。
[0034]步骤S104,根据多个存储器的存储器类型生成与多个存储器类型一一对应的多个哈希表,且分别将每个程序模块中预存在同一类型存储器中的程序片段对应的程序片段长度值和对应的程序模块名称写入相应的哈希表中,如与上述步骤S103中的RAM存储器类型、固定FLASH存储器类型和分页FLASH存储器类型分别一一对应的多个哈希表,即多个哈希表包括分别与RAM存储器类型、固定FLASH存储器类型和分页FLASH存储器类型对应的第一至第三哈希表。换言之,针对每一个程序模块,根据组成此程序模块的各程序片断名称将各程序片断长度值存入对应的哈希表中。每个哈希表的Key值均为程序模块名称,Value值为Key值的程序模块名称包括的一些程序片断长度值。根据上述的一个实施例可知,各程序片断名称对应三种不同类型存储器,每种存储器对应一个哈希表,此处,第一至第三哈希表均可为一个哈希表,也可以包括多个,例如,第一哈希表可以为多个哈希表。RAM存储器对应RAM哈希表,固定FLASH存储器对应固定FLASH哈希表,分页FLASH存储器对应分页FLASH哈希表。
[0035]需要说明的是,在上述示例中,RAM哈希表,固定FLASH哈希表,分页FLASH哈希表中的RAM,固定FLASH,分页FLASH仅为此三个哈希表的名称,并不代表哈希表的存储位置。另外,为了对应三种存储器,划分了上述三个哈希表,三个哈希表之间本质上无区别。
[0036]步骤S105,对每个哈希表中的每个程序模块名称对应的程序片段长度值进行统计,以得到每个程序模块中的程序片段在每种类型存储器中的占用量。在该步骤中,如果判断出存储器类型包括固定FLASH存储器和分页FLASH存储器,则将对应的第二哈希表和第三哈希表中每个程序模块的多个程序片段长度值的统计结果相加以得到FLASH存储器的占用量。即针对每一个程序模块,将固定FLASH哈希表的值和分页FLASH哈希表的值相加得出此模块的FLASH占用量,也称使用量。
[0037]步骤S106,对所述每个程序模块中的程序片段在每种类型存储器中的占用量进行统计,并根据统计结果得到每种类型存储器的使用状况信息。通俗地讲,即将各程序模块的FLASH使用量,固定FLASH使用量,分页FLASH使用量,RAM使用量分别累加得出各存储器的总使用量。用各存储器的大小减去各存储器的总使用量的出各存储器的总空余量。用总空余量除以总使用量得出各存储器的使用率。[0038]根据上述的一个示例,每种类型存储器的使用状况信息包括但不限于:每种类型存储器的总使用量、剩余使用量、使用率。进一步地,使用率为所述剩余使用量除以所述总使用量。
[0039]根据本发明实施例的映射文件的自动分析方法,应用于汽车电子控制领域,可对由编译链接器自动生成的映射文件,即MAP文件包含的软件的各程序模块存储的存储器总体的使用状况信息进行自动的分析和生成,从而方便用户直观地从整体上把握存储器资源的使用状况。具体而言,由于汽车软件的程序模块繁多,手工统计存储器总体的使用状况需要耗费大量的人力和时间,因此,本发明的实施例通过对映射文件自动分析统计,快速且精确地计算出每个存储器的总使用量,总空余量,使用率等使用状况信息。从而用户可根据上述使用状况信息有利于对微控制器的选型,存储器大小的选定,程序开发,代码执行效率分析的把握。另外,如果对上百个程序模块甚至更多的程序模块进行手工统计上述使用状况信息,不但人工成本高,花费时间长而且得到的结果准确性难以保证。因此,本发明通过对映射文件的自动分析,可以方便,快速,准确地得出存储器使用状况信息,同时降低人力成本。
[0040]正如本发明的【背景技术】所提到的,由于映射文件,即MAP文件中包含信息繁多,所以用户不容易快速找出所需程序模块的存储器使用状况信息。因此,在本发明的一个示例中,可根据程序模块名称对各个程序模块进行排序,或者根据每个程序模块的多个程序片段在RAM存储器中的占用量对各个程序模块进行排序,或者根据每个程序模块的多个程序片段在FLASH存储器中的占用量对各个程序模块进行排序,以便用户能够快速地在大量的信息中获取所需信息。具体而言,指定程序模块的排序方式,包括“按照程序模块名称排序”,“按照RAM使用量排序”,“按照FLASH使用量排序”三种排序方式。每种排序方式按照五级优先级进行排序。
[0041]进一步地,采用“按照程序模块名称排序”方式排序时,五级排序从高优先级到低优先级依次为:程序模块名称,FLASH存储器占用量,固定FLASH存储器占用量,分页FLASH存储器占用量,RAM存储器占用量。采用“按照RAM占用量排序”时,五级排序从高优先级到低优先级依次为=RAM占用量,模块名称,FLASH占用量,固定FLASH占用量,分页FLASH占用量。采用“按照FLASH占用量排序”时,五级排序从高优先级到低优先级依次为=FLASH占用量,模块名称,固定FLASH占用量,分页FLASH占用量,RAM占用量。由此,软件开发人员或者相关用户可以以所需排序方式对程序模块排序,方便软件开发人员或者相关用户快速找到所需模块信息,进一步提高效率,节省时间。
[0042]为了对本发明实施例的步骤SlOl至步骤S104有更清楚的理解,以下结合具体例子对步骤SlOl至步骤S104进行详细描述。具体地,参见图2,包括以下步骤:
[0043]步骤S201,提取文件名作为程序模块名,即分别从每个程序模块的文件名包括的存储地址、文件名称以及文件扩展名中提取出文件名称作为相应的程序模块的程序模块名称。
[0044]步骤S202,判断是否为RAM存储器中的程序片段。即根据程序模块名称判断程序片段是否为预存在RAM存储器中的程序片段,如果是,则转至步骤S203,否则转至步骤S204。
[0045]步骤S203,将程序片段长度值存入RAM哈希表中,并转至步骤S207。[0046]步骤S204,判断是否为固定FLASH存储器中的程序片段,如果是,则转至步骤S205,否则转至步骤S206。
[0047]步骤S205,将程序片段长度值存入固定FLASH哈希表中,并转至步骤S207。
[0048]步骤S206,将程序片段长度值存入分页FLASH哈希表中,并转至步骤S207。
[0049]步骤S207,判断MAP文件中,即映射文件中所有程序模块中的程序片段是否全部处理完成,如果是则转至步骤S208。否则转至步骤S201。
[0050]步骤S208,对每个哈希表中的每个程序模块名称对应的程序片段长度值进行统计。
[0051]进一步地,参见图3,上述示例中步骤S208对每个哈希表中的每个程序模块名称对应的程序片段长度值进行统计包括以下步骤:
[0052]步骤S301,将每个程序模块对应的在固定FLASH哈希表中统计结果和在分页FLASH哈希表中统计结果相加得到该程序模块对应的程序片段在FLASH存储器中的占用量。
[0053]步骤S302,判断是否按RAM存储器中的占用量排序,即判断是否根据每个程序模块的多个程序片段在RAM存储器中的占用量对各个程序模块进行排序,如果是则转至步骤S303,否则转至步骤S304。
[0054]步骤S303,以RAM存储器中的占用量为最闻优先级进行五级排序。
[0055]步骤S304,判断是否按程序模块名称进行排序,即判断是否根据程序模块名称对各个程序模块进行排序,如果是则转至步骤S305,否则转至步骤S306。
[0056]步骤S305,以模块名称为最高优先级进行五级排序。
[0057]步骤S306,判断是否按FLASH存储器中的占用量排序,即判断是否根据每个程序模块的多个程序片段在FLASH存储器中的占用量对各个程序模块进行排序,如果是则转至步骤S307,否则转至步骤S308。
[0058]步骤S307,累加各程序模块对应的程序片段在FLASH存储器中的占用量、固定FLASH存储器中的占用量、分页FLASH存储器中的占用量、RAM存储器中的占用量以及所有程序模块对应的程序片段在FLASH存储器中的总占用量,固定FLASH存储器中的总占用量,分页FLASH存储器中的总占用量,RAM存储器中的总占用量。
[0059]步骤S208,将每个存储器的大小减去相应的存储器的总占用量得到该存储器的总
空余量。
[0060]步骤S209,将每个存储器的每个的总占用量除以相应存储器的大小得到该存储器的使用率。
[0061]步骤S210,将五级排序结果和各存储器的使用状况信息,即每个存储器中每个程序模块对应的该存储器占用量、总占用量、总剩余量和使用率显示给用户。
[0062]如图4所示,本发明的进一步实施例提出了一种映射文件的自动分析装置400,包括获取模块410、程序模块名称生成模块420、存储器类型获取模块430、哈希表生成模块440、计算模块450和统计模块460。其中:
[0063]获取模块410用于获取映射文件,其中,所述映射文件包括多个程序模块的文件名、每个程序模块包括的多个程序片段的程序片段名称、程序片段长度值。
[0064]程序模块名称生成模块420用于对每个程序模块的文件名进行分析以得到对应的程序模块的程序模块名称。在一些示例中,程序模块名称生成模块420用于从映射文件中提取多个程序模块的文件名,其中,程序模块的文件名包括存储地址、文件名称以及文件扩展名,以及分别提取多个程序模块的文件名称作为对应的程序模块的程序模块名称。
[0065]存储器类型获取模块430用于分别根据每个程序模块包括的多个程序片段的程序片段名称获取预存所述多个程序片段的多个存储器的存储器类型。在一些示例中,存储器类型获取模块430用于获取存储每个程序模块的所有程序片段的多个存储器信息,并根据多个存储器信息判断多个存储器的每一个存储器的类型。进一步地,多个存储器类型包括但不限于以下三种类型:RAM存储器类型、固定FLASH存储器类型和分页FLASH存储器类型。
[0066]哈希表生成模块440用于根据所述多个存储器的存储器类型生成与多个存储器类型一一对应的多个哈希表,且分别将每个程序模块中预存在同一类型存储器中的程序片段对应的程序片段长度值和对应的程序模块名称写入相应的哈希表中。根据上述的一个实施例,多个哈希表包括但不限于以下三种:分别与所述RAM存储器类型、固定FLASH存储器类型和分页FLASH存储器类型对应的第一至第三哈希表。
[0067]计算模块450用于对每个哈希表中的每个程序模块名称对应的程序片段长度值进行统计,以得到每个程序模块中的程序片段在每种类型存储器中的占用量。根据上述的一个示例,计算模块450还用于将第二和第三哈希表中每个程序模块的多个程序片段长度值的统计结果相加以得到FLASH存储器的占用量。
[0068]统计模块460用于对所述每个程序模块中的程序片段在每种类型存储器中的占用量进行统计,并根据统计结果得到每种类型存储器的使用状况信息。每种类型存储器的使用状况信息包括但不限于:每种类型存储器的总使用量、剩余使用量、使用率。进一步地,使用率为剩余使用量除以总使用量。
[0069]在一些示例中,计算模块450还用于根据程序模块名称对各个程序模块进行排序,或者根据每个程序模块的多个程序片段在RAM存储器中的占用量对各个程序模块进行排序,或者根据每个程序模块的多个程序片段在FLASH存储器中的占用量对各个程序模块进行排序。具体而言,正如本发明的【背景技术】所提到的,由于映射文件,即MAP文件中包含信息繁多,所以用户不容易快速找出所需程序模块的存储器使用状况信息。因此,在本发明的一个示例中,可根据程序模块名称对各个程序模块进行排序,或者根据每个程序模块的多个程序片段在RAM存储器中的占用量对各个程序模块进行排序,或者根据每个程序模块的多个程序片段在FLASH存储器中的占用量对各个程序模块进行排序,以便用户能够快速地在大量的信息中获取所需信息。具体而言,指定程序模块的排序方式,包括“按照程序模块名称排序”,“按照RAM使用量排序”,“按照FLASH使用量排序”三种排序方式。每种排序方式按照五级优先级进行排序。
[0070]进一步地,采用“按照程序模块名称排序”方式排序时,五级排序从高优先级到低优先级依次为:程序模块名称,FLASH存储器占用量,固定FLASH存储器占用量,分页FLASH存储器占用量,RAM存储器占用量。采用“按照RAM占用量排序”时,五级排序从高优先级到低优先级依次为=RAM占用量,模块名称,FLASH占用量,固定FLASH占用量,分页FLASH占用量。采用“按照FLASH占用量排序”时,五级排序从高优先级到低优先级依次为=FLASH占用量,模块名称,固定FLASH占用量,分页FLASH占用量,RAM占用量。由此,软件开发人员或者相关用户可以以所需排序方式对程序模块排序,方便软件开发人员或者相关用户快速找到所需模块信息,进一步提高效率,节省时间。
[0071]根据本发明实施例的映射文件的自动分析方法和装置能够自动地对各存储器的宏观使用状况信息,即使用状况信息进行自动统计,极大地削减了手工统计的人工成本。另夕卜,本发明的实施例应用一套五级排序机制对程序模块排序,此套机制包含三种排序方式,软件开发人员或者相关用户可以以所需排序方式对程序模块排序,方便软件开发人员快速找到所需程序模块信息,进而节省时间,提高效率。
[0072]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0073]尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。
【权利要求】
1.一种映射文件的自动分析方法,其特征在于,包括以下步骤: A:获取映射文件,其中,所述映射文件包括多个程序模块的文件名、每个程序模块包括的多个程序片段的程序片段名称、程序片段长度值; B:对每个程序模块的文件名进行分析以得到对应的程序模块的程序模块名称; C:分别根据每个程序模块包括的多个程序片段的程序片段名称获取预存所述多个程序片段的多个存储器的存储器类型; D:根据所述多个存储器的存储器类型生成与所述多个存储器类型一一对应的多个哈希表,且分别将每个程序模块中预存在同一类型存储器中的程序片段对应的程序片段长度值和对应的程序模块名称写入相应的哈希表中; E:对每个哈希表中的每个程序模块名称对应的程序片段长度值进行统计,以得到每个程序模块中的程序片段在每种类型存储器中的占用量;以及 F:对所述每个程序模块中的程序片段在每种类型存储器中的占用量进行统计,并根据统计结果得到每种类型存储器的使用状况信息。
2.根据权利要求1所述的映射文件的自动分析方法,其特征在于,所述步骤B进一步包括: 从所述映射文件中提取多个程序模块的文件名,其中,所述程序模块的文件名包括存储地址、文件名称以及文件扩展名;和 分别提取多个程序模块的文件名称作为对应的程序模块的程序模块名称。`
3.根据权利要求1所述的映射文件的自动分析方法,其特征在于,所述步骤C,进一步包括: 获取存储每个程序模块的所有程序片段的多个存储器信息; 根据所述多个存储器信息判断所述多个存储器的每一个存储器的类型。
4.根据权利要求1或3所述的映射文件的自动分析方法,其特征在于,所述多个存储器类型包括RAM存储器类型、固定FLASH存储器类型和分页FLASH存储器类型。
5.根据权利要求4所述的映射文件的自动分析方法,其特征在于,所述多个哈希表包括分别与所述RAM存储器类型、固定FLASH存储器类型和分页FLASH存储器类型对应的第一至第三哈希表。
6.根据权利要求5所述的映射文件的自动分析方法,其特征在于,还包括: 将所述第二和第三哈希表中每个程序模块的多个程序片段长度值的统计结果相加以得到FLASH存储器的占用量。
7.根据权利要求6所述的映射文件的自动分析方法,其特征在于,还包括: 根据程序模块名称对各个程序模块进行排序;或者 根据每个程序模块的多个程序片段在RAM存储器中的占用量对各个程序模块进行排序;或者 根据每个程序模块的多个程序片段在FLASH存储器中的占用量对各个程序模块进行排序。
8.根据权利要求1所述的映射文件的自动分析方法,其特征在于,所述每种类型存储器的使用状况信息包括:每种类型存储器的总使用量、剩余使用量、使用率。
9.根据权利要求8所述的映射文件的自动分析方法,其特征在于,所述使用率为所述剩余使用量除以所述总使用量。
10.一种映射文件的自动分析装置,其特征在于,包括: 获取模块,用于获取映射文件,其中,所述映射文件包括多个程序模块的文件名、每个程序模块包括的多个程序片段的程序片段名称、程序片段长度值; 程序模块名称生成模块,用于对每个程序模块的文件名进行分析以得到对应的程序模块的程序模块名称; 存储器类型获取模块,用于分别根据每个程序模块包括的多个程序片段的程序片段名称获取预存所述多个程序片段的多个存储器的存储器类型; 哈希表生成模块,用于根据所述多个存储器的存储器类型生成与所述多个存储器类型一一对应的多个哈希表,且分别将每个程序模块中预存在同一类型存储器中的程序片段对应的程序片段长度值和对应的程序模块名称写入相应的哈希表中; 计算模块,用于对每个哈希表中的每个程序模块名称对应的程序片段长度值进行统计,以得到每个程序模块中的程序片段在每种类型存储器中的占用量;以及 统计模块,用于对所述每个程序模块中的程序片段在每种类型存储器中的占用量进行统计,并根据统计结果得到每种类`型存储器的使用状况信息。
【文档编号】G06F17/30GK103488640SQ201210192146
【公开日】2014年1月1日 申请日期:2012年6月11日 优先权日:2012年6月11日
【发明者】张宗义, 左从兵, 张春淮, 王海燕 申请人:北汽福田汽车股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1