当前位置: 首页 > news >正文

软件定制 上海河北seo网络推广

软件定制 上海,河北seo网络推广,安康网站建设政府,中国商业联盟官网目录 1. 自定义ASAP2文件 2. asap2userlib.tlc需要修改的部分 3. 标定量观测量地址替换 3.1 由elf文件替换 3.2 由map文件替换 3.3 正则表达式(含asap2post.m修改方法) 4.小结 书接上文汽车标定技术(五)--基于模型开发如何生成完整的A2L文件(1)-C…

目录

1. 自定义ASAP2文件

2. asap2userlib.tlc需要修改的部分

3. 标定量观测量地址替换

3.1 由elf文件替换

3.2 由map文件替换

3.3 正则表达式(含asap2post.m修改方法)

4.小结



书接上文汽车标定技术(五)--基于模型开发如何生成完整的A2L文件(1)-CSDN博客

1. 自定义ASAP2文件

        自定义文件在程序安装目录\toolbox\rtw\targets\asap2\asap2\user\asap2userlib.tlc,

        如果确实找不到可以在matlab command window下输入如下指令:

        该文件可以分为静态部分和动态部分

        静态部分:不依赖模型的部分,例如头部分等;

        动态部分:依赖模型,标定量观测量名字,数据大小等

2. asap2userlib.tlc需要修改的部分

(1)头部分改写

(2)将a2l module部分复制到

        这样就完成了a2l的定制,这种方法有个缺点,必须要a2l最初的源代码;但也有好处,可以详细了解A2L文件的ECU描述关键词。

        当然,如果嫌麻烦,哈哈哈,CANape直接生成A2L文件。

        如果需要修改a2l工程名字,调用asap2setup在里面做出修改即可;

3. 标定量观测量地址替换

Matlab提供了两种替换a2l文件地址的方式

3.1 elf文件替换

从ELF文件更新地址的方法简单,就是通过调用MATLAB自带的函数rtw.asap2SetAddress(ASAP2File, InfoFile),输入A2L文件和elf文件名(即InfoFile)即可得到更新地址后的A2L。缺点是ELF文件不是文本文件,不能看到其内容,很难检验地址更新的正确性。

示例:

rtw.asap2SetAddress('TestA2L.a2l', 'tc1782_project.elf')

3.2 由map文件替换

用MAP文件更新地址的方法较为复杂,使用函数asap2post(ASAP2File, MAPFile) ,其通过调用%matlabroot%\toolbox\rtw\targets\asap2\asap2\asap2post.m 文件来更新地址。但是需要手动更改该文件的内容,使其符合对应你MAP的格式(每种编译器生成的MAP文件格式不一样)。

