文章目录
- 前言
- 一、配置DID存储功能
- 1. 新建Ram memory
- 2. 新建NvM Block Needs
- 3. 检查
- 二、关联client/server接口
- 1. 关联
- 2. 生成代码并验证
- 总结
前言
本系列主要基于DaVinCi工具链来展开具体DID读写的配置以及最终实现。
DID读写功能实现流程包括如下几点:
1, CDD准备 2, 工具链配置 3, 代码实现 4, 验证结果
本文讲述流程2
话不多说,走你~
一、配置DID存储功能
书接上文《AutoSar实战》读写DID之一:CDD准备,我们已经完成了CDD文件创建DID 0x6666,以及工具链同步的操作。若要实现DID的写入功能肯定离不开存储。这里的存储是指通过诊断指令2E服务将数据存储在非易性存储中 (NvM) ,因此章节一是对其存储做相关配置。
1. 新建Ram memory
打开DaVinci Developer,找到应用层诊断SWC。新建Ram数组
配置项:
name: NvMShw_6666_ChunFengYouXin。
Data Type: Dcm_Data4ByteType(4字节)。
NvM Block Need: 先保留,后面我们新建一个,和Ram关联下即可。
2. 新建NvM Block Needs
1)Services Needs
2)创建名称
3)配置自动创建Need name
4)配置错误检测
5)配置上电读取,下电存储
6)关联步骤1 创建的Ram数组
7)建立ROM的数组默认值
3. 检查
1)检查并保存DaVinci Developer(点击保存之后,DaVinci Configurator会相应的更新,如2))
2)打开DaVinci Configurator,并更新。
点击同步,下图红框
3)检查NvM模块是否配置正确,/NvM/NvMBlockDescriptors/AppDiagDID_6666_ChunFengYouXin
修改Block长度为 4字节 (没有同步更新完全)
勾选use Service Ports,并同步更新
~
二、关联client/server接口
1. 关联
1) 将DCM模块的DID关联接口至应用层诊断SWC,关联成功之后,会在SWC中创建相应的函数接口
2)将NvM模块的DID关联接口至应用层诊断SWC
3)在SWC中建立DID的access point
打开DaVinci Developer,找到写的runable,并创建Access Points
点击保存DaVinci Developer。并回到DaVinci Configurator同步下。
2. 生成代码并验证
1)生成代码
2)打开代码,验证,接口是否生成成功。如下图
诊断22服务读DID 函数接口,当ECU收到诊断指令 22 66 66 时,就会进入该函数接口
诊断2E服务 写DID函数接口,当ECU收到诊断指令 2E 66 66 (FF FF FF FF ) 时,就会进入该函数接口。
总结
博主也是AutoSar小白,如果哪里表达的有问题,还请大佬们指点指点哈。接下来,让我们在下章关于代码具体实现的博文再相会哈~