引言
  基于模型的开发(MBD)方式在汽车电子嵌入式软件行业中发展迅速。关于其N多好处不去瞎说了,自然有mathwork的工作人员去宣传。基于模型的开发在模型生成代码的过程中,如果软件工程师在matlab开发环境中定义了变量的相关属性,应用层软件中定义的观测量和表达量将生成在一个matlab修改配置文件定义格式的A2L文件(也可以自己定义其生成格式,具体可参见另一篇文章:https://blog.csdn.net/weixin_43930342/article/details/84936156)。
  如果采用matlab默认的配置生成的A2L,此时生成的A2L文件中变量的地址为空没有包含控制器与上位机通讯的CCP配置的头文件部分(涉及BSW底层CCP协议的实现)。如果要运用此A2L文件进行标定测试则需要完成上述两部分内容。
  
  matlab提供了一些方法,现将其中两种比较常用的方法介绍如下:
一、基于elf文件生成A2L
  编译器在完成C代码的编译链接过程后将会生成可刷写的文件(.S19或者.hex)。随之一起生成的还包括map文件以及elf文件。
  关于elf文件的介绍可百–度。
  输入文件:c代码编译后生成的elf文件,matlab生成A2L文件,CCP协议相关的header文件
m语言代码:

A2l_Raw=[build_root_path,'\A2L\Input\RawA2L\EC30.a2l'];  %build_root_path is the project path
Elf_file=[build_root_path,'\Bin\YX_EC30.elf'];
rtw.asap2SetAddress(A2l_Raw,Elf_file);

此方法最为简单,调用matlab自带函数rtw.asap2SetAddress即可。由于elf文件不易打开,所以不易检查替换地址的准确性。

二、基于map文件生成A2L
  此方法中的输入文件与ELF文件相同,只是输入的elf文件变成map文件。
  直接上代码:
  此部分代码为调用asap2post函数的使用方法

ASAP2File = 'C:\MyCowin_Work\Matlab_Project\TEST\TEST\EC30.a2l';
MAPFile = 'C:\MyCowin_Work\Matlab_Project\TEST\TEST\YX_EC30.map';
asap2post(ASAP2File, MAPFile);

接下来附上asap2post函数代码
可以通过修改regexp正则表达式内容匹配不同的编译器生成的不同格式的map文件。
核心正则表达式匹配代码:

 function MAPFileHash = getSymbolTable1(MAPFileString) pairs = regexp(MAPFileString, '\n\s*(Ve\w{4}_\w+|Ke\w{4}_\w+|Kt\w{4}_\w+|Ka\w{4}_\w+|ka\w{4}_\w+)\s+([0-9a-fA-F]+)\W','tokens');%match windriver compiler MAP file% Store symbol names and corresponding symbol values into a hash tableMAPFileHash = containers.Map;for i = 1:length(pairs)MAPFileHash(pairs{i}{1}) = pairs{i}{2};end
end

Matlab替换A2L文件中的地址生成完整A2L文件的方法小结相关推荐

  1. qmoc文件_Qt中Q_OBJECT与生成的moc文件的作用

    Qt中Q_OBJECT与生成的moc文件的作用 一.先来了解Q_OBJECT 只有继承了QObject类的类,才具有信号槽的能力.所以,为了使用信号槽,必须继承QObject.凡是QObject类(不 ...

  2. matlab将求解值导出数据,MATLAB之将mat中的数据导出到Excel文件

    MATLAB之将mat中的数据导出到Excel文件 原始文档: https://www.yuque.com/lart/tools/cnedve 文章目录 MATLAB之将mat中的数据导出到Excel ...

  3. 批量替换一个文件中的文件名,例如将文件夹中s**_abnormal.jpg文件修改为s**_abnor.jpg

    文章涉及到StringAbout::开头的函数具体实现参考:string与Cstring字符串类型转换和其他操作总结 CProcessFile::开头的函数实现参考:文件读写操作工具类CProcess ...

  4. java 更改excel文件名称_根据Excel文件中的内容,修改指定文件夹下的文件名称

    问题:根据Excel文件中内容,把文件名称由第2列,改为第1列.比如:把文件"123.jpg"修改为"1.jpg". aaarticlea/png;base64 ...

  5. python读txt文件 数组-python将txt等文件中的数据读为numpy数组的方法

    实际中,很多数据都是存为txt文件.csv文件等,但是在程序中处理的时候numpy数组或列表是最方便的.本文简单介绍读入txt文件以及将之转化为numpy数组或列表的方法. 1 将txt文件读为lis ...

  6. 在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你

    在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你 目录 在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你 1.文章中的标题较多,每个单独调整格式太费劲,这里我们用一 ...

  7. php 多个文件,PHP实现将多个文件中的内容合并为新文件的方法示例

    本文实例讲述了PHP实现将多个文件中的内容合并为新文件的方法.分享给大家供大家参考,具体如下: function test() { $hostdir= iconv("utf-8", ...

  8. JS文件中加载jquery.js(JS文件添加其他JS文件)

    最近有一个需求: 1.在一个html中只能引入一个JS文件 不能有JS代码和其他JS文件的引入 2.这个JS文件中 还要引入其他的JS文件 3.所有JS功能都写在这个JS文件中 这些代码用到了jque ...

  9. python怎么读取txt文件数据保存数组中-python将txt等文件中的数据读为numpy数组的方法...

    实际中,很多数据都是存为txt文件.csv文件等,但是在程序中处理的时候numpy数组或列表是最方便的.本文简单介绍读入txt文件以及将之转化为numpy数组或列表的方法. 1 将txt文件读为lis ...

最新文章

  1. 互联网协议 — HTTP/3 超文本传输协议第 3 版
  2. 智能拨号的联系人快速模糊匹配的算法
  3. springmvc二十三:日期格式化
  4. php 判断PC 还是 telphone 访问网站
  5. Android Flutter 内存机制初探
  6. android webview 获取图片,Android – 保存WebView中的图片
  7. indices should be one-based and in ascending order
  8. python 链表倒数第k个节点_链表-删除单链表中倒数第k个节点
  9. android最简单的更换主题,教你更换Android手机主题
  10. 汇编学习--7.10--程序编写
  11. kitti数据集坐标转换
  12. VS2010 配置PCL1.6.0AII in one 无法启动程序ALL_BUILD
  13. Mac Os 安装配置Maven以及IntelliJ IDEA Maven使用
  14. JN5169 Bootload 烧录过程和DIY烧录程序(一)
  15. 宝塔面板网站解决跨域问题
  16. 3W 字 Docker 容器技术大科普
  17. jQuery 实现消消乐
  18. 2011年养成的一个工作习惯
  19. 最快速的文件传输软件,解析镭速文件传输软件
  20. java thread 匿名_Java 匿名内部类

热门文章

  1. 苹果cms模板_苹果cms怎么添加TV电视直播栏目?
  2. [ 浅谈web网站验证码生成方案之一 ]
  3. 阿里云 导入 mysql_阿里云服务器怎么导入mysql数据库
  4. Android 录音实现(MediaRecorder)
  5. 【OpenCV】视频行人检测
  6. Windows中mfc120.dll缺少的解决方法
  7. Adobe注销账户登录
  8. iOS 获取手机型号
  9. 使用 Typora 编辑 Markdown 文件时插入链接的方式
  10. centOS6.5 安装后无法启动无线上网