CN109697279A - 一种a2l变量地址处理方法和装置 - Google Patents

一种a2l变量地址处理方法和装置 Download PDF

Info

Publication number
CN109697279A
CN109697279A CN201811607811.2A CN201811607811A CN109697279A CN 109697279 A CN109697279 A CN 109697279A CN 201811607811 A CN201811607811 A CN 201811607811A CN 109697279 A CN109697279 A CN 109697279A
Authority
CN
China
Prior art keywords
address
variable
variables
types
target variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811607811.2A
Other languages
English (en)
Other versions
CN109697279B (zh
Inventor
许晓梦
宋炳雨
刘硕
何晓明
李峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Weichai Power Co Ltd
Original Assignee
Weichai Power Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Weichai Power Co Ltd filed Critical Weichai Power Co Ltd
Priority to CN201811607811.2A priority Critical patent/CN109697279B/zh
Publication of CN109697279A publication Critical patent/CN109697279A/zh
Application granted granted Critical
Publication of CN109697279B publication Critical patent/CN109697279B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

一种A2L变量地址处理方法和装置,方法包括:读取A2L文件和ELF文件,将ELF文件中的debug_info部分转化为当前操作系统可读文件;获取A2L文件所需读取物理地址的各个目标变量的变量名和变量类型;依据变量类型将目标变量划分为第一变量类型和第二变量类型;由debug_info中读取第一类变量类型中的目标变量所对应的物理地址;由debug_info中读取第二变量类型中的目标变量所对应的基础地址以及元素地址偏移信息,基于基础地址以及元素地址偏移信息计算得到目标变量所对应的物理地址;依据读取到的物理地址更新A2L文件中的目标变量的所对应的地址,提高了A2L文件中的目标变量的物理地址的读取效率。

Description

一种A2L变量地址处理方法和装置
技术领域
本发明涉及数据处理技术领域,具体涉及一种A2L变量地址处理方法和装置。
背景技术
通过A2L文件,标定工具识别程序中变量名称、地址、所占用字节长度等信息,标定和测量的数据一般以AASAM MCD-2MC格式存储,文件名称以.a2l结尾,因此,本领域技术人员将这类文件简称A2L文件。A2L是控制器的描述文件,标定工具可以根据A2L文件提供的消息,读取ECU(Electronic Control Unit)中可测量量和标定参数的数值,并按用户的要求标定参数数值以优化控制策略。
目前,汽车电子控制器开发领域,应用国际通用的V字开发模式,首先根据控制需求设计MATLAB控制模型,利用MATLAB自动代码生成功能产生C代码和A2L文件,C代码与底层驱动函数编译集成生成目标运行代码,而A2L文件参数地址是虚拟地址,需要从编译生成的MAP(Linker Map File)文件(映射文件)中找到其真实的地址并替换后,才能用于标定。具体的,MAP文件中基本数据类型变量、指针变量、普通数组、枚举、共用体等可直接从MAP文件中获取变量地址,替换A2L文件对应位置为变量地址;对于结构体等复杂变量类型,一般是首先分析结构体对齐规则及元素数据类型正向的确定元素地址偏移生成带有偏移信息的A2L文件,然后通过从MAP中获取该变量基地址加上模板中地址偏移替换该结构体元素地址为物理地址。
现有的A2L文件变量地址替换方法存在如下缺陷:
一、不同编译器生成的MAP文件格式不一致,从MAP中获取变量地址的方式则不统一。
二、MAP中无结构体元素等偏移信息,地址偏移信息需通过其数据类型、结构体元素对齐等因素确定元素地址偏移,而结构体元素对齐不仅受对齐规则的影响同时受代码中关键字及编译选项的影响,会造成结构体及其结构体数组等类型变量元素地址获取存在偏差,同时比较复杂的变量类型元素的偏移考虑因素更多则不容易获取。
三、A2L文件针对普通变量、结构体变量也不一致,前期A2L文件生成及后期A2L处理需区别处理。
发明内容
有鉴于此,本发明实施例提供一种A2L变量地址处理方法和装置,以实现A2L文件中虚拟地址到物理地址之间的转换。
为实现上述目的,本发明实施例提供如下技术方案:
一种A2L变量地址处理方法,包括:
读取A2L文件和ELF文件,所述A2L文件中具有虚拟地址,所述ELF文件中具有与所述虚拟地址相匹配的物理地址;
将所述ELF文件中的debug_info部分转化为当前操作系统可读文件,所述debug_info中包含有调试信息,通过所述调试信息可获取全局变量的参数信息,所述参数信息包括但不限于变量名、变量地址、变量类型索引和元素偏移;
获取所述A2L文件所需读取物理地址的各个目标变量的变量名和变量类型;
依据所述变量类型将所述目标变量划分为第一变量类型和第二变量类型,所述第一变量类型为可直接由debug_info中读取物理地址的变量类型,所述第二变量类型为需获取元素地址偏移的变量类型;
由所述debug_info中读取所述第一类变量类型中的所述目标变量所对应的物理地址;
由所述debug_info中读取所述第二变量类型中的所述目标变量所对应的基础地址以及元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址;
依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址。
优选的,上述A2L变量地址处理方法中,依据所述变量类型将所述目标变量划分为第一变量类型和第二变量类型,包括:
获取所述目标变量的变量类型;
判断所述目标变量的变量类型是否属于第一类型集合,如果是,将所述目标变量划分为第一变量类型;如果否,将所述目标变量划分为第二变量类型。
优选的,上述A2L变量地址处理方法中,所述由所述debug_info中读取所述第二变量类型中的所述目标变量所对应的基础地址以及元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址,包括:
在所述debug_info中基于索引关键字volatile和const对所述目标变量进行索引,直至索引得到的目标变量的类型为基础类型,判断所述基础类型中是否包含元素地址偏移信息,如果包含元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址,如果不包含所述元素偏移信息,则直接读取所述基础类型中的变量地址,将所述变量地址作为所述目标变量所对应的物理地址。
优选的,上述A2L变量地址处理方法中,所述将所述ELF文件中的debug_info部分转化为当前操作系统可读文件,具体包括:
采用Linux shell软件将ELF文件中的debug_info部分转化为Windows下可读文件。
优选的,上述A2L变量地址处理方法中,所述依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址,包括:
依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址,并将所述A2L文件中的目标变量的地址统一配置为包含有变量地址和变量名称的预设格式。
一种A2L变量地址处理装置,包括:
数据读取单元,用于读取A2L文件和ELF文件,所述A2L文件中具有虚拟地址,所述ELF文件中具有与所述虚拟地址相匹配的物理地址;
debug_info信息转换单元,用于将所述ELF文件中的debug_info部分转化为当前操作系统可读文件,所述debug_info中包含有调试信息,通过所述调试信息可获取全局变量的参数信息,所述参数信息包括但不限于变量名、变量地址、变量类型索引和元素偏移;
目标变量读取单元,用于获取所述A2L文件所需读取物理地址的各个目标变量的变量名和变量类型;依据所述变量类型将所述目标变量划分为第一变量类型和第二变量类型,所述第一变量类型为可直接由debug_info中读取物理地址的变量类型,所述第二变量类型为需获取元素地址偏移的变量类型;
物理地址读取单元,用于由所述debug_info中读取所述第一类变量类型中的所述目标变量所对应的物理地址;由所述debug_info中读取所述第二变量类型中的所述目标变量所对应的基础地址以及元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址;
A2L文件变量地址配置单元,用于依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址。
优选的,上述A2L变量地址处理装置中,所述目标变量读取单元在依据所述变量类型将所述目标变量划分为第一变量类型和第二变量类型时,具体用于:
获取所述目标变量的变量类型;
判断所述目标变量的变量类型是否属于第一类型集合,如果是,将所述目标变量划分为第一变量类型;如果否,将所述目标变量划分为第二变量类型。
优选的,上述A2L变量地址处理装置中,所述物理地址读取单元在所述debug_info中读取所述第二变量类型中的所述目标变量所对应的基础地址以及元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址时,具体用于:
在所述debug_info中基于索引关键字volatile和const对所述目标变量进行索引,直至索引得到的目标变量的类型为基础类型,判断所述基础类型中是否包含元素地址偏移信息,如果包含元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址,如果不包含所述元素偏移信息,则直接读取所述基础类型中的变量地址,将所述变量地址作为所述目标变量所对应的物理地址。
优选的,上述A2L变量地址处理装置中,所述debug_info信息转换单元,具体用于:
采用Linux shell软件将ELF文件中的debug_info部分转化为Windows下可读文件。
优选的,上述A2L变量地址处理装置中,所述A2L文件变量地址配置单元,具体用于:
依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址,并将所述A2L文件中的目标变量的地址统一配置为包含有变量地址和变量名称的预设格式。
基于上述技术方案,本发明实施例提供的方案,在获取所述A2L文件中变量的物理地址时,通过解析所述ELF文件中的debug_info部分得到,因此,无需采用MAP文件,变量的物理地址的获取方式统一,适用性广泛,工作人员不必开发不同的获取变量地址的策略,因此,具有较高的工作效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种A2L变量地址处理方法的流程示意图;
图2为本申请实施例公开的一种A2L变量地址处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有技术中采用MAP文件查抄A2L文件中变量的物理地址时,因不同编译器生成的MAP文件格式不一致,导致从MAP中获取变量地址的方式则不统一,而造成的效率低的问题,本申请公开了A2L变量地址处理方法,参见图1,该方法可以包括:
步骤S101:读取A2L文件和ELF文件;
所述A2L文件中具有各个目标变量,以及所述目标变量所对应的虚拟地址,所述ELF(Executable and Linkable Format)文件中具有与所述A2L文件中各个目标变量的虚拟地址相匹配的物理地址;
步骤S102:将所述ELF文件中的debug_info部分转化为当前操作系统可读文件;
所述ELF文件中的debug_info中包含有调试信息,通过解析所述调试信息可获取全局变量的参数信息,所述参数信息包括但不限于变量名、变量地址、变量类型索引和元素偏移,这些全局变量与所述A2L中的目标变量相对应,即,所述A2L文件中的各个目标变量均可在所述debug_info中找到对应的全局变量,以及该全局变量对应的参数信息;
步骤S103:获取所述A2L文件所需读取物理地址的各个目标变量的变量名和变量类型;
在本步骤中,当需要查找所述A2L文件中目标变量的物理地址时,需要预先获取A2L文件中各个目标变量的变量类型和变量名称;
步骤S104:依据所述变量类型将所述目标变量划分为第一变量类型和第二变量类型;
在本阶段,将所有全局变量分为可直接获取物理地址并使用的变量类型和需要进行地址偏移的即需获取元素地址偏移的变量类型,其中,所述第一变量类型即为可直接由debug_info中读取并使用的物理地址的变量类型,所述第二变量类型为需获取元素地址偏移的变量类型;
步骤S105:由所述debug_info中读取所述第一类变量类型中的所述目标变量所对应的物理地址;
当所述目标变量的变量类型为基础数据类型、枚举类型、指针类型、共用体类型或基础数据类型数组,该目标变量属于第一变量类型,可直接由所述debug_info中读取目标变量的参数信息,所述参数信息至少包括变量地址,读取到的所述变量地址即为所需要获取的物理地址。
步骤S106:由所述debug_info中读取所述第二变量类型中的所述目标变量所对应的基础地址以及元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址;
当所述目标变量的变量类型为结构体类型或结构体数组时,需要对所述目标变量进行关键词索引,通过索引的方式最终获取到所述目标变量所对应的变量地址,或基础地址以及元素地址偏移信息,当获取到变量地址时,可直接将其作为目标变量的物理地址,当获取到基础地址以及元素地址偏移信息时,可基于所述基础地址以及元素地址偏移信息即可计算得到所述目标变量的物理地址;
步骤S107:依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址;
在本步骤中,当获取到目标变量的物理地址以后,采用所述物理地址更新所述A2L文件中所述目标变量的虚拟地址,从而时间了A2L文件变量的虚拟地址到物理地址之间的转换。
通过本申请上述实施例公开的技术方案可见,在获取所述A2L文件中变量的物理地址时,通过解析所述ELF文件中的debug_info部分得到,因此,无需采用MAP文件,变量的物理地址的获取方式统一,适用性广泛,工作人员不必开发不同的获取变量地址的策略,因此,具有较高的工作效率。
进一步的,在本申请上述实施例公开的技术方案中,当所述目标变量的变量类型确定以后,可以通过判断所述目标变量的变量类型所属集合的方式确定所述目标变量是隶属于第一变量类型还是第二变量类型,具体的上述方法中,依据所述变量类型将所述目标变量划分为第一变量类型和第二变量类型,可以包括:
获取所述目标变量的变量类型;
判断所述目标变量的变量类型是否属于第一类型集合,如果是,将所述目标变量划分为第一变量类型;如果否,将所述目标变量划分为第二变量类型,其中,所述第一类型集合可以包括基础数据类型、枚举类型、指针类型、共用体类型和/或基础数据类型数组。
在本申请实施例公开的技术方案中,当所述目标变量隶属于第二变量类型时,需要通过索引关键字的方式由所述debug_info读取到所述目标变量的基础类型,再由所述基础类型中读取所述目标变量的基础地址、元素地址偏移信息或直接读取目标变量的变量地址,其中,所述索引关键字可以包括第一索引关键字和第二索引关键字,所述第一索引关键字和第二索引关键字中其中一个索引关键字为volatile,另一个索引关键字为const,当所述目标变量隶属于第二变量类型时,在所述debug_info中采用第一索引关键字对所述目标变量进行查找,判断是否查找到对应的目标变量,当没有找到时,采用第二索引关键字对所述目标变量进行查找,当查找到目标变量时,判断其是否为基础类型,如果否,基于本次索引结果继续用另一个索引关键字对所述目标变量进行查找,直至得到的目标变量为基础类型为止。当变量数据为基础类型时,其内的地址信息可能会直接包括所述变量地址,或者是基础地址和元素地址偏移信息的组合,当为基础地址和元素地址偏移信息的组合时,对两者进行进一步处理即可得到所述目标变量对应的物理地址;具体的,上述方法中,所述由所述debug_info中读取所述第二变量类型中的所述目标变量所对应的基础地址以及元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址,具体可以包括:
在所述debug_info中基于索引关键字volatile和const对所述目标变量进行索引,直至索引得到的目标变量的类型为基础类型,判断所述基础类型中是否包含元素地址偏移信息,如果包含元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址,如果不包含所述元素偏移信息,则直接读取所述基础类型中的变量地址,将所述变量地址作为所述目标变量所对应的物理地址。
在本申请上述实施例公开的技术方案中,可以通过现有的软件对所述ELF文件中的debug_info部分进行转化,将其转换为当前系统可以读取的文件,在这里,所述当前系统可以指的是Windows系统,该过程可以通过Linux shell软件实现。ELF文件作为out文件的扩展,具有更加规整的格式,当前绝大多数编译器支持DWARF2.0或3.0版本,在Linux工程项目中尤其是Linux系统开发中使用普遍。Linux系统中内置了专门的解析器,利用Linuxshell把相应ELF中debug_info部分转化为Windows下可读文件,对此,上述方案中将所述ELF文件中的debug_info部分转化为当前操作系统可读文件,具体可以包括:采用Linuxshell软件将ELF文件中的debug_info部分转化为Windows下可读文件。
在本申请实施例公开的技术方案中,还可以将A2L文件中的目标变量的格式进行统一化,具体的,上述方案中,所述依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址,包括:
依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址,并将所述A2L文件中的目标变量的地址统一配置为包含有变量地址和变量名称的预设格式。所述预设格式可以为@MemoryAddress@variable@格式,其中,所述MemoryAddress为目标变量的物理地址,所述variable可以为目标变量的名称,针对于结构体变量类型的目标变量而言,其物理地址需要具体到元素,如结构体数组元素CanTp_ChnlPools[1].RxNPduId。
在本申请另一实施例公开的技术方案中,当获取到各个目标变量的物理地址以后,可以通过脚本文件将这些物理地址匹配到所述A2L文件中。
本实施例中公开了一种A2L变量地址处理装置,该装置中各个单元的具体工作内容,请参见上述方法实施例的内容,下面对本申请实施例提供的A2L变量地址处理装置进行描述,下文描述的A2L变量地址处理装置与上文描述的A2L变量地址处理装置可相互对应参照,参见图2,可见,该装置可以包括:
数据读取单元100,其与上述方法中步骤S101相对应,用于读取A2L文件和ELF文件,所述A2L文件中具有虚拟地址,所述ELF文件中具有与所述虚拟地址相匹配的物理地址;
debug_info信息转换单元200,其与上述方法中步骤S102相对应,用于将所述ELF文件中的debug_info部分转化为当前操作系统可读文件,所述debug_info中包含有调试信息,通过所述调试信息可获取全局变量的参数信息,所述参数信息包括但不限于变量名、变量地址、变量类型索引和元素偏移;
目标变量读取单元300,其与上述方法中步骤S103-S104相对应,用于获取所述A2L文件所需读取物理地址的各个目标变量的变量名和变量类型;依据所述变量类型将所述目标变量划分为第一变量类型和第二变量类型,所述第一变量类型为可直接由debug_info中读取物理地址的变量类型,所述第二变量类型为需获取元素地址偏移的变量类型;
物理地址读取单元400,其与上述方法中步骤S105-S106相对应,用于由所述debug_info中读取所述第一类变量类型中的所述目标变量所对应的物理地址;由所述debug_info中读取所述第二变量类型中的所述目标变量所对应的基础地址以及元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址;
A2L文件变量地址配置单元500,其与上述方法中步骤S107相对应,用于依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址。
与上述方法相对应,所述目标变量读取单元300在依据所述变量类型将所述目标变量划分为第一变量类型和第二变量类型时,具体用于:
获取所述目标变量的变量类型;
判断所述目标变量的变量类型是否属于第一类型集合,如果是,将所述目标变量划分为第一变量类型;如果否,将所述目标变量划分为第二变量类型。
与上述方法相对应,所述物理地址读取单元400在所述debug_info中读取所述第二变量类型中的所述目标变量所对应的基础地址以及元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址时,具体用于:
在所述debug_info中基于索引关键字volatile和const对所述目标变量进行索引,直至索引得到的目标变量的类型为基础类型,判断所述基础类型中是否包含元素地址偏移信息,如果包含元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址,如果不包含所述元素偏移信息,则直接读取所述基础类型中的变量地址,将所述变量地址作为所述目标变量所对应的物理地址。
与上述方法相对应,所述debug_info信息转换单元200,具体用于:
采用Linux shell软件将ELF文件中的debug_info部分转化为Windows下可读文件。
与上述方法相对应,所述A2L文件变量地址配置单元500,具体用于:
依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址,并将所述A2L文件中的目标变量的地址统一配置为包含有变量地址和变量名称的预设格式。
为了描述的方便,描述以上系统时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种A2L变量地址处理方法,其特征在于,包括:
读取A2L文件和ELF文件,所述A2L文件中具有虚拟地址,所述ELF文件中具有与所述虚拟地址相匹配的物理地址;
将所述ELF文件中的debug_info部分转化为当前操作系统可读文件,所述debug_info中包含有调试信息,通过所述调试信息可获取全局变量的参数信息,所述参数信息包括但不限于变量名、变量地址、变量类型索引和元素偏移;
获取所述A2L文件所需读取物理地址的各个目标变量的变量名和变量类型;
依据所述变量类型将所述目标变量划分为第一变量类型和第二变量类型,所述第一变量类型为可直接由debug_info中读取物理地址的变量类型,所述第二变量类型为需获取元素地址偏移的变量类型;
由所述debug_info中读取所述第一类变量类型中的所述目标变量所对应的物理地址;
由所述debug_info中读取所述第二变量类型中的所述目标变量所对应的基础地址以及元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址;
依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址。
2.根据权利要求1所述的A2L变量地址处理方法,其特征在于,依据所述变量类型将所述目标变量划分为第一变量类型和第二变量类型,包括:
获取所述目标变量的变量类型;
判断所述目标变量的变量类型是否属于第一类型集合,如果是,将所述目标变量划分为第一变量类型;如果否,将所述目标变量划分为第二变量类型。
3.根据权利要求1所述的A2L变量地址处理方法,其特征在于,所述由所述debug_info中读取所述第二变量类型中的所述目标变量所对应的基础地址以及元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址,包括:
在所述debug_info中基于索引关键字volatile和const对所述目标变量进行索引,直至索引得到的目标变量的类型为基础类型,判断所述基础类型中是否包含元素地址偏移信息,如果包含元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址,如果不包含所述元素偏移信息,则直接读取所述基础类型中的变量地址,将所述变量地址作为所述目标变量所对应的物理地址。
4.根据权利要求1所述的A2L变量地址处理方法,其特征在于,所述将所述ELF文件中的debug_info部分转化为当前操作系统可读文件,具体包括:
采用Linux shell软件将ELF文件中的debug_info部分转化为Windows下可读文件。
5.根据权利要求1所述的A2L变量地址处理方法,其特征在于,所述依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址,包括:
依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址,并将所述A2L文件中的目标变量的地址统一配置为包含有变量地址和变量名称的预设格式。
6.一种A2L变量地址处理装置,其特征在于,包括:
数据读取单元,用于读取A2L文件和ELF文件,所述A2L文件中具有虚拟地址,所述ELF文件中具有与所述虚拟地址相匹配的物理地址;
debug_info信息转换单元,用于将所述ELF文件中的debug_info部分转化为当前操作系统可读文件,所述debug_info中包含有调试信息,通过所述调试信息可获取全局变量的参数信息,所述参数信息包括但不限于变量名、变量地址、变量类型索引和元素偏移;
目标变量读取单元,用于获取所述A2L文件所需读取物理地址的各个目标变量的变量名和变量类型;依据所述变量类型将所述目标变量划分为第一变量类型和第二变量类型,所述第一变量类型为可直接由debug_info中读取物理地址的变量类型,所述第二变量类型为需获取元素地址偏移的变量类型;
物理地址读取单元,用于由所述debug_info中读取所述第一类变量类型中的所述目标变量所对应的物理地址;由所述debug_info中读取所述第二变量类型中的所述目标变量所对应的基础地址以及元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址;
A2L文件变量地址配置单元,用于依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址。
7.根据权利要求6所述的A2L变量地址处理装置,其特征在于,所述目标变量读取单元在依据所述变量类型将所述目标变量划分为第一变量类型和第二变量类型时,具体用于:
获取所述目标变量的变量类型;
判断所述目标变量的变量类型是否属于第一类型集合,如果是,将所述目标变量划分为第一变量类型;如果否,将所述目标变量划分为第二变量类型。
8.根据权利要求6所述的A2L变量地址处理装置,其特征在于,所述物理地址读取单元在所述debug_info中读取所述第二变量类型中的所述目标变量所对应的基础地址以及元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址时,具体用于:
在所述debug_info中基于索引关键字volatile和const对所述目标变量进行索引,直至索引得到的目标变量的类型为基础类型,判断所述基础类型中是否包含元素地址偏移信息,如果包含元素地址偏移信息,基于所述基础地址以及元素地址偏移信息计算得到所述目标变量所对应的物理地址,如果不包含所述元素偏移信息,则直接读取所述基础类型中的变量地址,将所述变量地址作为所述目标变量所对应的物理地址。
9.根据权利要求6所述的A2L变量地址处理装置,其特征在于,所述debug_info信息转换单元,具体用于:
采用Linux shell软件将ELF文件中的debug_info部分转化为Windows下可读文件。
10.根据权利要求1所述的A2L变量地址处理装置,其特征在于,所述A2L文件变量地址配置单元,具体用于:
依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址,并将所述A2L文件中的目标变量的地址统一配置为包含有变量地址和变量名称的预设格式。
CN201811607811.2A 2018-12-27 2018-12-27 一种a2l变量地址处理方法和装置 Active CN109697279B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811607811.2A CN109697279B (zh) 2018-12-27 2018-12-27 一种a2l变量地址处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811607811.2A CN109697279B (zh) 2018-12-27 2018-12-27 一种a2l变量地址处理方法和装置

Publications (2)

Publication Number Publication Date
CN109697279A true CN109697279A (zh) 2019-04-30
CN109697279B CN109697279B (zh) 2023-04-21

Family

ID=66232181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811607811.2A Active CN109697279B (zh) 2018-12-27 2018-12-27 一种a2l变量地址处理方法和装置

Country Status (1)

Country Link
CN (1) CN109697279B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262289A (zh) * 2019-07-18 2019-09-20 潍柴动力股份有限公司 A2l文件中变量的处理方法、装置和存储介质
CN112015444A (zh) * 2019-05-31 2020-12-01 北京新能源汽车股份有限公司 一种变量地址更新方法、装置及汽车
CN113760193A (zh) * 2021-08-26 2021-12-07 武汉天喻信息产业股份有限公司 用于资源受限制装置的数据读写方法、装置及指令集
CN114268514A (zh) * 2021-11-30 2022-04-01 国汽智控(北京)科技有限公司 车辆与上位机的通信方法、装置及系统
CN115576902A (zh) * 2022-11-11 2023-01-06 中国第一汽车股份有限公司 一种标定描述文件的处理方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080229150A1 (en) * 2007-03-16 2008-09-18 Etas, Inc. Address translation system for use in a simulation environment
CN102809962A (zh) * 2012-09-03 2012-12-05 同济汽车设计研究院有限公司 车载数据采集终端及车辆信息采集系统
CN103136211A (zh) * 2011-11-23 2013-06-05 北汽福田汽车股份有限公司 一种a2l文件的自动生成方法和装置
CN104636351A (zh) * 2013-11-07 2015-05-20 北汽福田汽车股份有限公司 A2l文件的生成方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080229150A1 (en) * 2007-03-16 2008-09-18 Etas, Inc. Address translation system for use in a simulation environment
CN103136211A (zh) * 2011-11-23 2013-06-05 北汽福田汽车股份有限公司 一种a2l文件的自动生成方法和装置
CN102809962A (zh) * 2012-09-03 2012-12-05 同济汽车设计研究院有限公司 车载数据采集终端及车辆信息采集系统
CN104636351A (zh) * 2013-11-07 2015-05-20 北汽福田汽车股份有限公司 A2l文件的生成方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小丑哥子: "Matlab替换A2L文件中的地址生成完整A2L文件的方法小结", 《CSDN,HTTP://BLOG.CSDN.NET/WEIXIN_43930342/ARTICLE/DETAILS/85094660》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112015444A (zh) * 2019-05-31 2020-12-01 北京新能源汽车股份有限公司 一种变量地址更新方法、装置及汽车
CN110262289A (zh) * 2019-07-18 2019-09-20 潍柴动力股份有限公司 A2l文件中变量的处理方法、装置和存储介质
CN110262289B (zh) * 2019-07-18 2022-04-26 潍柴动力股份有限公司 A2l文件中变量的处理方法、装置和存储介质
CN113760193A (zh) * 2021-08-26 2021-12-07 武汉天喻信息产业股份有限公司 用于资源受限制装置的数据读写方法、装置及指令集
CN113760193B (zh) * 2021-08-26 2024-04-02 武汉天喻信息产业股份有限公司 用于资源受限制装置的数据读写方法、装置及指令集
CN114268514A (zh) * 2021-11-30 2022-04-01 国汽智控(北京)科技有限公司 车辆与上位机的通信方法、装置及系统
CN115576902A (zh) * 2022-11-11 2023-01-06 中国第一汽车股份有限公司 一种标定描述文件的处理方法、装置、设备及介质

Also Published As

Publication number Publication date
CN109697279B (zh) 2023-04-21

Similar Documents

Publication Publication Date Title
CN109697279A (zh) 一种a2l变量地址处理方法和装置
CN104063254B (zh) 电能表在线升级方法
CN106776633B (zh) 用户可配置的自动生成a2l文件的装置和方法
CN110955661B (zh) 数据融合方法、装置、可读存储介质及电子设备
US20090106546A1 (en) Method and Software System for Configuring a Modular System
CN102880468B (zh) 一种用于ecu程序开发的代码智能提示方法及其系统
CN106951228A (zh) 版本迭代中差异的处理方法和装置
CA2740483C (en) Vehicle identification number decoder
CN104182548B (zh) 网页更新处理方法及装置
CN104714882B (zh) 代码信息处理的方法及装置
CN105988722B (zh) 数据储存方法及嵌入式系统
CN104850570B (zh) A2l文件自动生成方法及系统
CN103019666A (zh) 源代码比较设备、源代码比较方法和源代码比较程序
CN104391731B (zh) 一种基于c#的与数据类型无关的编辑方法
CN109002033A (zh) 基于uds的自动化标定系统及方法
CN113179489A (zh) 卫星终端接入管理方法、核心网、计算机装置和存储介质
CN104679500A (zh) 实体类自动生成实现方法及装置
CN109271315A (zh) 脚本代码检测方法、装置、计算机设备及存储介质
CN103235757B (zh) 基于自动化造数对输入域测试对象进行测试的装置和方法
CN107526939B (zh) 一种快速小分子结构对齐方法
CN110298112B (zh) 一种断言状态机和波形图的联合同步纠错方法、存储介质和终端
CN115543927A (zh) 造价文件的字段信息提取方法及装置、设备、存储介质
US20090030951A1 (en) Programming apparatus and automatic data structure identification method
CN110795129B (zh) 一种数据刷写方法、装置和设备
KR20220010294A (ko) 규칙 기반의 opc ua 노드 생성 시스템 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant