一种固定嵌入式软件变量地址的方法及系统与流程

文档序号:37380762发布日期:2024-03-22 10:33阅读:11来源:国知局
一种固定嵌入式软件变量地址的方法及系统与流程

本发明涉及数据处理,具体涉及一种固定嵌入式软件变量地址的方法及系统。


背景技术:

1、目前,在汽车控制软件开发领域,汽车电子控制单元的软件、电池管理单元的软件等均需要对数据进行标定和测量,并且,标定和测量的数据一般以aasam mcd-2mc格式存储,文件名称以.a2l结尾,简称a2l文件。a2l是控制器的描述文件,标定工具可以根据a2l文件提供的消息,读取电控单元中的可测量量和标定参数的数值,并按用户的要求标定参数数值以优化控制策略。

2、具体地,由于a2l文件的参数地址是虚拟地址,需要从编译生成的map(linker mapfile)文件(映射文件)中找到其真实的地址并替换后,才能用于标定。以bms软件为例,现有的bms软件在每次编译后会生成map文件,再通过map文件生成a2l文件。但是,由于不同编译器生成的map文件格式不一致,从map中获取变量地址的方式则不统一,生成的a2l文件也不统一,以致于在软件开发过程中,会生成多个a2l文件,不便于a2l文件的管理与调用。


技术实现思路

1、本发明意在提供一种固定嵌入式软件变量地址的方法及系统,能够通过固定嵌入式软件变量地址,统一a2l文件,有助于降低a2l文件的管理及调用难度,提高软件开发效率。

2、为达到上述目的,本发明提供的基础方案为:

3、方案一

4、一种固定嵌入式软件变量地址的方法,包括以下步骤:

5、步骤1,在软件编译前,按照预设调整策略对编译链接文件进行修改;所述预设调整策略包括,在编译链接文件中定义多个ram地址段;

6、步骤2,利用编译链接文件,将目标模块的全局变量分别关联至ram地址段中,使得各个目标模块中的变量保持顺序存储;

7、步骤3,进行软件编译并获得map文件;基于map文件生成a2l文件。

8、进一步,所述目标模块包括设于软件中的soc模块、io管理模块和高压管理模块。

9、进一步,在上述步骤中,当不增加全局变量并在步骤3中重新进行软件编译时,生成的多个map文件对应一个a2l文件。

10、进一步,在上述步骤中,当增加全局变量并在步骤3中重新进行软件编译时,生成的a2l文件中附加有增加的全局变量对应的变量地址。

11、进一步,当增加全局变量并在步骤3中重新进行软件编译时,包括以下步骤:

12、s1,将新增的全局变量放在当前目标模块中的保留结构体中,并重新编译软件;

13、s2,通过脚本计算新增的全局变量在保留结构体中的逻辑地址,并结合保留结构体变量基地址计算出新增变量在内存中的实际地址;

14、s3,通过脚本获取代码源文件中新增的全局变量的变量名并与s2计算的地址一起填充到a2l文件中;

15、在上述步骤中,只在保留结构体中新增全局变量,且不修改编译链接文件。

16、进一步,在增加全局变量时,按照递增方式,依次在当前目标模块中的保留结构体中增加变量。

17、进一步,在编译链接文件中定义多个ram地址段时,采用的定义方式为:给每个目标模块定义一个ram地址段,且命名规则设定为目标模块名+_ram_section。

18、进一步,所述ram地址段中,定义有全局结构体;所述全局结构体中包括有多个元素,各个元素对应定义一种变量类型。

19、进一步,在将各个模块的全局变量分别关联至ram地址段中时,每个模块的全局变量均定义在全局结构体中。

20、方案二

21、一种固定嵌入式软件变量地址的系统,用于执行如方案一所述的一种固定嵌入式软件变量地址的方法;包括调整模块、关联模块和输出模块;所述调整模块用于在软件编译前,按照预设调整策略对编译链接文件进行修改;所述预设调整策略包括,在编译链接文件中定义多个ram地址段;所述关联模块用于利用编译链接文件,将各个模块的全局变量分别关联至ram地址段中,使得各个模块中的变量保持顺序存储;所述输出模块用于进行软件编译并获得map文件;基于map文件生成a2l文件。

22、本发明的工作原理及优点在于:

23、本发明提供的一种固定嵌入式软件变量地址的方法及系统,通过在软件编译前对编译链接文件进行预先的调整,再利用结构体的顺序存储特性,将各个模块的全局变量分别关联至ram地址段中并顺序存储,能够通过预先的编译设置,使得后续软件编译生成的软件变量地址位于已定义好的ram地址段中,从而达到固定变量地址的目的。进一步地,在上述操作条件下,在重新编译软件时,生成的变量地址不会改变,不需要重新制作a2l文件,相当于多个烧录文件对应一个a2l文件,进而能够实现统一a2l文件,有助于降低a2l文件的管理及调用难度,提高软件开发效率。并且,即使全局变量发生变化,原始的变量地址仍然保持不变,新增的全局变量对应的新增的变量地址则添加至a2l文件中。本方案能够适应于不同的软件编译情况,实现对a2l文件的统一或数量简化。

24、特别的是,相较于现有的一些a2l文件处理方法,现有方法中往往是对a2l文件本身进行分析和处理,例如通过解析a2l文件,对a2l文件进行二次定义与编辑等,此类方法虽然能够将多个a2l文件合并为一个总的a2l文件,但是在具体运作中需要对每个a2l文件逐一破解拆分后再重新合并汇总,操作步骤较多,处理效率不高。而本方案中,则与现有方法不同,选择了从软件编译角度出发,不再局限于对a2l文件本身的二次处理。本方案主要关注了与a2l文件直接关联的map文件,并自软件编译步骤进行调整,能够根源性地解决编译后的map文件变量地址变化的问题,进而根源性地解决受变量地址变化影响而产生的a2l文件不一致的问题,使得软件编译生成的文件能够自动归属于一个固定通用的a2l文件,无需再重复进行二次编辑与归类。本方案的运作方式更简洁,运作效率更高,并且,能够自根源上合并a2l文件,有助于提高文件利用效率。



技术特征:

1.一种固定嵌入式软件变量地址的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种固定嵌入式软件变量地址的方法,其特征在于,所述目标模块包括设于软件中的soc模块、io管理模块和高压管理模块。

3.根据权利要求1所述的一种固定嵌入式软件变量地址的方法,其特征在于,在上述步骤中,当不增加全局变量并在步骤3中重新进行软件编译时,生成的多个map文件对应一个a2l文件。

4.根据权利要求1所述的一种固定嵌入式软件变量地址的方法,其特征在于,在上述步骤中,当增加全局变量并在步骤3中重新进行软件编译时,生成的a2l文件中附加有增加的全局变量对应的变量地址。

5.根据权利要求4所述的一种固定嵌入式软件变量地址的方法,其特征在于,当增加全局变量并在步骤3中重新进行软件编译时,包括以下步骤:

6.根据权利要求4所述的一种固定嵌入式软件变量地址的方法,其特征在于,在增加全局变量时,按照递增方式,依次在当前目标模块中的保留结构体中增加变量。

7.根据权利要求1所述的一种固定嵌入式软件变量地址的方法,其特征在于,在编译链接文件中定义多个ram地址段时,采用的定义方式为:给每个目标模块定义一个ram地址段,且命名规则设定为目标模块名+_ram_section。

8.根据权利要求7所述的一种固定嵌入式软件变量地址的方法,其特征在于,所述ram地址段中,定义有全局结构体;所述全局结构体中包括有多个元素,各个元素对应定义一种变量类型。

9.根据权利要求8所述的一种固定嵌入式软件变量地址的方法,其特征在于,在将各个模块的全局变量分别关联至ram地址段中时,每个模块的全局变量均定义在全局结构体中。

10.一种固定嵌入式软件变量地址的系统,其特征在于,用于执行如权利要求1-9任一项所述的一种固定嵌入式软件变量地址的方法;包括调整模块、关联模块和输出模块;所述调整模块用于在软件编译前,按照预设调整策略对编译链接文件进行修改;所述预设调整策略包括,在编译链接文件中定义多个ram地址段;所述关联模块用于利用编译链接文件,将各个模块的全局变量分别关联至ram地址段中,使得各个模块中的变量保持顺序存储;所述输出模块用于进行软件编译并获得map文件;基于map文件生成a2l文件。


技术总结
本发明涉及数据处理技术领域,公开了一种固定嵌入式软件变量地址的方法及系统,包括以下步骤:步骤1,在软件编译前,按照预设调整策略对编译链接文件进行修改;所述预设调整策略包括,在编译链接文件中定义多个RAM地址段;步骤2,利用编译链接文件,将目标模块的全局变量分别关联至RAM地址段中,使得各个目标模块中的变量保持顺序存储;步骤3,进行软件编译并获得MAP文件;基于MAP文件生成A2L文件。本发明能够通过固定嵌入式软件变量地址,统一A2L文件,有助于降低A2L文件的管理及调用难度,提高软件开发效率。

技术研发人员:陶小波,周乾隆,颜超,曾杨,任强
受保护的技术使用者:重庆赣锋动力科技有限公司
技术研发日:
技术公布日:2024/3/21
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1