[AutoSar]BSW_Diagnostic_004 ReadDataByIdentifier(0x22)的配置和实现
目录
- 关键词
- 平台说明
- 背景
- 一、配置DcmDspDataInfos
- 二、配置DcmDspDatas
- 三、创建DcmDspDidInfos
- 四、创建DcmDspDids
- 五、总览
- 六、创建一个ASWC
- 七、mapping DCM port
- 八、打开davinci developer,创建runnabl
- 九、生成代码
关键词
嵌入式、C语言、autosar、OS、BSW、UDS、diagnostic
平台说明
| 项目 | Value |
|---|---|
| OS | autosar OS |
| autosar厂商 | vector , EB |
| 芯片厂商 | TI 英飞凌 |
| 编程语言 | C,C++ |
| 编译器 | HighTec (GCC) |
| autosar版本 | 4.3.1 |
| 参考文档 | TechnicalReference_Dcm.pdf AUTOSAR_SRS_DiagnosticLogAndTrace.pdf AUTOSAR_SWS_DiagnosticCommunicationManager.pdf AUTOSAR_SWS_DiagnosticEventManager.pdf AUTOSAR_SWS_FunctionInhibitionManager.pdf- 【14229-1.2.3】,【15765-1.2.3.4】. 【11898】 |

>>>>>>>>>>>>>>>>>>>>>>>>>回到总目录<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
| 缩写 | 描述 |
|---|---|
| DEM | Diagnostic Event Manager |
| DET | Development Error Tracer |
| DDM | Diagnostic Data Modifier |
| DCM | Diagnostic Communication Manager |
| LSB | least significant byte |
| MSB | most significant byte |
背景
项目已经导入过CDD文件,有基础的的DSD,DSL,DSP配置。 可以通过编写CDD文件实现本文的功能,这里将手动配置。
以0XF1 90 为例。
一、配置DcmDspDataInfos

二、配置DcmDspDatas

三、创建DcmDspDidInfos

四、创建DcmDspDids


五、总览
可在左侧功能栏快捷窗口 Daignostatics中总览。

六、创建一个ASWC
在davinci developer中创建一个ASWC 用于所有诊断相关的服务操作。这里创建CtDiagHandler,保存同步到CFG中,然后关闭davinci developer软件。

七、mapping DCM port

八、打开davinci developer,创建runnabl


