[发明专利]一种A2L变量地址处理方法和装置在审
申请号: | 201811607811.2 | 申请日: | 2018-12-27 |
公开(公告)号: | CN109697279A | 公开(公告)日: | 2019-04-30 |
发明(设计)人: | 许晓梦;宋炳雨;刘硕;何晓明;李峰 | 申请(专利权)人: | 潍柴动力股份有限公司 |
主分类号: | G06F17/22 | 分类号: | G06F17/22 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 261061 山东省潍坊*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 目标变量 变量类型 读取 物理地址 方法和装置 变量地址 基础地址 偏移信息 元素地址 读取效率 操作系统 可读 更新 转化 | ||
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部分转化为当前操作系统可读文件,具体包括:
采用Linuxshell软件将ELF文件中的debug_info部分转化为Windows下可读文件。
5.根据权利要求1所述的A2L变量地址处理方法,其特征在于,所述依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址,包括:
依据读取到的物理地址更新所述A2L文件中的目标变量的所对应的地址,并将所述A2L文件中的目标变量的地址统一配置为包含有变量地址和变量名称的预设格式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于潍柴动力股份有限公司,未经潍柴动力股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811607811.2/1.html,转载请声明来源钻瓜专利网。