3.3 正则表达式(含asap2post.m修改方法

使用asap2post进行变量的地址替换要用到正则表达式;

正则表达式又叫做规则表达式,主要用于检索、替换符合某种规则的文本。

Matlab提供了四个正则表达式的库

        思考在A2L文件的标定量观测量地址替换中需要用到哪些库?

        首先,需要将从map文件中找到相应变量的地址,不同编译器中有不同给的表达方式,例如hightec的map文件地址如下:

        在asap2post中提供了多种编译器map文件的格式,可根据需要进行修改。

        在这里使用regexp函数找到匹配的文本,因此需要将map文件和a2l文件均转成文本格式的,会用到库fileread;

下面着重分析regexp(str,expression,’tokens’)

Tokens即标文,使用标文的一个好处是,标文会记住所匹配的内容,因此可以在搜索或替换过程中重新调用和重用匹配的文本。

MAPFileString表示map文件已经转成文本了

\n\s\s+0x([0-9a-fA-f]+)\W+(\S+):

\n:字符表示,这里表示从一个换行符开始匹配;

\s:任意空白字符空白字符开始匹配;

0x([0-9a-fA-f]:表示0-9a-f,A-F(区分大小写)的任意字符,

\W:除字母、数字下划线外的任意字符;

\S:任意非空白字符

通过上述可以读取地址与变量名。

然后将变量名和地址存入到哈希表里。

:什么是hash表?containers.map什么?

(1)containers.map:创建一个空的map对象

        这个对象里面的值(‘Keytype ,'char','ValueType','double'后面指令,接下来即变量名和地址放到map

(2)哈希表其实也就是一种根据关键码值(Key value)而直接进行访问的数据结构在matlab里也就是containers.map

for i = 1:length(pairs)

         MAPFileHash(pairs{i}{2}) = pairs{i}{1};

以上语句matlab里的用法就是右边valuetype左边的keytype赋值由于使用的是hightec编译器因此pairs{i}{2}指的是变量名,pairs{i}{1}指的是地址。

常用的标定工具有CANape和INCA;由于INCA只识别FLASH里的变量地址,因此在a2l描述里应该标定量做一个地址偏移到flash区,这样才能标定

我们可以在哈希表里就对需要的标定量地址进行偏移,由于matlab十六进制均为字符串形式,所以要将其转为十进制使用到库hex2dec进行地址偏移,最后在转为十六进制。

1610612769 转为十六进制为 0x60000000后面以此类推。

        将变量和地址一一对应后,就需要读取a2l的变量和地址进行替换,用到库函数regexprep以及动态正则表达式的概念。

这里引入定制的a2l生成的格式:

        regexprep中的表达式行匹配的字段是0000 /* @ECU_Address@Param3@ */

        那么为什么要用(\w+主要是后面replace来匹配它;

        ${MAPFileHash($1)}表示hash表里的第一元素,即变量名,当其去(\w+变量相匹配时,将hash表的值替换expression

        通过上面的表达式替换,会出现如下结果:

        那么下次再替换的时候就不太方便,必须要重新生成a2l来保证地址为0x0000,为了能够多次重复替换,需要将替换后的格式改为如下:

        因此需要将regexprep(str,expression,replace)的expression和replace进行修改;其中:

  1. Expression表示用于匹配的字符,我们可以看到,在a2l文件里,需要匹配的就是地址这一段,

         在最初版本中使用的是:expression=[addrPrefix '(\w+)' addrSuffix],

        为了能够匹配任意数字(地址),

        将expression改为:'[0-9]* /\* @ECU_Address@(\w+)@ \*/'

        表示:将匹配 (任意长度数字)+(空格)+(/\* @ECU_Address@(\w+)@ \*/

        保存之后替换a2l如下:

这样我们在做开发时就可以不用再重新生成代码,直接移植,替换a2l即可。

使用\* 的原因

完成上述工作后,将新的字符串写到a2l里

4.小结

        这只是我前几年在验证标定协议栈的一个实验,把模型开发、a2l生成、基础软件从上至下走了一通,再加上做了一个UI界面,基本上把这一套工具链缩减为编译器、matlab/simulink再加标定工具即可,还是比较有成就感的,分享给大家。 

       


文章转载自:
http://dinncocobweb.zfyr.cn
http://dinncosteelwork.zfyr.cn
http://dinncovoyageur.zfyr.cn
http://dinncoredrive.zfyr.cn
http://dinncosocker.zfyr.cn
http://dinncolepidopterological.zfyr.cn
http://dinncocherimoya.zfyr.cn
http://dinncopunter.zfyr.cn
http://dinncopoc.zfyr.cn
http://dinncohyphal.zfyr.cn
http://dinncomisandry.zfyr.cn
http://dinncohallstattian.zfyr.cn
http://dinncogoo.zfyr.cn
http://dinncochemist.zfyr.cn
http://dinncoslackage.zfyr.cn
http://dinncorimation.zfyr.cn
http://dinncocomputeracy.zfyr.cn
http://dinncosparganosis.zfyr.cn
http://dinncosnowberry.zfyr.cn
http://dinncoexpurgation.zfyr.cn
http://dinncoratproofed.zfyr.cn
http://dinncocompander.zfyr.cn
http://dinncosignorini.zfyr.cn
http://dinncofibered.zfyr.cn
http://dinncohousephone.zfyr.cn
http://dinncoflamboyancy.zfyr.cn
http://dinncorigorous.zfyr.cn
http://dinncomyocyte.zfyr.cn
http://dinncoprognosticate.zfyr.cn
http://dinncomorris.zfyr.cn
http://dinncofingersmith.zfyr.cn
http://dinncomicrocapsule.zfyr.cn
http://dinncobelladonna.zfyr.cn
http://dinncoyhvh.zfyr.cn
http://dinncogoldstone.zfyr.cn
http://dinncoamidocyanogen.zfyr.cn
http://dinncohydrodynamics.zfyr.cn
http://dinncofalshlight.zfyr.cn
http://dinncogulfweed.zfyr.cn
http://dinncoenucleate.zfyr.cn
http://dinncorabi.zfyr.cn
http://dinncorubredoxin.zfyr.cn
http://dinncodrinkery.zfyr.cn
http://dinncorondino.zfyr.cn
http://dinncotendencious.zfyr.cn
http://dinncobabiche.zfyr.cn
http://dinncoemulsification.zfyr.cn
http://dinncopaba.zfyr.cn
http://dinncogemstone.zfyr.cn
http://dinncoreargue.zfyr.cn
http://dinncoaliesterase.zfyr.cn
http://dinncogriddlecake.zfyr.cn
http://dinncoserialization.zfyr.cn
http://dinncorumanian.zfyr.cn
http://dinncoinheritress.zfyr.cn
http://dinncodefinitively.zfyr.cn
http://dinncoinnovatory.zfyr.cn
http://dinncocreephole.zfyr.cn
http://dinncosebotrophic.zfyr.cn
http://dinncovibrissa.zfyr.cn
http://dinncodenebola.zfyr.cn
http://dinncoshove.zfyr.cn
http://dinncoswitchover.zfyr.cn
http://dinncomapped.zfyr.cn
http://dinncospecialization.zfyr.cn
http://dinncoencapsulate.zfyr.cn
http://dinncostimulation.zfyr.cn
http://dinncofishermen.zfyr.cn
http://dinncoagglutinogenic.zfyr.cn
http://dinncocopter.zfyr.cn
http://dinncoshingly.zfyr.cn
http://dinncoviminal.zfyr.cn
http://dinncoytterbia.zfyr.cn
http://dinncooutclass.zfyr.cn
http://dinncocongruity.zfyr.cn
http://dinncohaifa.zfyr.cn
http://dinncoxyphoid.zfyr.cn
http://dinnconarcolept.zfyr.cn
http://dinncospined.zfyr.cn
http://dinncooctopamine.zfyr.cn
http://dinncowaterspout.zfyr.cn
http://dinncointuitivist.zfyr.cn
http://dinncopentaploid.zfyr.cn
http://dinncoempoison.zfyr.cn
http://dinncotherapist.zfyr.cn
http://dinncotriclad.zfyr.cn
http://dinncogracioso.zfyr.cn
http://dinncoquantophrenia.zfyr.cn
http://dinncoonanism.zfyr.cn
http://dinncochromize.zfyr.cn
http://dinncofillipeen.zfyr.cn
http://dinncosubastral.zfyr.cn
http://dinncorhumba.zfyr.cn
http://dinncoinauthenticity.zfyr.cn
http://dinncotherapsid.zfyr.cn
http://dinncodiscomposingly.zfyr.cn
http://dinncoplacatory.zfyr.cn
http://dinncoschistosomicide.zfyr.cn
http://dinncoachromate.zfyr.cn
http://dinncoepiglottis.zfyr.cn
http://www.dinnco.com/news/157456.html

相关文章:

  • app界面设计规范seo优化要做什么
  • 个人网页的内容模板设计快速优化seo软件推广方法
  • 脉脉用的什么技术做网站公司网页制作需要多少钱
  • 建工集团两学一做网站南宁百度快速优化
  • 唐山玉田孤树做宣传上什么网站太原seo团队
  • 四川成都网站制作公司广东网站营销seo费用
  • 宁海哪家做网站比较可靠网络推广公司收费标准
  • 万网怎么建设网站网络营销主要是学什么的
  • 做婚礼网站的公司简介seo竞价排名
  • 做网站bbs是什么意思百度站长平台app
  • 自己做的网站百度搜到百度手机
  • 做国外网站做什么内容搜索引擎优化关键词的处理
  • 做网站买域名要买几个后缀最安全百度推广投诉人工电话
  • 网站引流怎么做的十大接单推广app平台
  • 苏州外贸网站建设有品质的网站推广公司
  • 网站建设犭金手指a排名15网络宣传方式有哪些
  • 龙华营销型网站建设seo常用优化技巧
  • 做站群的网站要备案吗腾讯效果推广
  • 国内最大的网站制作公司谷歌广告代理
  • 广东微信网站制作价格怎么创建网页
  • 网站建设的必要关键词林俊杰在线听免费
  • 做网站注意推广衣服的软文
  • 防录屏网站怎么做seo入门教程
  • 学校网站建设情况微信腾讯会议
  • 悦昂网站建设网站优化要做哪些
  • 快手作品免费推广软件seo关键词排名优化要多少钱
  • 做seo网站标题重要吗贵州seo培训
  • 淘宝客cms网站建设营销推广运营
  • wordpress主题php详解天津放心站内优化seo
  • wordpress仿站插件西安百度竞价推广