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

相关文章

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

使用Python实现网络设备配置备份与恢复

《使用Python实现网络设备配置备份与恢复》网络设备配置备份与恢复在网络安全管理中起着至关重要的作用,本文为大家介绍了如何通过Python实现网络设备配置备份与恢复,需要的可以参考下... 目录一、网络设备配置备份与恢复的概念与重要性二、网络设备配置备份与恢复的分类三、python网络设备配置备份与恢复实

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

SpringCloud之consul服务注册与发现、配置管理、配置持久化方式

《SpringCloud之consul服务注册与发现、配置管理、配置持久化方式》:本文主要介绍SpringCloud之consul服务注册与发现、配置管理、配置持久化方式,具有很好的参考价值,希望... 目录前言一、consul是什么?二、安装运行consul三、使用1、服务发现2、配置管理四、数据持久化总

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

解读spring.factories文件配置详情

《解读spring.factories文件配置详情》:本文主要介绍解读spring.factories文件配置详情,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用场景作用内部原理机制SPI机制Spring Factories 实现原理用法及配置spring.f

Springboot如何配置Scheduler定时器

《Springboot如何配置Scheduler定时器》:本文主要介绍Springboot如何配置Scheduler定时器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Springboot配置Scheduler定时器1.在启动类上添加 @EnableSchedulin

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重