Callout

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Callout

Callout

  • Callout 是在 ECU 整合期间必须添加到 Dcm 的代码片段,大多数 Callout 的内容是手工编写的代码,对于一些 Callout,Dcm 配置工具将生成一个默认的实现,由整合者手动编辑。从概念上讲,Callout 属于 ECU 固件
  • 因为 Callout 不是 Dcm 的服务,所以它们没有指定的服务 ID
  • Dcm 不能完全支持要求物理内存访问的 ISO14229-1 服务的实现,因此,Dcm 定义了Callout 来实现这种存储器的访问
  • Callout 实现可以简单地通过定义 BlockId 和物理内存地址之间的映射来实现
  • Callout 包含如下 API:
  • Dcm_ReadMemory
  • Dcm_WriteMemory
  • Dcm_SetProgConditions
  • Dcm_GetProgConditions
  • Dcm_ProcessRequestAddFile
  • Dcm_ProcessRequestDeleteFile
  • Dcm_ProcessRequestReplaceFile
  • Dcm_ProcessRequestReadFile
  • Dcm_ProcessRequestReadDir
  • Dcm_WriteFile
  • Dcm_ReadFileOrDir
  • ProcessRequestDownload
  • ProcessRequestTransferExit
  • ProcessRequestUpload
  • ProcessTransferDataRead
  • ProcessTransferDataWrite

Dcm_ReadMemory

