A2L文件简单介绍
A2L文件是一个标定的描述文件,基于文本格式,描述ECU的通信等相关的参数,以及标定,观测变量的地址以及物理值计算公式等。
A2L文件组成
简单一点理解,A2L文件由四部分组成:
1、A2L文件头(项目配置信息等,一般不随软件编译变化,除非对应参数调整)
2、标定变量描述(包含的地址信息每次编译都有可能变化)
3、观测变量描述(包含的地址信息每次编译都有可能变化)
4、其他辅助信息,转换公式等 (一般不随软件编译变化,除非对应参数调整)
关注在第2/3点:如何解决每次都有可能变化的地址信息
使用matlab等工具可以自动生成对应SWC的A2L的模板,除地址信息外,其他信息均已包含。
手工代码,则需要用户在开发阶段预先写好类似的template,在编译时仅更新其中的地址信息。
软件编译成功后的产出一般包括至少三种文件:
hex文件(可执行文件)
map文件(基于文本的描述文件,部分编译器可以基于xml格式的map文件,如hightec 编译器)。
elf文件(Executable and Linkable Format,一般用于调试目的,包含特定格式的debug信息,目前主流为Dwarf2.0 format)。
基于map文件---文本格式map
一般使用正规则表达式去匹配,获取变量名字及其对应的地址信息。
XML格式map
一般使用xml对应的解析工具,获取变量名及其对应的地址信息。
优点:
程序简单,由于map文件多数比较简单,正规则表达式,或者xml解析工具即可搞定。
缺点:
由于一般map文件只包含全局变量的地址信息,其他信息,如:结构体成员的offset;数组的类型等。
map文件的格式由编译器决定,非标准格式,不同编译器输出不同。
也即只能观测全局变量,无法观测结构体成员等。
基于ELF文件
优点:
-
信息全面,由于ELF文件包含所有的调试信息,结构体,typedef,enum等等。
-
缺点:
-
elf文件非文本文件,解析难度相对于map文件大大增加。
-
elf文件信息全面,导致解析可能耗费的时间较长。