EEPROM Abstraction (Ea)
Provides uniform access to external and internal EEPROM devices.
Funktionen — Übersicht
void Ea_Init (const Ea_ConfigType* ConfigPtr);Initializes the EEPROM abstraction module.void Ea_SetMode (MemIf_ModeType Mode);Function to switch the mode of the underlying EEPROM DriverStd_ReturnType Ea_Read (uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);Reads Length bytes of block Blocknumber at offset Block Offset into the buffer Data Buffer Ptr.Std_ReturnType Ea_Write (uint16 BlockNumber, const uint8* DataBufferPtr);Writes the contents of the Data Buffer Ptr to the block Block Number.void Ea_Cancel (void);Cancels the ongoing asynchronous operation.MemIf_StatusType Ea_GetStatus (void);Service to return the Status.MemIf_JobResultType Ea_GetJobResult (void);Service to return the Job Result.Std_ReturnType Ea_InvalidateBlock (uint16 BlockNumber);Invalidates the block Block Number.void Ea_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);Service to get the version information of this module.Std_ReturnType Ea_EraseImmediateBlock (uint16 BlockNumber);Erases the block Block Number.void Ea_JobEndNotification (void);Service to report to this module the successful end of an asynchronous operation.void Ea_JobErrorNotification (void);Service to report to this module the failure of an asynchronous operation.void Ea_MainFunction (void);Service to handle the requested jobs and the internal management operations.void NvM_JobEndNotification (void);Function to be used by the underlying memory abstraction to signal end of job without error.void NvM_JobErrorNotification (void);Function to be used by the underlying memory abstraction to signal end of job with error.
Typen — Übersicht
struct Ea_ConfigTypeConfiguration data structure of the Ea module.
Funktionen & Typen — Detailansicht
函数 Ea_Init [SWS_Ea_00084] 📄 PDF
void Ea_Init (const Ea_ConfigType* ConfigPtr);
Initializes the EEPROM abstraction module.
函数 Ea_Init 用于初始化 EEPROM Abstraction 模块([SWS_Ea_00084])。它通过头文件 Ea.h 提供,并将模块置于就绪状态([SWS_Ea_00084])。
根据 [SWS_Ea_00084] 中的接口规范,以下属性和约束适用于该调用:
- 语义和服务 ID:该调用以同步方式进行。该服务被分配了服务 ID
0x00。 - 重入性:该函数被指定为不可重入(Non Reentrant),因此不得并发执行。
- 参数:
ConfigPtr(类型const Ea_ConfigType*)用作输入参数,指向所选的配置数据集。既不存在输入/输出参数,也不存在输出参数。 - 返回值:该函数不返回任何值(
void)。
关于调用上下文,当前条目不包含明确规定;初始化通常应在 ECU 启动阶段集中进行,然后再执行其他模块函数。 问题 Q-b2b40930e5fd0ee7 (未决)[SWS_Ea_00084] 中未列出特定的错误代码、出错时的反应或向 DET 和 DEM 发送的报告。
本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。
实现者指南即将推出(复杂度 I1)
函数 Ea_SetMode [SWS_Ea_00085] 📄 PDF
void Ea_SetMode (MemIf_ModeType Mode);
Function to switch the mode of the underlying EEPROM Driver
用法与语义
函数 Ea_SetMode 用于切换底层 EEPROM 驱动程序([SWS_Ea_00085])的操作模式。它接受类型为 MemIf_ModeType 的所需模式 Mode 作为输入参数([SWS_Ea_00085])。该函数没有返回值(void),服务 ID 为 0x01,可通过头文件 Ea.h 获取([SWS_Ea_00085])。
执行是异步进行的(Asynchronous),因此驱动程序的实际切换在调用后会在后台继续处理([SWS_Ea_00085])。
并发性与限制
-
重入性:该函数被指定为不可重入(
Non Reentrant)([SWS_Ea_00085])。必须在调用方防止来自不同任务或上下文的并行调用。 -
调用上下文和参数:不得传递任何输入/输出或纯输出参数;仅提供了输入参数
Mode([SWS_Ea_00085])。
本文件由人工智能根据 AUTOSAR 规范生成。
实现者指南即将推出(复杂度 I1)
函数 Ea_Read [SWS_Ea_00086] 📄 PDF
Std_ReturnType Ea_Read (uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);
Reads Length bytes of block Blocknumber at offset Block Offset into the buffer Data Buffer Ptr.
用法与语义
函数 Ea_Read 用于通过头文件 Ea.h 从指定的逻辑 EEPROM 块中读取有效数据 [SWS_Ea_00086]。通过参数 Block Number 对逻辑块进行寻址,该参数同时决定了其在 EEPROM 中的起始地址 [SWS_Ea_00086]。参数 Block Offset 指定块内的相对读取偏移量,而 Length 则定义要读取的字节数 [SWS_Ea_00086]。目标数据被写入由 Data Buffer Ptr 引用的缓冲区中 [SWS_Ea_00086]。
该调用的行为是异步的(Asynchronous):返回值 E_OK 仅表示 Ea 模块已接受作业请求,而 E_NOT_OK 则表示请求被拒绝 [SWS_Ea_00086]。解释:由于数据传输在后台异步执行,推测所引用的缓冲区在作业完全执行完毕之前必须保持不变且持续有效。 问题 Q-34c9b29f373bd6cf (未决)
并发性与限制
该接口被指定为不可重入(Non Reentrant)[SWS_Ea_00086]。因此,不允许从不同的执行上下文中进行并行调用,必须在调用方进行同步。
此使用说明是基于 R20-11 规范自动生成的。
函数 Ea_Write [SWS_Ea_00087] 📄 PDF
Std_ReturnType Ea_Write (uint16 BlockNumber, const uint8* DataBufferPtr);
Writes the contents of the Data Buffer Ptr to the block Block Number.
函数 Ea_Write 触发将数据从缓冲区异步写入逻辑 EEPROM 块的操作 [SWS_Ea_00087]。它通过头文件 Ea.h 声明,且其 Service-ID 为 0x03 [SWS_Ea_00087]。
参数与返回值
BlockNumber(输入,uint16):表示逻辑块的编号,并同时代表其在 EEPROM 中的起始地址 [SWS_Ea_00087]。DataBufferPtr(输入,const uint8*):指向包含待写入数据缓冲区的指针 [SWS_Ea_00087]。- 返回值(
Std_ReturnType):E_OK表示写入作业已被 Ea 模块接受执行;E_NOT_OK表示请求被拒绝 [SWS_Ea_00087]。
并发性与限制
该函数被指定为不可重入(Non Reentrant)[SWS_Ea_00087]。因此,在没有事先进行外部同步的情况下,推测不得无协调地进行并发调用。 问题 Q-a52fbcca6963c760 (未决)由于写入过程是异步执行的(Asynchronous)[SWS_Ea_00087],推测调用方必须将提供的缓冲区 DataBufferPtr 保留在内存中且不作更改,直至作业完全结束。该函数的规范摘录中未指明具体的 DET 或 DEM 错误代码。
此使用说明由 AI 基于 AUTOSAR Release R20-11 规范生成。
函数 Ea_Cancel [SWS_Ea_00088] 📄 PDF
void Ea_Cancel (void);
Cancels the ongoing asynchronous operation.
函数 Ea_Cancel 中止 EEPROM Abstraction 模块当前正在运行的异步过程([SWS_Ea_00088])。该服务通过头文件 Ea.h 提供,服务 ID 为 0x04([SWS_Ea_00088])。
关于调用行为和接口定义,适用以下特性([SWS_Ea_00088]):
- 语义:调用本身是同步进行的(
Synchronous),尽管它中止了一个正在运行的异步操作([SWS_Ea_00088])。 - 参数和返回:签名为
void Ea_Cancel(void)。该函数既不需要输入、输出也不需要传递参数,并且没有返回值([SWS_Ea_00088])。 - 重入性:该接口被定义为不可重入(
Non Reentrant)([SWS_Ea_00088])。因此,不得从多个执行上下文或中断任务并发调用它。
由于 Ea_Cancel 不接受作业或块标识符,因此中止直接涉及当前正在处理的整个异步过程([SWS_Ea_00088])。规范数据中不包含特定的错误代码或对检测机制的反馈。推测该调用通常由上层(如 Memory Abstraction 接口(MemIf))执行,以便有针对性地提前终止耗时的读取、写入或擦除过程。 问题 Q-e441cbf6a5097568 (未决)
本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。
函数 Ea_GetStatus [SWS_Ea_00089] 📄 PDF
MemIf_StatusType Ea_GetStatus (void);
Service to return the Status.
函数 Ea_GetJobResult [SWS_Ea_00090] 📄 PDF
MemIf_JobResultType Ea_GetJobResult (void);
Service to return the Job Result.
函数 Ea_InvalidateBlock [SWS_Ea_00091] 📄 PDF
Std_ReturnType Ea_InvalidateBlock (uint16 BlockNumber);
Invalidates the block Block Number.
使用
函数 Ea_InvalidateBlock 用于使由逻辑块编号指示的块失效 [SWS_Ea_00091]。它具有服务 ID 0x07,并通过头文件 Ea.h 提供 [SWS_Ea_00091]。作为输入参数,它接受类型为 uint16 的 Block Number;该参数表示逻辑块编号,并同时指定 EEPROM 中相关块的起始地址 [SWS_Ea_00091]。尚未为此服务定义输入/输出参数或纯输出参数 [SWS_Ea_00091]。
该调用作为异步操作(Asynchronous)执行 [SWS_Ea_00091]。类型为 Std_ReturnType 的返回值 E_OK 向调用者确认 EA 模块已接受作业请求以进行进一步处理 [SWS_Ea_00091]。
错误处理
如果 EA 模块无法接受请求的作业,则返回错误值 E_NOT_OK [SWS_Ea_00091]。然而,根据规范,仅当 DET 被启用时才会返回此 E_NOT_OK [SWS_Ea_00091]。
并发性与限制
该接口被指定为不可重入(Non Reentrant)[SWS_Ea_00091]。解读:因此,调用者推测不得并行或以中断方式调用该函数,因为模块端无法保证重入性 [SWS_Ea_00091]。 问题 Q-81d805517d2eac88 (未决)
本使用说明是基于 AUTOSAR Classic R20-11 的规范自动创建的。
函数 Ea_GetVersionInfo [SWS_Ea_00092] 📄 PDF
void Ea_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Service to get the version information of this module.
函数 Ea_EraseImmediateBlock [SWS_Ea_00093] 📄 PDF
Std_ReturnType Ea_EraseImmediateBlock (uint16 BlockNumber);
Erases the block Block Number.
根据 [SWS_Ea_00093],函数 Ea_EraseImmediateBlock 用于擦除 EEPROM 中的逻辑块。
- 用法和语义:该调用以异步方式进行([SWS_Ea_00093])。通过输入参数
Block Number传递逻辑块的编号,该编号同时表示该块在 EEPROM 中的起始地址([SWS_Ea_00093])。返回值的类型为Std_ReturnType:E_OK表明所请求的作业已被模块接受([SWS_Ea_00093])。 - 错误处理:如果 Default Error Tracer(DET)被启用,则在 EA 模块无法接受该作业时,函数返回
E_NOT_OK([SWS_Ea_00093])。如果 DET 未启用,根据规范的字面表述,出错时不应返回E_NOT_OK。 问题 Q-5015a2135dbd4723 (未决) - 并发性和限制:该函数被指定为不可重入(Non Reentrant)([SWS_Ea_00093])。因此,调用者必须确保避免并行或重叠的调用。声明可通过头文件
Ea.h获取,服务 ID 为0x09([SWS_Ea_00093])。
本文件由人工智能根据 AUTOSAR 规范生成。
函数 Ea_JobEndNotification [SWS_Ea_00094] 📄 PDF
void Ea_JobEndNotification (void);
Service to report to this module the successful end of an asynchronous operation.
函数 Ea_JobEndNotification 用于通知模块 Ea 先前发起的异步操作已成功完成 [SWS_Ea_00094]。该接口通过头文件 Ea.h 提供,服务 ID 为 0x10 [SWS_Ea_00094]。
关于语义和接口定义,根据 [SWS_Ea_00094] 适用以下属性:
- 签名和参数:该函数不需要任何传递参数(
void),并且不返回任何返回值(void)。 - 同步性:该调用是同步处理的。
- 错误处理:该接口仅报告成功完成;该元素中的此通知未定义特定的错误代码或错误消息。
在并发性方面,Ea_JobEndNotification 被指定为不可重入(Non Reentrant)[SWS_Ea_00094]。因此,调用者必须确保不发生并行或嵌套调用。解读:该函数通常应由底层驱动程序在其异步处理结束时调用,其中调用上下文推测必须确保顺序执行且互不抢占。 问题 Q-296b61b743e7c9b8 (未决)
此使用说明由 AI 基于 AUTOSAR R20-11 规范生成。
函数 Ea_JobErrorNotification [SWS_Ea_00095] 📄 PDF
void Ea_JobErrorNotification (void);
Service to report to this module the failure of an asynchronous operation.
函数 Ea_JobErrorNotification 用作通知接口,以向 Ea 模块报告先前启动的异步操作的错误 [SWS_Ea_00095]。它通过头文件 Ea.h 可用,且其 Service-ID 为 0x11 [SWS_Ea_00095]。
关于接口规范和使用,适用以下特性:
- 参数与返回值:该函数既没有传入参数(无 in、out 或 inout),也没有返回值(签名
void Ea_JobErrorNotification(void))[SWS_Ea_00095]。 - 执行行为与重入性:调用为同步处理,但被指定为不可重入(Non Reentrant)[SWS_Ea_00095]。因此,调用方必须确保调用按顺序进行,不被并行上下文重叠。
- 协同交互:由于该函数用于通知异步作业的失败,一旦作业失败,通常推测由底层硬件抽象模块或存储器驱动程序发起调用(解释)。 问题 Q-810e76dee987a5a1 (未决)
未为此服务定义具体的错误代码、开发错误(DET)或生产错误(DEM);元素中未指定该调用本身的单独错误行为。
本文由 AI 生成。所有专业表述完全基于 AUTOSAR R20-11 的规范数据。
函数 Ea_MainFunction [SWS_Ea_00096] 📄 PDF
void Ea_MainFunction (void);
Service to handle the requested jobs and the internal management operations.
使用
函数 Ea_MainFunction 用于处理请求的作业以及在 EEPROM Abstraction 模块内执行内部管理操作 [SWS_Ea_00096]。根据接口定义 void Ea_MainFunction(void),该函数不接受任何传递参数,也不向调用者返回任何返回值 [SWS_Ea_00096]。
调用上下文与并发性
该接口具有服务 ID 0x12,并通过头文件 SchM_Ea.h 进行声明 [SWS_Ea_00096]。解读:由于通过 SchM_Ea.h 提供,该调用通常应由调度管理器(BSW 调度器)在任务上下文中周期性执行,以便在后台持续推进存储作业的异步处理。 问题 Q-23f33a40a1e08c34 (未决)
错误处理
由于 Ea_MainFunction 不提供返回值,因此错误状态或作业进度不会直接通过函数调用传递 [SWS_Ea_00096]。在当前规范摘录中,未为此服务定义特定的错误代码以及向开发接口模块(DET)或诊断模块(DEM)报告的要求。
本文本由自动生成。所有陈述均完全基于 R20-11 版本的规范数据。
函数 NvM_JobEndNotification [SWS_Ea_00099] 📄 PDF
void NvM_JobEndNotification (void);
Function to be used by the underlying memory abstraction to signal end of job without error.
用法与语义
根据 [SWS_Ea_00099],回调函数 NvM_JobEndNotification 供底层存储抽象用于向上级模块指示作业已成功结束且无错误。该服务具有签名 void NvM_JobEndNotification(void);它既不需要输入参数也不需要输入/输出参数,并且不返回值 [SWS_Ea_00099]。执行被指定为同步的,并且该接口通过头文件 NvM_MemIf.h 提供 [SWS_Ea_00099]。
并发性与调用条件
关于运行时行为,NvM_JobEndNotification 被归类为不可重入(Non Reentrant)[SWS_Ea_00099]。因此,调用实体必须确保不会从多个上下文中以中断或并行方式调用该通知。解读:存储抽象层通常应在其周期性主函数中或在异步驱动程序作业完成后执行该函数,只要确定该操作已无误结束。 问题 Q-adabc07be0a3e7d2 (未决)
错误处理与交互
在 [SWS_Ea_00099] 中未为该通知函数定义特定的错误代码、开发错误(DET)或生产错误(DEM)。其原因在于该调用仅指示作业的无误完成 [SWS_Ea_00099]。如果在存储作业期间发生错误,则不会调用此通知。
本文本由 AI 基于规范生成。
函数 NvM_JobErrorNotification [SWS_Ea_00100] 📄 PDF
void NvM_JobErrorNotification (void);
Function to be used by the underlying memory abstraction to signal end of job with error.
通知函数 NvM_JobErrorNotification 由底层存储抽象(Memory Abstraction)用于向 NVRAM Manager 报告作业的失败完成 [SWS_Ea_00100]。该接口的声明通过头文件 NvM_MemIf.h 提供 [SWS_Ea_00100]。
根据规范 [SWS_Ea_00100],以下属性适用于该接口的调用和集成:
-
签名和语法:该函数的签名为
void NvM_JobErrorNotification (void)[SWS_Ea_00100]。 -
参数和返回值:该函数既没有输入参数(
Parameters (in): None)、输入/输出参数(Parameters (inout): None),也没有输出参数(Parameters (out): None),并且不返回值(Return value: None)[SWS_Ea_00100]。 -
同步性:该调用被指定为同步(
Synchronous)[SWS_Ea_00100]。 -
并发性:该函数被确定为不可重入(
Non Reentrant)[SWS_Ea_00100]。因此,来自存储抽象的相应调用不得并发或重叠发生。
定义中未包含特定的错误代码、用于错误区分的参数或向 Default Error Tracer(DET)或 Diagnostic Event Manager(DEM)模块发送通知的要求 [SWS_Ea_00100]。该函数仅用作以错误结束的作业结果的纯状态消息 [SWS_Ea_00100]。
本使用说明由自动生成,完全基于 AUTOSAR Classic R20-11 的规范。
类型 Ea_ConfigType [SWS_Ea_00190] 📄 PDF
Configuration data structure of the Ea module.
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_Ea- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_Ea@rel:R20-11#e0416bb6- Content hash
e0416bb6- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_EEPROMAbstraction.pdf#nameddest=SWS_Ea_00084
gemini-3.8-flash-low· 2026-10-13 · 德文原文