Dcm_ReturnReadMemoryTypeDcm_ReadMemory(Dcm_OpStatusTypeOpStatus,

                                         uint8MemoryIdentifier,

                                         uint32MemoryAddress,

                                         uint32MemorySize,

                                         uint8*MemoryData,

                                         Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_ReadMemory
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL / DCM_PENDING / DCM_CANCEL / DCM_FORCE_RCRRP_OK
MemoryIdentifier 内存块标识符(如需要区分内存段时使用) 注:不使用时,此参数设为 0
MemoryAddress 内存起始地址
MemorySize MemoryData 的长度
输出参数 MemoryData 读取数据(指向 DCM 中的诊断缓冲区)
ErrorCode 如果操作 Dcm_ReadMemory 返回值为 DCM_READ_FAILED,则 Dcm 模块将发送一个与参数 ErrorCode 值相等的 NRC 否定响应码
返回值 Dcm_ReturnReadMemoryType DCM_READ_OK: 读取成功 | DCM_READ_FAILED: 读取失败 | DCM_READ_PENDING: 读取尚未完成 | DCM_READ_FORCE_RCRRP: 读取挂起,立即发送 Respone Pending(NRC 0x78) 响应
描述 用于从 UDS 请求消息中请求以 memoryAddress 和 memorySize 参数标识的内存数据。用于的 UDS 服务:ReadMemoryByAddress / RequestUpload / ReadDataByIdentifier (in case of Dynamical DID defined by memory address) / TransferData
声明 Dcm_Externals.h

Dcm_WriteMemory

Dcm_ReturnWriteMemoryTypeDcm_WriteMemory(Dcm_OpStatusTypeOpStatus,

                                           uint8MemoryIdentifier,

                                           uint32MemoryAddress,

                                           uint32MemorySize,

                                           constuint8*MemoryData,

                                           Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_WriteMemory
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL / DCM_PENDING / DCM_CANCEL / DCM_FORCE_RCRRP_OK
MemoryIdentifier 内存块的标识符(如 WriteDataByIdentifier 服务使用)。注:不使用时,此参数设置为 0
MemoryAddress 要复制数据的服务端内存的起始地址。注:如果不使用(例如,如果数据被压缩),此参数应设置为 0
MemorySize MemoryData 的长度
MemoryData 要写入的数据(指向 DCM 中的诊断缓冲区)
输出参数 ErrorCode 如果操作 Dcm_WriteMemory 返回值为 DCM_WRITE_FAILED,则 Dcm 模块将发送一个与参数 ErrorCode 值相等的 NRC 否定响应码
返回值 Dcm_ReturnWriteMemoryType DCM_WRITE_OK: 写入成功 | DCM_WRITE_FAILED: 写入失败 | DCM_WRITE_PENDING: 写入尚未完成 | DCM_WRITE_FORCE_RCRRP: 写入挂起,立即发送 Respone Pending(NRC 0x78) 响应
描述 用于写入由参数 memoryAddress 和 memorySize 标识的内存数据。用于的 UDS 服务: WriteMemoryByAddress / RequestDownload / TransferData
声明 Dcm_Externals.h

Dcm_SetProgConditions

Std_ReturnTypeDcm_SetProgConditions(Dcm_OpStatusTypeOpStatus,

                                     constDcm_ProgConditionsType*ProgConditions)

名称 Dcm_SetProgConditions
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL / DCM_PENDING / DCM_CANCEL / DCM_FORCE_RCRRP_OK
ProgConditions 请求跳转到引导加载程序的条件
输出参数 None
返回值 Std_ReturnType E_OK: 条件已正确设置 | E_NOT_OK: 条件不能设置 | DCM_E_PENDING: 条件设置正在进行中,则需要进一步调用此 API 以结束设置 | DCM_E_FORCE_RCRRP: 应用程序请求发送相应 Response Pending (NRC 0x78)
描述 Dcm_SetProgConditions 允许集成商在由于 ECUReset 请求跳转到 bootloader 之前存储相关信息。相关信息在 Dcm_ProgConditionsType 中定义
声明 Dcm_Externals.h

Dcm_GetProgConditions

Dcm_EcuStartModeTypeDcm_GetProgConditions(Dcm_ProgConditionsType*ProgConditions)

名称 Dcm_GetProgConditions
同步/异步 同步
可重入性 非可重入
输入参数 None
输出参数 ProgConditions 请求从引导加载程序跳转的条件
返回值 Dcm_EcuStartModeType -
描述 Dcm_GetProgConditions 在 Dcm 初始化时调用,并允许确定是否必须发送响应(5050或51)。上下文参数在 Dcm_ProgConditionsType 中定义
声明 Dcm_Externals.h

Dcm_ProcessRequestAddFile

Std_ReturnTypeDcm_ProcessRequestAddFile(Dcm_OpStatusTypeOpStatus,

                                         uint16filePathAndNameLength,

                                         constuint8*filePathAndName,

                                         uint8dataFormatIdentifier,

                                         uint64fileSizeUncompressed,

                                         uint64fileSizeCompressed,

                                         uint64*maxNumberOfBlockLength,

                                         Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_ProcessRequestAddFile
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL: 所有输入参数都是有效的 | DCM_PENDING: 所有输入参数设置为 0x00 | DCM_CANCEL: 所有输入参数设置为 0x00 | DCM_FORCE_RCRRP_OK: 所有输入参数设置为 0x00
filePathAndNameLength 定义参数 filePathAndName 的字节长度
filePathAndName 根据参数 modeOfOperation 参数,定义服务端的文件系统位置,其中将添加、删除、替换或读取文件。此外,该参数还包括要添加、删除、替换或读取文件的文件名,作为文件路径的一部分
dataFormatIdentifier 这个数据参数是一个单独编码的字节值。高 4 位表示压缩方法,低 4 位表示加密方法。为 0x00 表示不使用压缩算法/加密算法。0x00 以外的值是特定于汽车制造商的
fileSizeUncompressed 以字节为单位定义要下载的未压缩文件的大小
fileSizeCompressed 以字节为单位定义要下载的压缩文件的大小
输出参数 maxNumberOfBlockLength 每个 TransferData 请求中包含的最大字节数,不包括 SID 和 blockSequenceCounter
ErrorCode 如果 Dcm_ProcessRequestAddFile 操作返回值 E_NOT_OK, DCM 模块将发送一个与参数 ErrorCode 参数值相等的 NRC 否定响应码
返回值 Std_ReturnType E_OK: 请求成功 | E_NOT_OK: 请求失败 | DCM_E_PENDING: 请求尚未完成 | DCM_E_FORCE_RCRRP: 应用程序请求发送响应 Response Pending (NRC 0x78)
描述 DCM 应该调用这个函数来启动一个 RequestFileTransfer 进程,其模式 OfOperation 等于 0x01 (AddFile)
声明 Dcm_Externals.h

Dcm_ProcessRequestDeleteFile

Std_ReturnTypeDcm_ProcessRequestDeleteFile(Dcm_OpStatusTypeOpStatus,

                                             uint16filePathAndNameLength,

                                             constuint8*filePathAndName,

                                             Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_ProcessRequestDeleteFile
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL: 所有输入参数都是有效的 | DCM_PENDING: 所有输入参数设置为 0x00 | DCM_CANCEL: 所有输入参数设置为 0x00 | DCM_FORCE_RCRRP_OK: 所有输入参数设置为 0x00
filePathAndNameLength 定义参数 filePathAndName 的字节长度
filePathAndName 根据参数 modeOfOperation 参数,定义服务端的文件系统位置,其中将添加、删除、替换或读取文件。此外,该参数还包括要添加、删除、替换或读取文件的文件名,作为文件路径的一部分
输出参数 ErrorCode 如果 Dcm_ProcessRequestDeleteFile 操作返回值 E_NOT_OK, DCM 模块将发送一个与参数 ErrorCode 参数值相等的 NRC 否定响应码
返回值 Std_ReturnType E_OK: 请求成功 | E_NOT_OK: 请求失败 | DCM_E_PENDING: 请求尚未完成 | DCM_E_FORCE_RCRRP: 应用程序请求发送响应 Response Pending (NRC 0x78)
描述 DCM 应该调用这个函数来启动一个 RequestFileTransfer 进程,其模式 OfOperation 等于 0x02 (DeleteFile)
声明 Dcm_Externals.h

Dcm_ProcessRequestReplaceFile

Std_ReturnTypeDcm_ProcessRequestReplaceFile(Dcm_OpStatusTypeOpStatus,

                                             uint16filePathAndNameLength,

                                             constuint8*filePathAndName,

                                             uint8dataFormatIdentifier,

                                             uint64fileSizeUncompressed,

                                             uint64fileSizeCompressed,

                                             uint64*maxNumberOfBlockLength,

                                             Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_ProcessRequestReplaceFile
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL: 所有输入参数都是有效的 | DCM_PENDING: 所有输入参数设置为 0x00 | DCM_CANCEL: 所有输入参数设置为 0x00 | DCM_FORCE_RCRRP_OK: 所有输入参数设置为 0x00
filePathAndNameLength 定义参数 filePathAndName 的字节长度
filePathAndName 根据参数 modeOfOperation 参数,定义服务端的文件系统位置,其中将添加、删除、替换或读取文件。此外,该参数还包括要添加、删除、替换或读取文件的文件名,作为文件路径的一部分
dataFormatIdentifier 这个数据参数是一个单独编码的字节值。高 4 位表示压缩方法,低 4 位表示加密方法。为 0x00 表示不使用压缩算法/加密算法。0x00 以外的值是特定于汽车制造商的
fileSizeUncompressed 以字节为单位定义要下载的未压缩文件的大小
fileSizeCompressed 以字节为单位定义要下载的压缩文件的大小
输出参数 maxNumberOfBlockLength 每个 TransferData 请求中包含的最大字节数,不包括 SID 和 blockSequenceCounter
ErrorCode 如果 Dcm_ProcessRequestReplaceFile 操作返回值 E_NOT_OK, DCM 模块将发送一个与参数 ErrorCode 参数值相等的 NRC 否定响应码
返回值 Std_ReturnType E_OK: 请求成功 | E_NOT_OK: 请求失败 | DCM_E_PENDING: 请求尚未完成 | DCM_E_FORCE_RCRRP: 应用程序请求发送响应 Response Pending (NRC 0x78)
描述 DCM 应该调用这个函数来启动一个 RequestFileTransfer 进程,其模式 OfOperation 等于 0x03 (ReplaceFile)
声明 Dcm_Externals.h

Dcm_ProcessRequestReadFile

Std_ReturnTypeDcm_ProcessRequestReadFile(Dcm_OpStatusTypeOpStatus,

                                           uint16filePathAndNameLength,

                                           constuint8*filePathAndName,

                                           uint8dataFormatIdentifier,

                                           uint64fileSizeUncompressed,

                                           uint64fileSizeCompressed,

                                           uint64*maxNumberOfBlockLength,

                                           Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_ProcessRequestReadFile
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL: 所有输入参数都是有效的 | DCM_PENDING: 所有输入参数设置为 0x00 | DCM_CANCEL: 所有输入参数设置为 0x00 | DCM_FORCE_RCRRP_OK: 所有输入参数设置为 0x00
filePathAndNameLength 定义参数 filePathAndName 的字节长度
filePathAndName 根据参数 modeOfOperation 参数,定义服务端的文件系统位置,其中将添加、删除、替换或读取文件。此外,该参数还包括要添加、删除、替换或读取文件的文件名,作为文件路径的一部分
dataFormatIdentifier 这个数据参数是一个单独编码的字节值。高 4 位表示压缩方法,低 4 位表示加密方法。为 0x00 表示不使用压缩算法/加密算法。0x00 以外的值是特定于汽车制造商的
输出参数 fileSizeUncompressed 以字节为单位定义要上传的未压缩文件的大小
fileSizeCompressed 以字节为单位定义要上传的压缩文件的大小
maxNumberOfBlockLength 每个 TransferData 响应中包含的最大字节数,不包括 SID 和 blockSequenceCounter
ErrorCode 如果 Dcm_ProcessRequestReadFile 操作返回值 E_NOT_OK, DCM 模块将发送一个与参数 ErrorCode 参数值相等的 NRC 否定响应码
返回值 Std_ReturnType E_OK: 请求成功 | E_NOT_OK: 请求失败 | DCM_E_PENDING: 请求尚未完成 | DCM_E_FORCE_RCRRP: 应用程序请求发送响应 Response Pending (NRC 0x78)
描述 DCM 应该调用这个函数来启动一个 RequestFileTransfer 进程,其模式 OfOperation 等于 0x04 (ReadFile)
声明 Dcm_Externals.h

Dcm_ProcessRequestReadDir

Std_ReturnTypeDcm_ProcessRequestReadDir(Dcm_OpStatusTypeOpStatus,

                                         uint16filePathAndNameLength,

                                         constuint8*filePathAndName,

                                         uint64*dirInfoLength,

                                         uint64*maxNumberOfBlockLength,

                                         Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_ProcessRequestReadDir
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL: 所有输入参数都是有效的 | DCM_PENDING: 所有输入参数设置为 0x00 | DCM_CANCEL: 所有输入参数设置为 0x00 | DCM_FORCE_RCRRP_OK: 所有输入参数设置为 0x00
filePathAndNameLength 定义参数 filePathAndName 的字节长度
filePathAndName 根据参数 modeOfOperation 参数,定义服务端的文件系统位置,其中将添加、删除、替换或读取文件。此外,该参数还包括要添加、删除、替换或读取文件的文件名,作为文件路径的一部分
输出参数 dirInfoLength 以字节为单位定义要上传的目录信息的大小
maxNumberOfBlockLength 每个 TransferData 请求中包含的最大字节数,不包括 SID 和 blockSequenceCounter
ErrorCode 如果 Dcm_ProcessRequestReadDir 操作返回值 E_NOT_OK, DCM 模块将发送一个与参数 ErrorCode 参数值相等的 NRC 否定响应码
返回值 Std_ReturnType E_OK: 请求成功 | E_NOT_OK: 请求失败 | DCM_E_PENDING: 请求尚未完成 | DCM_E_FORCE_RCRRP: 应用程序请求发送响应 Response Pending (NRC 0x78)
描述 DCM 应该调用这个函数来启动一个 RequestFileTransfer 进程,其模式 OfOperation 等于 0x05 (ReadDir)
声明 Dcm_Externals.h

Dcm_WriteFile

Std_ReturnTypeDcm_WriteFile(Dcm_OpStatusTypeOpStatus,

                             uint64DataLength,

                             uint8*Data,

                             Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_WriteFile
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL: 所有输入参数都是有效的 | DCM_PENDING: 所有输入参数设置为 0x00 | DCM_CANCEL: 所有输入参数设置为 0x00 | DCM_FORCE_RCRRP_OK: 所有输入参数设置为 0x00
DataLength 定义参数 Data 的字节长度。与 Dcm_ProcessRequestFileTransfer 中返回的 maxNumberOfBlockLength 值相比,该值不会超过,但可能会更少
Data 指向要写入的数据
输出参数 ErrorCode 如果 Dcm_WriteFile 操作返回值 E_NOT_OK, DCM 模块将发送一个与参数 ErrorCode 参数值相等的 NRC 否定响应码
返回值 Std_ReturnType E_OK: 请求成功 | E_NOT_OK: 请求失败 | DCM_E_PENDING: 请求尚未完成 | DCM_E_FORCE_RCRRP: 应用程序请求发送响应 Response Pending (NRC 0x78)
描述 当使用 UDS 服务 TransferData 接收数据时,如果存在子功能为 0x01 (AddFile) 或 0x03 (ReplaceFile) 开始的 RequestFileTransfer 进程,DCM 将调用此函数
声明 Dcm_Externals.h

Dcm_ReadFileOrDir

Std_ReturnTypeDcm_ReadFileOrDir(Dcm_OpStatusTypeOpStatus,

                                 uint64*DataLength,

                                 uint8*Data,

                                 Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_ReadFileOrDir
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL: 所有输入参数都是有效的 | DCM_PENDING: 所有输入参数设置为 0x00 | DCM_CANCEL: 所有输入参数设置为 0x00 | DCM_FORCE_RCRRP_OK: 所有输入参数设置为 0x00
DataLength 定义参数 Data 的字节长度。与 Dcm_ProcessRequestFileTransfer 中返回的 maxNumberOfBlockLength 值相比,该值不会超过,但可能会更少
Data 指向要写入的数据
输入/输出参数 DataLength 用作输入参数时,该参数定义了要使用的最大块长度,即在 RequestFileTransfer 响应中发送给客户端的 maxNumberOfBlockLength 的值;| 用作输出参数时,该参数以字节为单位定义参数 Data 的实际长度。该值不得超过,但可以小于参数中提供的值
输出参数 ErrorCode 如果 Dcm_ReadFileOrDir 操作返回值 E_NOT_OK, DCM 模块将发送一个与参数 ErrorCode 参数值相等的 NRC 否定响应码
返回值 Std_ReturnType E_OK: 请求成功 | E_NOT_OK: 请求失败 | DCM_E_PENDING: 请求尚未完成 | DCM_E_FORCE_RCRRP: 应用程序请求发送响应 Response Pending (NRC 0x78)
描述 当使用 UDS 服务 TransferData 发送数据时,如果存在子功能为 0x04 (ReadFile) 或 0x05 (ReadDir) 的 RequestFileTransfer 进程,DCM 将调用此函数
声明 Dcm_Externals.h

ProcessRequestDownload

Std_ReturnTypeDcm_ProcessRequestDownload(Dcm_OpStatusTypeOpStatus,

                                           uint8DataFormatIdentifier,

                                           uint8MemoryIdentifier,

                                           uint32MemoryAddress,

                                           uint32MemorySize,

                                           uint32*BlockLength,

                                           Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_ProcessRequestDownload
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL / DCM_PENDING / DCM_CANCEL
DataFormatIdentifier 这个数据参数是一个单独编码的字节值。高 4 位表示压缩方法,低 4 位表示加密方法。为 0x00 表示不使用压缩算法/加密算法。0x00 以外的值是特定于汽车制造商的
MemoryIdentifier 内存块的标识符,如果不使用该参数,则将其设置为 0
MemoryAddress 服务端要写入数据的内存的起始地址
MemorySize 未压缩的内存大小
输入/输出参数 BlockLength Dcm_WriteMemory 的最大字节数
输出参数 ErrorCode 如果 Dcm_ProcessRequestDownload 操作返回值 E_NOT_OK, DCM 模块将发送一个与参数 ErrorCode 参数值相等的 NRC 否定响应码
返回值 Std_ReturnType E_OK: 请求成功 | E_NOT_OK: 请求失败 | DCM_E_PENDING: 请求尚未完成
描述 DCM 将调用该函数来启动下载进程。该函数用于实现 UDS 的 RequestDownload 服务
声明 Dcm_Externals.h

ProcessRequestTransferExit

Std_ReturnTypeDcm_ProcessRequestTransferExit(Dcm_OpStatusTypeOpStatus,

                                               constuint8*transferRequestParameterRecord,

                                               uint32transferRequestParameterRecordSize,

                                               constuint8*transferResponseParameterRecord,

                                               uint32*transferResponseParameterRecordSize,

                                               Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_ProcessRequestTransferExit
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL / DCM_PENDING / DCM_CANCEL
transferRequestParameterRecord 指向车辆制造商特定的 transferRequestParameterRecord
transferRequestParameterRecordSize transferRequestParameterRecord 的长度
输入/输出参数 transferResponseParameterRecordSize 当调用该函数时,此参数包含可以写入缓冲区的最大数据字节数。该函数返回 transferResponseParameterRecord 中写入的实际数据字节数
输出参数 transferResponseParameterRecord 指向车辆制造商特定的transferResponseParameterRecord
ErrorCode 如果 Dcm_ProcessRequestTransferExit 操作返回值 E_NOT_OK, DCM 模块将发送一个与参数 ErrorCode 参数值相等的 NRC 否定响应码
返回值 Std_ReturnType E_OK: 转移成功 | E_NOT_OK: 转移失败或者响应缓冲区太小 | DCM_E_PENDING: 转移尚未完成
描述 DCM 将调用此函数来终止下载或上传过程。此函数用于实现 UDS 的 RequestTransferExit 服务
声明 Dcm_Externals.h

Dcm_ProcessRequestUpload

Std_ReturnTypeDcm_ProcessRequestUpload(Dcm_OpStatusTypeOpStatus,

                                         uint8DataFormatIdentifier,

                                         uint8MemoryIdentifier,

                                         uint32MemoryAddress,

                                         uint32MemorySize,

                                         uint32*BlockLength,

                                         Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_ProcessRequestUpload
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL / DCM_PENDING / DCM_CANCEL / DCM_FORCE_RCRRP_OK
DataFormatIdentifier 这个数据参数是一个单独编码的字节值。高 4 位表示压缩方法,低 4 位表示加密方法。为 0x00 表示不使用压缩算法/加密算法。0x00 以外的值是特定于汽车制造商的
MemoryIdentifier 内存块的标识符,如果不使用该参数,则将其设置为 0
MemoryAddress 要从服务端拷贝数据的内存的起始地址
MemorySize 未压缩的内存大小
输入/输出参数 BlockLength Dcm_ReadMemory 的最大字节数
输出参数 ErrorCode 如果 Dcm_ProcessRequestUpload 操作返回值 E_NOT_OK, DCM 模块将发送一个与参数 ErrorCode 参数值相等的 NRC 否定响应码
返回值 Std_ReturnType E_OK: 请求成功 | E_NOT_OK: 请求失败 | DCM_E_PENDING: 请求尚未完成
描述 DCM 将调用该函数来启动上传进程。该函数用于实现 UDS RequestUpload 服务
声明 Dcm_Externals.h

ProcessTransferDataRead

Dcm_ReturnReadMemoryTypeDcm_ProcessTransferDataRead(Dcm_OpStatusTypeOpStatus,

                                                     uint8MemoryIdentifier,

                                                     uint32MemoryAddress,

                                                     uint32MemorySize,

                                                     Dcm_RequestDataArrayTypeMemoryData,

                                                     Dcm_NegativeResponseCodeType*ErrorCode)

名称 Dcm_ProcessTransferDataRead
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL / DCM_PENDING / DCM_CANCEL / DCM_FORCE_RCRRP_OK
MemoryIdentifier 内存块的标识符,如果不使用该参数,则将其设置为 0
MemoryAddress 服务端数据的内存起始地址
MemorySize MemoryData 字节大小
输出参数 MemoryData 读取数据(指向 DCM 中的诊断缓冲区)
ErrorCode 如果 Dcm_ReadMemory 操作返回值 DCM_READ_FAILED, DCM 模块将发送一个与参数 ErrorCode 参数值相等的 NRC 否定响应码
返回值 Dcm_ReturnReadMemoryType DCM_READ_OK: 读取成功 | DCM_READ_FAILED: 读取失败 | DCM_READ_PENDING: 读取尚未完成 | DCM_READ_FORCE_RCRRP: 读取挂起,立即发送 Respone Pending(NRC 0x78) 响应
描述 用于从 UDS 请求消息中请求内存数据,这些内存数据由参数m emoryAddress 和 memorySize 标识。该函数用于 UDS 服务: ReadMemoryByAddress / RequestUpload / ReadDataByIdentifier / TransferData
声明 Dcm_Externals.h

ProcessTransferDataWrite

Dcm_ReturnWriteMemoryTypeDcm_ProcessTransferDataWrite(Dcm_OpStatusTypeOpStatus,

                                                       uint8MemoryIdentifier,

                                                       uint32MemoryAddress,

                                                       uint32MemorySize,

                                                       constDcm_RequestDataArrayTypeMemoryData,

                                                       Dcm_NegativeResponseCodeType*ErrorCode)


名称 Dcm_ProcessTransferDataWrite
同步/异步 异步
可重入性 非可重入
输入参数 OpStatus DCM_INITIAL / DCM_PENDING / DCM_CANCEL / DCM_FORCE_RCRRP_OK
MemoryIdentifier 内存块的标识符,如果不使用该参数,则将其设置为 0
MemoryAddress 要从服务端拷贝数据的内存的起始地址
MemorySize MemoryData 字节大小
MemoryData 要写入的数据(指向 DCM 中的诊断缓冲区)
输出参数 ErrorCode 如果 Dcm_WriteMemory 操作返回值 DCM_WRITE_FAILED, DCM 模块将发送一个与参数 ErrorCode 参数值相等的 NRC 否定响应码
返回值 Dcm_ReturnWriteMemoryType DCM_WRITE_OK: 写入成功 | DCM_WRITE_FAILED: 写入失败 | DCM_WRITE_PENDING: 写入尚未完成 | DCM_WRITE_FORCE_RCRRP: 写入挂起,立即发送 Respone Pending(NRC 0x78) 响应
描述 ProcessTransferDataWrite 用于写入由参数 memoryAddress 和 memorySize 标识的内存数据。该函数用于 UDS 服务: WriteMemoryByAddress / RequestDownload / TransferData
声明 Dcm_Externals.h
目录
相关文章
|
7月前
|
安全 数据安全/隐私保护
突破512字节
突破512字节
86 0
|
边缘计算 网络协议 网络架构
DoIP看这篇就够了,吐血整理
DoIP看这篇就够了,吐血整理
DoIP看这篇就够了,吐血整理
|
存储 安全 算法
一文理解UDS安全访问服务(0x27)
一文理解UDS安全访问服务(0x27)
一文理解UDS安全访问服务(0x27)
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
72 2
|
7月前
|
存储 测试技术 API
诊断服务处理DSP
诊断服务处理DSP
371 0
|
3月前
|
传感器 Linux API
远程处理器消息框架(RPMSG) 【ChatGPT】
远程处理器消息框架(RPMSG) 【ChatGPT】
|
7月前
|
安全 算法 程序员
【C++智能指针 空指针判断】深入探索C++智能指针:nullptr与empty的微妙差异
【C++智能指针 空指针判断】深入探索C++智能指针:nullptr与empty的微妙差异
206 1
|
7月前
|
存储 API
功能定义
功能定义.
234 1
功能定义
|
7月前
|
缓存 Linux 编译器
C/C++ 函数调用以及Linux中系统调用 开销介绍:介绍C/C函数调用以及Linux中系统调用的开销情况
C/C++ 函数调用以及Linux中系统调用 开销介绍:介绍C/C函数调用以及Linux中系统调用的开销情况
113 0
|
7月前
|
存储 安全 测试技术
诊断服务调度DSD
诊断服务调度DSD
290 0