A2L变量地址抓取

本文介绍如何在MATLAB中使用asap2post函数从MAP文件中抓取变量地址,以填充由MBD生成的空地址A2L文件。详细解析了asap2post函数的工作流程,包括参数检查、文件读取、正则表达式匹配及地址替换,最终生成包含真实地址信息的新A2L文件。
摘要由CSDN通过智能技术生成

在matlab中抓取A2L变量地址

在标定时我们需要A2L文件提供变量信息,而通过MBD生成的A2L中变量的地址是空的,如下图所示:
在这里插入图片描述

在matlab中有一个自带的函数 asap2post(ASAP2File, MAPFile); 能够将MAP文件中变量的地址提取出来并替换掉上图中对应变量的空地址。其中两个输入参数ASAP2File、MAPFile分别为a2l和map文件的文件路径:

ASAP2File = 'C:\Users\Luo\Desktop\Grab_Variable.a2l';
MAPFile = 'C:\Users\Luo\Desktop\ADC.map';
asap2post(ASAP2File, MAPFile);

然而并不是有了两个文件上来就能直接成功生成最终拥有地址的A2L文件,因为不同编译器生成的MAP文件有所不同,需要对asap2post函数中的正则表达式做出相应的修改才能成功抓取变量。下面我先简要介绍一下函数内容,了解下大概的运作流程,函数内容如下

function asap2post(ASAP2File, MAPFile)

if nargin~=2
    DAStudio.error('RTW:asap2:invalidInputParam',mfilename);
end

addrPrefix = '0x0000 \/\* @ECU_Address@';  %前缀名
addrSuffix = '@ \*\/';                     %后缀

if exist(ASAP2File,'file')
    ASAP2FileString = fileread(ASAP2File);%将文本以txt格式读取
else
    DAStudio.error('RTW:asap2:UnableFindFile',ASAP2File);
end

% Extract contents of MAP file
if exist(MAPFile,'file')
    MAPFileString = fileread(MAPFile);
else
    DAStudio.error('RTW:asap2:UnableFindFile',MAPFile);
end

MAPFileHash = getSymbolTable1(MAPFileString) ; 

newASAP2FileString = regexprep(ASAP2FileString,
  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值