Autosar Dcm配置-0x23服务ReadMemoryByAddress-基于ETAS软件

2024-06-22 19:04

本文主要是介绍Autosar Dcm配置-0x23服务ReadMemoryByAddress-基于ETAS软件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 前言
    • Dcm配置
      • DcmDsd
      • DcmDsp
        • DcmDspMemoryIdInfo
    • 代码分析
    • 总结

前言

一般在调教开发阶段,会使用XCP进行观测和标定,本质上也是操作指定的内存地址。量产后,一般XCP会取消。本文介绍的UDS ReadMemoryByAddress服务,也是读取内存地址的值。在没有XCP时,通过ReadMemoryByAddress服务,也可以实现特定地址的观测。
image

Dcm配置

DcmDsd

需要配置对应的Service,包括ID,关联的会话模式,安全等级。示例配置如下:

只允许在扩展会话下读取,不需要安全等级解锁
image
此处配置了会话及等级,在后面还可以单独对每一块内存配置

DcmDsp

配置对应的内存范围,AddressAndLengthFormatIdentifier无法通过工具配置,默认是都支持的。

DcmDspMemoryIdInfo

配置内存,ReadMemory相关,DcmDspReadMemoryRangeInfo

DcmDspReadMemoryRangeHigh:读取内存的高字节

DcmDspReadMemoryRangeLow:读取内存的低字节

DcmDspReadMemoryRangeSecurityLevelRef:配置对应的安全等级

DcmDspReadMemoryRangeSessionLevelRef:配置对应的会话模式

示例配置如下:
image
配置完后生成BSW代码即可

代码分析

实际处理函数为:Dcm_DcmReadMemoryByAddress

生成的内存配置:

const Dcm_RMBAConfig_tst Dcm_RMBAConfig_cast []=
{{0x6FFFD8uL,   /*Lower memory address range allowed for reading*/0x6FFFE0uL,  /*High memory address range allowed for reading*/0x2uL,   /* Allowed Read Security levels */0x4uL,     /* Allowed Read Session levels */NULL_PTR,                                              /* No User specific Mode Rule function configured */0           /*Value of Memory Identifier to select the desired memory device*/}
};

函数调用流:

image
最终调用的函数为DcmAppl_Dcm_ReadMemory,该函数需要用户自行实现

输入的参数为:memoryaddress,datalength

实际在该函数中完成对应的读取功能

 Dcm_ReturnReadMemoryType DcmAppl_Dcm_ReadMemory(Dcm_OpStatusType Rmba_Opstatus,uint8 memoryid,uint32 memoryaddress,uint32 datalength,uint8 * respbuf,Dcm_NegativeResponseCodeType * ErrorCode){/* User Application should add the necessary code to Read the data from the memory address specified by the tester */Dcm_ReturnReadMemoryType retVal = DCM_READ_OK;//添加Read内存的代码,示例如下rba_BswSrv_MemCopy8(respbuf,memoryaddress,datalength);return(retVal);
}

总结

量产取消了XCP后,ReadMemoryByAddress如果利用的合理的话,对调试帮助还是非常大的。

这篇关于Autosar Dcm配置-0x23服务ReadMemoryByAddress-基于ETAS软件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085141

相关文章

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件