九、生成代码
在Dcm_Lcfg.c中:
,{ ((Dcm_DidMgrOpFuncType)(Rte_Call_DataServices_Data_F190_VehicleIdentificationNumber_ReadData)), 17u, 17u,0x0002u} /* DID: 0xF190 */ /* PRQA S 0313 */ /* MD_Dcm_0313 */
在Rte_Dcm.h中:
# define Rte_Call_DataServices_Data_F190_VehicleIdentificationNumber_ReadData DataServices_Data_F190_VehicleIdentificationNumber_ReadData
在CtDiagHandler.c中:
FUNC(Std_ReturnType, CtDiagHandler_CODE) DataServices_Data_F190_VehicleIdentificationNumber_ReadData(Dcm_OpStatusType OpStatus, P2VAR(uint8, AUTOMATIC, RTE_CTDIAGHANDLER_APPL_VAR) Data) /* PRQA S 0624, 3206 */ /* MD_Rte_0624, MD_Rte_3206 */
{
/*********************************************************************************************************************** DO NOT CHANGE THIS COMMENT! << Start of runnable implementation >> DO NOT CHANGE THIS COMMENT!* Symbol: DataServices_Data_F190_VehicleIdentificationNumber_ReadData (returns application error)*********************************************************************************************************************/Std_ReturnType ret = E_NOT_OK;uint8 VIN_number = 17U;uint8 i;// Read default valuefor (i = 0; i < VIN_number ; i++){Data[i] = 0x00; }return RTE_E_OK;/*********************************************************************************************************************** DO NOT CHANGE THIS COMMENT! << End of runnable implementation >> DO NOT CHANGE THIS COMMENT!*********************************************************************************************************************/
}
>>>>>>>>>>>>>>>>>>>>>>>>>回到总目录<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
相关文章:
[AutoSar]BSW_Diagnostic_004 ReadDataByIdentifier(0x22)的配置和实现
目录 关键词平台说明背景一、配置DcmDspDataInfos二、配置DcmDspDatas三、创建DcmDspDidInfos四、创建DcmDspDids五、总览六、创建一个ASWC七、mapping DCM port八、打开davinci developer,创建runnabl九、生成代码 关键词 嵌入式、C语言、autosar、OS、BSW、UDS、…...
C语言笔记13
字符数组与字符串常量区别 #include <stdio.h> int main() {char str1[] "hello bit.";char str2[] "hello bit.";char *str3 "hello bit.";char *str4 "hello bit.";if(str1 str2)printf("str1 and str2 are same\n…...
JavaScript进阶——04-创建对象和继承
创建对象的几种方式 通过Object <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>01_Object构造函数模式</title></head><body><!--方式一: Object构造函数模式* 套路: 先创建空Ob…...
队列(详解)
一.队列的概念 队列(Queue)是一种常见的数据结构,它按照先进先出的原则管理数据。这意味着最先进入队列的元素将被最先移出队列,类似于现实生活中排队的场景。 在队列中,数据项被添加到队列的一端,称为队尾…...
【原创】nnUnet V1在win11下的安装与配置
安装之前可以先了解一下论文的主要内容,便于之后网络训练与推理,调试程序。 论文地址:nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation | Nature Methods 也可以从其他博客快速浏览:…...
C语言之指针初阶
目录 前言 一、内存与地址的关系 二、指针变量 三、野指针 四、const 五、传值调用与传址调用 总结 前言 本文主要介绍C语言指针的一些基础知识,为后面深入理解指针打下基础,因此本文内容主要包括内存与地址的关系,指针的基本语法&…...
异常检测的学习和实战
1.应用: 1.在工业上的应用 当检测设备是否处于异常工作状态时,可以由上图分析得到:那些零散的点对应的数据是异常数据。因为设备大多数时候都是处于正常工作状态的,所以数据点应该比较密集地集中在一个范围内,而那些明…...
RabbitMQ 面试题(一)
1. 简述为什么要使用 RabbitMQ ? 使用 RabbitMQ 的主要原因包括以下几点: 解耦:在复杂的系统中,不同的服务或组件之间往往需要通信和协作。RabbitMQ 作为消息队列,允许这些组件或服务通过发送和接收消息来交互,而无…...
org.postgresql.util.PSQLException: 错误: 关系 “dual“ 不存在
springboot 项目连接 postgreps,启动时报错 org.postgresql.util.PSQLException: 错误: 关系 "dual" 不存在。 查阅资料后发现这是由配置文件中的配置 datasource-dynamic-druid-validationQuery 导致的 spring:datasource:druid:stat-view-servlet:ena…...
mysql权限分类
USAGE --无权限,只有登录数据库,只可以使用test或test_*数据库 ALL --所有权限 select/update/delete/super/slave/reload --指定的权限 with grant option --允许把自己的权限授予其它用户(此用户拥有建立账号的权限) 权限级别: 1、. --全…...
【C++11】列表初始化、右值引用的详细讲解(上)
前言 在一开始学C之前我们就简单的了解了一下C的发展历史。 相比较而言,C11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率加了许多特性,约140个新特性。使得C…...
【JAVA进阶篇教学】第十三篇:Java中volatile关键字讲解
博主打算从0-1讲解下java进阶篇教学,今天教学第十三篇:volatile关键字讲解。 在 Java 中,volatile关键字是一种轻量级的同步机制,用于确保变量的可见性和禁止指令重排序。本文将详细解释volatile关键字的工作原理、可见性保证以及…...
蓝桥杯-地宫取宝
X 国王有一个地宫宝库,是 nm 个格子的矩阵,每个格子放一件宝贝,每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能向右或向下行走。 走过某个格子时,如果那个…...
带头单链表 C++实现
节点定义 带头单链表:我们只需要一个结点指针指向整个链表的第一个节点,这样我们就可以通过next指针访问整个链表内的所有节点 template<class T> struct ListNode {T _val;ListNode* _next;ListNode(const T &val):_val(val),_next(nullptr){…...
学习c#第24天 枚举类型
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace enumType { //定义枚举 public enum Week { 星期一, 星期二, 星期三, 星期四, 星期…...
TensorFlow运行bug汇总
1、ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1 解决方案 pip install urllib31.26.15 -i https://pypi.tuna.tsinghua.edu.cn/simple 升级或者降级 (TF2.1) C:\Users\Administrator>pip install urllib31.26.15 -i https://pypi.tuna.tsinghua.edu.cn/sim…...
docker部署调度程序
Dockerfile(构建初始镜像) # python:3.8-slim-buster为精简版的python FROM python:3.8-slim-buster # 1059为组的id,newgroup为组名,1088为用户的id,newuser为新用户 RUN groupadd -g 1059 newgroup && \useradd -g -u 1088 -g newgroup -m newuser USER newuser RUN…...
websocket和http协议的区别
ws(websocket)协议和http协议是两种不同的协议。 http:http是一种用于传输超文本的应用层协议,通常用于web端浏览器和web端服务器之间传输数据。http也是基于tcp的,但是HTTP只能在同一时刻单向发送消息,是一种半双工通信。&#…...
CSS之定位
目录 CSS定位为什么需要定位定位组成定位的叠放顺序拓展 CSS定位 为什么需要定位 浮动可以让多个块级盒子一行没有缝隙排列显示,经常用于横向排列盒子定位则是可以让盒子自由的在某个盒子内移动位置或者固定屏幕中的某个位置,并且可以压住其他盒子 定…...
[IM002][Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
解决办法: 安装驱动 下载 ODBC Driver for SQL Server - ODBC Driver for SQL Server | Microsoft Learn...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...
Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...
