Memory Abstraction Interface (MemIf)
Abstracts underlying Flash and EEPROM memory drivers.
Funktionen — Übersicht
void MemIf_SetMode (MemIf_ModeType Mode);Invokes the "Set Mode" functions of all underlying memory abstraction modules.Std_ReturnType MemIf_Read (uint8 DeviceIndex, uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);Invokes the "Read" function of the underlying memory abstraction module selected by the parameter Device Index.Std_ReturnType MemIf_Write (uint8 DeviceIndex, uint16 BlockNumber, const uint8* DataBufferPtr);Invokes the "Write" function of the underlying memory abstraction module selected by the parameter Device Index.void MemIf_Cancel (uint8 DeviceIndex);Invokes the "Cancel" function of the underlying memory abstraction module selected by the parameter Device Index.MemIf_StatusType MemIf_GetStatus (uint8 DeviceIndex);Invokes the "Get Status" function of the underlying memory abstraction module selected by the parameter Device Index.MemIf_JobResultType MemIf_GetJobResult (uint8 DeviceIndex);Invokes the "Get Job Result" function of the underlying memory abstraction module selected by the parameter Device Index.Std_ReturnType MemIf_InvalidateBlock (uint8 DeviceIndex, uint16 BlockNumber);Invokes the "Invalidate Block" function of the underlying memory abstraction modulevoid MemIf_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);Returns version information.Std_ReturnType MemIf_EraseImmediateBlock (uint8 DeviceIndex, uint16 BlockNumber);Invokes the "Erase Immediate Block" function of the underlying memory abstraction module selected by the parameter Device Index.
Typen — Übersicht
enum MemIf_StatusTypeDenotes the current status of the underlying abstraction module and device drive.enum MemIf_JobResultTypeDenotes the result of the last job.enum MemIf_ModeTypeDenotes the operation mode of the underlying abstraction mod ules and device drivers.
Funktionen & Typen — Detailansicht
函数 MemIf_SetMode [SWS_MemIf_00038] 📄 PDF
void MemIf_SetMode (MemIf_ModeType Mode);
Invokes the "Set Mode" functions of all underlying memory abstraction modules.
函数 MemIf_SetMode 用于通过存储器接口同步切换工作模式 [SWS_MemIf_00038]。调用时,它将请求的模式转发到所有底层存储器抽象模块各自的“Set Mode”函数 [SWS_MemIf_00038]。目标模式 Mode 作为参数传递,而该函数不提供返回值 [SWS_MemIf_00038]。该接口在头文件 MemIf.h 中定义,服务 ID 为 0x01 [SWS_MemIf_00038]。
关于并发性,MemIf_SetMode 被指定为不可重入(Non Reentrant)[SWS_MemIf_00038]。解释:调用方推测不得从多个任务或中断服务例程并发或中断性调用该函数,因此必要时可能应通过外部保护机制来协调并发访问。 问题 Q-02b14e9cb4b05dc9 (未决)
由于同步执行语义,该调用仅在将请求转发给存储器抽象模块之后才返回给调用方 [SWS_MemIf_00038]。元素规范中未针对此函数规定用于错误指示的特定返回值或专用的 DET/DEM 错误消息 [SWS_MemIf_00038]。
本使用说明为自动生成,完全基于 AUTOSAR R20-11 规范的内容。
实现者指南即将推出(复杂度 I1)
函数 MemIf_Read [SWS_MemIf_00039] 📄 PDF
Std_ReturnType MemIf_Read (uint8 DeviceIndex, uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);
Invokes the "Read" function of the underlying memory abstraction module selected by the parameter Device Index.
函数 MemIf_Read 将读取请求同步转发给通过参数 DeviceIndex 选定的底层内存抽象模块 [SWS_MemIf_00039]。它在头文件 MemIf.h 中声明,用于读取逻辑存储块的数据。
参数与接口
对 MemIf_Read 的调用包括以下输入和输出参数 [SWS_MemIf_00039]:
DeviceIndex:用于选择目标模块的目标设备索引。BlockNumber:待读取存储块的逻辑块号。BlockOffset:逻辑块内开始读取的字节偏移量。DataBufferPtr:指向用于存储读取数据的缓冲区的指针。Length:要读取的数据字节数。
错误处理与返回值
当开发错误检测(Development Error Detection)处于激活状态且检测到开发错误时,函数返回 E_NOT_OK [SWS_MemIf_00039]。否则,被调用的底层模块读取函数的返回值将作为 Std_ReturnType 传递 [SWS_MemIf_00039]。
并发性与限制
该函数被指定为同步且不可重入的(Non Reentrant)[SWS_MemIf_00039]。因此,调用通常可能在任务上下文中进行;调用者必须避免并发或嵌套调用,或对其进行串行化。 问题 Q-b774bf07a69e28af (未决)
本使用说明由 AI 生成,并基于 AUTOSAR 规范 R20-11。
函数 MemIf_Write [SWS_MemIf_00040] 📄 PDF
Std_ReturnType MemIf_Write (uint8 DeviceIndex, uint16 BlockNumber, const uint8* DataBufferPtr);
Invokes the "Write" function of the underlying memory abstraction module selected by the parameter Device Index.
用法与调用上下文
接口函数 MemIf_Write 用作抽象层,并调用通过参数 DeviceIndex 选定的底层内存抽象模块的 Write 函数 [SWS_MemIf_00040]。在同步调用时传递三个输入参数:用于选择目标驱动程序的设备索引 DeviceIndex、逻辑块号 BlockNumber 以及指向包含待写入数据缓冲区的指针 DataBufferPtr [SWS_MemIf_00040]。该函数在服务 ID 0x03 下指定,并通过头文件 MemIf.h 提供 [SWS_MemIf_00040]。
错误处理与返回值
返回值属于 Std_ReturnType 类型 [SWS_MemIf_00040]。如果 Memory Abstraction Interface 的开发错误检测(Development Error Detection)处于激活状态,并且根据 [SWS_MemIf_00022] 确定了开发错误,则 MemIf_Write 返回错误代码 E_NOT_OK [SWS_MemIf_00040]。如果不存在错误,该函数将调用的底层模块的返回值原样转发给调用者 [SWS_MemIf_00040]。
并发性与边界条件
关于并发行为,MemIf_Write 被定义为同步且不可重入的(Non Reentrant)[SWS_MemIf_00040]。
本使用说明由 AI 基于 AUTOSAR Classic R20-11 规范生成。
函数 MemIf_Cancel [SWS_MemIf_00041] 📄 PDF
void MemIf_Cancel (uint8 DeviceIndex);
Invokes the "Cancel" function of the underlying memory abstraction module selected by the parameter Device Index.
同步函数 MemIf_Cancel 用于调用通过参数 Device Index 选定的底层内存抽象模块的 Cancel 函数 [SWS_MemIf_00041]。该服务没有返回值,并将中止任务直接转发给寻址的抽象实例 [SWS_MemIf_00041]。
调用与集成适用以下技术特性:
- 调用上下文与并发性:该函数被定义为不可重入(
Non Reentrant)[SWS_MemIf_00041]。调用方必须确保执行不会被其他上下文并发进行或中断。 - 签名与标识:接口
void MemIf_Cancel (uint8 Device Index)具有服务 ID0x04,并通过头文件MemIf.h提供 [SWS_MemIf_00041]。 - 参数:输入参数
Device Index(类型uint8)用于选择目标模块;不存在输入/输出参数或返回参数 [SWS_MemIf_00041]。 - 错误处理:规范未针对该函数描述任何特定的错误码、返回值或 DET 消息 [SWS_MemIf_00041](Interpretation:对非法设备索引的检查很可能留给上层系统架构或下层模块处理)。 问题 Q-4a5d989ce611ba89 (未决)
本使用说明由 AI 基于 AUTOSAR 规范 R20-11 生成。
函数 MemIf_GetStatus [SWS_MemIf_00042] 📄 PDF
MemIf_StatusType MemIf_GetStatus (uint8 DeviceIndex);
Invokes the "Get Status" function of the underlying memory abstraction module selected by the parameter Device Index.
函数 MemIf_GetJobResult [SWS_MemIf_00043] 📄 PDF
MemIf_JobResultType MemIf_GetJobResult (uint8 DeviceIndex);
Invokes the "Get Job Result" function of the underlying memory abstraction module selected by the parameter Device Index. Available v ia Mem If.h
函数 MemIf_InvalidateBlock [SWS_MemIf_00044] 📄 PDF
Std_ReturnType MemIf_InvalidateBlock (uint8 DeviceIndex, uint16 BlockNumber);
Invokes the "Invalidate Block" function of the underlying memory abstraction module AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_MemoryAbstractionInterface selected by the parameter Device Index.
同步函数 MemIf_InvalidateBlock 将使逻辑块失效的请求转发给通过参数 DeviceIndex 选定的底层存储器抽象模块 [SWS_MemIf_00044]。该接口通过头文件 MemIf.h 提供,并具有服务 ID 0x07 [SWS_MemIf_00044]。
用法与参数
调用以同步方式进行,并将以下输入参数传递给寻址目标 [SWS_MemIf_00044]:
DeviceIndex:底层存储器抽象模块的数值索引 [SWS_MemIf_00044]。BlockNumber:要失效的存储块的唯一标识符 [SWS_MemIf_00044]。
错误处理与返回值
该函数返回类型为 Std_ReturnType 的状态值 [SWS_MemIf_00044]:
- 如果为 Memory Abstraction Interface 启用了开发错误检测(Development Error Detection),并且发生了符合
SWS_MemIf_00022的错误,则该函数返回E_NOT_OK[SWS_MemIf_00044]。 - 如果未检测到开发错误,该接口将返回所调用的底层模块函数的结果 [SWS_MemIf_00044]。
并发性
该函数被指定为不可重入(Non Reentrant)[SWS_MemIf_00044]。
本使用说明基于 AUTOSAR Classic Release R20-11 规范自动生成。
函数 MemIf_GetVersionInfo [SWS_MemIf_00045] 📄 PDF
void MemIf_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Returns version information.
函数 MemIf_EraseImmediateBlock [SWS_MemIf_00046] 📄 PDF
Std_ReturnType MemIf_EraseImmediateBlock (uint8 DeviceIndex, uint16 BlockNumber);
Invokes the "Erase Immediate Block" function of the underlying memory abstraction module selected by the parameter Device Index.
使用
同步函数 MemIf_EraseImmediateBlock 触发底层存储器抽象模块中被归类为立即块的擦除操作 [SWS_MemIf_00046]。该调用通过头文件 MemIf.h 提供,并具有服务 ID 0x09 [SWS_MemIf_00046]。输入参数包括用于寻址特定存储设备或抽象模块的 DeviceIndex 以及用于标识目标块的 BlockNumber [SWS_MemIf_00046]。不存在额外的 Inout 或 Out 参数 [SWS_MemIf_00046]。
返回值与错误处理
该函数返回类型为 Std_ReturnType 的状态值 [SWS_MemIf_00046]。如果为 Memory Abstraction Interface 启用了开发错误检测,并检测到符合 [SWS_MemIf_00022] 的相应错误,则该调用返回固定的返回值 E_NOT_OK [SWS_MemIf_00046]。如果未发生此类错误,则将底层模块所调用函数的直接结果传递给调用方 [SWS_MemIf_00046]。
并发性与限制
MemIf_EraseImmediateBlock 的执行同步进行,并被指定为不可重入(Non Reentrant)[SWS_MemIf_00046]。解释:由于不允许对该接口进行并发调用,因此在整个系统中,该函数推测可能仅能从任务层级的同步上下文中调用,以防止底层存储驱动程序中的数据不一致。 问题 Q-4fce518bab0115db (未决)
此使用说明基于 AUTOSAR CP R20-11 规范自动生成。
类型 MemIf_StatusType [SWS_MemIf_00064] 📄 PDF
Denotes the current status of the underlying abstraction module and device drive. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_MemoryAbstractionInterface
根据 [SWS_MemIf_00064],枚举类型 MemIf_StatusType 表示底层存储器抽象模块及关联设备驱动程序的当前运行和执行状态。该类型在 Memory Abstraction Interface 中定义,并通过头文件 MemIf.h 供调用方使用 [SWS_MemIf_00064]。
该枚举包含用于映射运行就绪性的四种不同状态 [SWS_MemIf_00064]:
MEMIF_UNINIT:底层抽象模块或关联的设备驱动程序(尚)未初始化 [SWS_MemIf_00064]。MEMIF_IDLE:抽象模块或设备驱动程序已准备就绪,当前未执行任何作业 [SWS_MemIf_00064]。MEMIF_BUSY:底层模块或设备驱动程序当前正在处理某项操作 [SWS_MemIf_00064]。MEMIF_BUSY_INTERNAL:抽象模块正在处理内部管理操作,而驱动程序可能空闲或繁忙 [SWS_MemIf_00064]。
调用层使用此状态在分配作业之前同步确定存储层是否就绪或内部管理过程是否正在运行 [SWS_MemIf_00064]。由于 MemIf_StatusType 代表纯数据类型定义,因此规范元素中未单独列出功能方面的内容,例如 DET 或 DEM 消息、重入规则或调用上下文。
此文本由 AI 基于 AUTOSAR 规范生成。
实现者指南即将推出(复杂度 I1)
类型 MemIf_JobResultType [SWS_MemIf_00065] 📄 PDF
Denotes the result of the last job.
枚举类型 MemIf_JobResultType 描述了向存储器接口发送的最近处理作业的结果,并通过头文件 MemIf.h 提供 [SWS_MemIf_00065]。
该枚举定义了执行状态以及特定的错误和块状态 [SWS_MemIf_00065]:
MEMIF_JOB_OK:请求的作业已成功结束 [SWS_MemIf_00065]。MEMIF_JOB_PENDING:作业尚未完成 [SWS_MemIf_00065]。解释:这表明作业是异步处理的,调用方通过该中间状态确定完成情况。 问题 Q-31078cf25506334e (未决)MEMIF_JOB_FAILED:作业未成功完成 [SWS_MemIf_00065]。MEMIF_JOB_CANCELED:作业已被中止 [SWS_MemIf_00065]。MEMIF_BLOCK_INCONSISTENT:请求的块不一致,可能包含损坏的数据或未找到 [SWS_MemIf_00065]。MEMIF_BLOCK_INVALID:请求的块已被标记为无效,因此无法执行所需的操作 [SWS_MemIf_00065]。
在评估作业结果时,该类型用于区分常规执行错误(MEMIF_JOB_FAILED)和与块相关的问题(MEMIF_BLOCK_INCONSISTENT、MEMIF_BLOCK_INVALID)[SWS_MemIf_00065]。
此文本由 AI 生成,仅供参考。
类型 MemIf_ModeType [SWS_MemIf_00066] 📄 PDF
Denotes the operation mode of the underlying abstraction mod ules and device drivers.
枚举类型 MemIf_ModeType 定义了底层存储器抽象模块和设备驱动程序的工作模式 [SWS_MemIf_00066]。它通过头文件 MemIf.h 提供,用于控制存储器访问的速度和运行行为 [SWS_MemIf_00066]。
根据 [SWS_MemIf_00066],取值范围包含两种状态:
MEMIF_MODE_SLOW:底层抽象模块和设备驱动程序工作在慢速模式(Slow Mode)下 [SWS_MemIf_00066]。MEMIF_MODE_FAST:底层抽象模块和设备驱动程序工作在快速模式(Fast Mode)下 [SWS_MemIf_00066]。
关于错误处理、重入或特定的调用上下文,该类型的规范不包含专门的规定;模式的传递和评估通过存储器接口或底层驱动程序的相应接口同步进行 [SWS_MemIf_00066]。
本文由 AI 生成,用于技术指导。
实现者指南即将推出(复杂度 I1)
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_MemIf- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_MemIf@rel:R20-11#a5b60342- Content hash
a5b60342- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_MemoryAbstractionInterface.pdf#nameddest=SWS_MemIf_00038
gemini-3.8-flash-low· 2026-10-13 · 德文原文