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

黑群晖做网站一站式做网站费用

黑群晖做网站,一站式做网站费用,一键生成app软件下载,门户网站开发平台目录 1. 自定义ASAP2文件 2. asap2userlib.tlc需要修改的部分 3. 标定量观测量地址替换 3.1 由elf文件替换 3.2 由map文件替换 3.3 正则表达式#xff08;含asap2post.m修改方法#xff09; 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\s0x([0-9a-fA-f])\W(\S) \n字符表示这里表示从一个换行符开始匹配 \s任意空白字符从空白字符开始匹配 0x[0-9a-fA-f]:表示0-9a-fA-F区分大小写的任意字符 \W除字母、数字下划线外的任意字符 \S任意非空白字符 通过上述可以读取地址与变量名。 然后将变量名和地址存入到哈希表里。 注什么是hash表containers.map是什么? 1containers.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_AddressParam3 */ 那么为什么要用\w主要是后面replace要来匹配它 ${MAPFileHash($1)}表示hash表里的第一列的元素即变量名当其去\w的变量名相匹配时将hash表的值替换expression。 通过上面的表达式替换会出现如下结果 那么下次再替换的时候就不太方便必须要重新生成a2l来保证地址为0x0000为了能够多次重复替换需要将替换后的格式改为如下 因此需要将regexprep(str,expression,replace)的expression和replace进行修改其中 Expression表示用于匹配的字符我们可以看到在a2l文件里需要匹配的就是地址这一段 在最初版本中使用的是expression[addrPrefix (\w) addrSuffix] 为了能够匹配任意数字地址 将expression改为[0-9]* /\* ECU_Address(\w) \*/ 表示将匹配 任意长度数字空格/\* ECU_Address(\w) \*/ 保存之后替换a2l如下 这样我们在做开发时就可以不用再重新生成代码直接移植替换a2l即可。 使用\* 的原因 完成上述工作后将新的字符串写到a2l里 4.小结 这只是我前几年在验证标定协议栈的一个实验把模型开发、a2l生成、基础软件从上至下走了一通再加上做了一个UI界面基本上把这一套工具链缩减为编译器、matlab/simulink再加标定工具即可还是比较有成就感的分享给大家。
http://www.hkea.cn/news/14321130/

相关文章:

  • 企业网站建设公司名称做百度百科的网站
  • 网站是什么?网站外链建设是什么
  • 上网站乱码武义县建设局网站首页
  • 农机局网站建设总结网站建设制作一个网站的费用
  • 包头网站建设平台广和wordpress集成dz
  • 网站开发外包wordpress theme 检测
  • 网站做调查问卷给钱的兼职网站建设与制作培训通知
  • 网站推广服务网址网页设计与制作 教学效果
  • 对于协会的新年祝贺语网站模板wordpress后台设置
  • 网站 首页 关键词网站后台怎么更新网站
  • 有关天猫网站开发的论文盐城网站开发市场
  • 建设银行梅李分行网站家庭电脑可以做网站吗
  • 精品建设课程网站qq刷赞网站推广快速
  • 网站建设需要了解的淘宝客做的最好的网站
  • 申请免费网站公司安徽建设厅证书查询网网站
  • 青岛网站建设 上流合作建设网站协议
  • 酒店网站建设的重要性是想建个网站 用本地做服务器
  • 网站建设公司帮企业建站的目的珠海横琴建设局网站
  • 郑州小学班级网站建设东莞石排网站建设
  • 上海培训网站建设媒体网站的销售怎么做
  • 织梦如何做中英文版的网站ps做网站ui
  • 几分钟做网站微信自助建站系统
  • 那些网站反爬做的好如何申请小程序
  • 如何设计网站的主菜单ui网页设计字体
  • 外贸网站一站式服务学校官网页面设计
  • 网站建设技术入股协议iis建设个人网站
  • 岑巩网站建设服装定制一般多少钱
  • 如何给网站做优化哈尔滨专业网站建设公司
  • 网站做广告如何做帐国际知名设计公司
  • 网站加百度地图网站建设大型企业