Flash EEPROM Emulation (Fee)
Provides emulation of EEPROM-like data blocks on Flash memory devices.
Funktionen — Übersicht
void Fee_Init (const Fee_ConfigType* ConfigPtr);Service to initialize the FEE module.void Fee_SetMode (MemIf_ModeType Mode);Function to switch the mode of the underlying Flash DriverStd_ReturnType Fee_Read (uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);Service to initiate a read job.Std_ReturnType Fee_Write (uint16 BlockNumber, const uint8* DataBufferPtr);Service to initiate a write job.void Fee_Cancel (void);Service to call the cancel function of the underlying flash driver.MemIf_StatusType Fee_GetStatus (void);Service to return the status.MemIf_JobResultType Fee_GetJobResult (void);Service to query the result of the last accepted job issued by the upper layer software.Std_ReturnType Fee_InvalidateBlock (uint16 BlockNumber);Service to invalidate a logical block.void Fee_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);Service to return the version information of the FEE module.Std_ReturnType Fee_EraseImmediateBlock (uint16 BlockNumber);Service to erase a logical block.void Fee_JobEndNotification (void);Service to report to this module the successful end of an asynchronous operation.void Fee_JobErrorNotification (void);Service to report to this module the failure of an asynchronous operation.void Fee_MainFunction (void);Service to handle the requested read / write / erase jobs and the internal management operations.void NvM_JobEndNotification (void);-void NvM_JobErrorNotification (void);-
Typen — Übersicht
struct Fee_ConfigTypeConfiguration data structure of the Fee module.
Funktionen & Typen — Detailansicht
función Fee_Init [SWS_Fee_00085] 📄 PDF
void Fee_Init (const Fee_ConfigType* ConfigPtr);
Service to initialize the FEE module.
La función Fee_Init sirve como servicio central para inicializar el módulo de emulación de Flash EEPROM (FEE) [SWS_Fee_00085]. La invocación se realiza a través de la interfaz declarada en Fee.h con el ID de servicio 0x00 [SWS_Fee_00085]. Como único parámetro de entrada se transfiere ConfigPtr, que sirve como puntero al conjunto de datos de configuración seleccionado de tipo const Fee_ConfigType* [SWS_Fee_00085]. No se definen parámetros de entrada/salida adicionales ni parámetros de salida puros, y la función no devuelve ningún valor de retorno (void) [SWS_Fee_00085].
Aunque se trata de una función de inicialización fundamental, la semántica de ejecución está clasificada expresamente en la especificación como asíncrona (Asynchronous) [SWS_Fee_00085]. Interpretación: Dado que la función actúa de forma asíncrona, es de suponer que la invocación de Fee_Init solo inicie la inicialización del módulo, mientras que los pasos de inicialización que consumen tiempo se completan en segundo plano de manera no bloqueante [SWS_Fee_00085]. Pregunta Q-7d91ac2e51869606 (abierta)
Para la concurrencia y el contexto de invocación, la especificación establece que Fee_Init no es reentrante (Non Reentrant) [SWS_Fee_00085]. Por consiguiente, la función no debe invocarse en ningún momento de forma paralela ni anidada desde diferentes contextos [SWS_Fee_00085].
Esta indicación de uso fue creada por una IA y se basa exclusivamente en la especificación AUTOSAR Classic Release R20-11.
Guía del implementador pendiente (complejidad I1)
función Fee_SetMode [SWS_Fee_00086] 📄 PDF
void Fee_SetMode (MemIf_ModeType Mode);
Function to switch the mode of the underlying Flash Driver
Uso y contexto de llamada
La función Fee_SetMode sirve para cambiar el modo de funcionamiento del controlador de flash subyacente ([SWS_Fee_00086]). Se proporciona a través del archivo de cabecera Fee.h con el ID de servicio 0x01 ([SWS_Fee_00086]). El servicio espera como único parámetro de entrada Mode (de tipo MemIf_ModeType), que define el modo de funcionamiento deseado del controlador de flash ([SWS_Fee_00086]). No se pasan parámetros de salida ni ningún valor de retorno (void) ([SWS_Fee_00086]).
Semántica asíncrona y concurrencia
La interfaz está especificada como asíncrona ([SWS_Fee_00086]). Dado que tras la llamada no se devuelve ningún valor de función, el proceso de conmutación propiamente dicho del hardware flash debería ejecutarse en segundo plano con retardo de tiempo. Pregunta Q-9dbc267f51e150af (abierta) En cuanto al contexto de llamada, Fee_SetMode está clasificada como no reentrante (Non Reentrant) ([SWS_Fee_00086]). Por lo tanto, los llamadores deben asegurarse de que la función no se llame de forma simultánea o interrumpida desde diferentes subprocesos o tareas.
Tratamiento de errores e interacción
En el presente extracto de especificación no se definen códigos de error específicos, mensajes de error DET ni eventos DEM para Fee_SetMode ([SWS_Fee_00086]). Del mismo modo, no se identifican relaciones directas con otros requisitos. Interpretación: una posible comprobación de valores de modo no válidos debería gestionarse internamente en el controlador o en el módulo Fee sin retorno explícito de error al llamador. Pregunta (abierta)
Este texto ha sido generado por una IA y se basa exclusivamente en las especificaciones de la versión R20-11 de AUTOSAR.
Guía del implementador pendiente (complejidad I1)
función Fee_Read [SWS_Fee_00087] 📄 PDF
Std_ReturnType Fee_Read (uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);
Service to initiate a read job.
usar
La función Fee_Read sirve para iniciar una solicitud de lectura asíncrona en el módulo Flash EEPROM Emulation y se declara a través del archivo de cabecera Fee.h [SWS_Fee_00087]. Posee el ID de servicio 0x02 y acepta los siguientes parámetros de transferencia [SWS_Fee_00087]:
Block Number: número del bloque lógico, que indica a su vez su dirección de inicio en la memoria flash.Block Offset: desplazamiento de lectura (offset) dentro del bloque en cuestión.Length: cantidad de bytes que se van a leer del bloque.Data Buffer Ptr: puntero al búfer de destino para almacenar los datos leídos.
Como valor de retorno, la función proporciona Std_ReturnType: E_OK indica que la solicitud de lectura requerida fue aceptada por el módulo; E_NOT_OK indica que la solicitud fue rechazada [SWS_Fee_00087].
Concurrencia y restricciones
La invocación de Fee_Read está especificada como no reentrante (Non Reentrant) y asíncrona (Asynchronous) [SWS_Fee_00087].
Interacción con el controlador de flash
Siempre que la función Fls_BlankCheck esté configurada en el controlador flash, Fee_Read debe invocar esta función [SWS_Fee_00187]. Esto sirve para comprobar previamente si el área de memoria se puede leer sin desencadenar, por ejemplo, errores de ECC provocados por celdas flash borradas pero aún no programadas [SWS_Fee_00187].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I1)
función Fee_Write [SWS_Fee_00088] 📄 PDF
Std_ReturnType Fee_Write (uint16 BlockNumber, const uint8* DataBufferPtr);
Service to initiate a write job.
Uso y semántica
La función Fee_Write sirve como servicio para iniciar una solicitud de escritura en el módulo de emulación de Flash EEPROM conforme a [SWS_Fee_00088]. La declaración está disponible a través de la cabecera Fee.h. La llamada se realiza de forma asíncrona: la función solo inicia el proceso de escritura y no bloquea hasta la finalización física del proceso de escritura.
Para la transferencia de los datos de escritura se definen dos parámetros [SWS_Fee_00088]:
BlockNumber(uint16): designa el número de bloque lógico y define a su vez la dirección de inicio de este bloque en la EEPROM.DataBufferPtr(const uint8*): puntero al búfer de datos que contiene los datos útiles que se van a escribir.
Valores de retorno y concurrencia
El valor de retorno de tipo Std_ReturnType indica inmediatamente si la solicitud de escritura pudo ser aceptada por el módulo [SWS_Fee_00088]:
E_OK: el módulo aceptó la solicitud solicitada.E_NOT_OK: el módulo no aceptó la solicitud.
En cuanto a la concurrencia, Fee_Write está especificada como no reentrante (Non Reentrant) [SWS_Fee_00088]. Por lo tanto, los llamadores deben asegurarse de que la función no se invoque de forma concurrente desde diferentes contextos. El ID de servicio de la función es 0x03 [SWS_Fee_00088]. Interpretación: Tras el retorno de E_OK, es de suponer que la transferencia física de los datos se procese en segundo plano de forma asíncrona mediante ciclos posteriores del módulo. Pregunta Q-8bedddcf2371f6bf (abierta)
Este texto ha sido generado por una IA y sirve como guía orientativa. Las especificaciones de AUTOSAR referenciadas son determinantes.
función Fee_Cancel [SWS_Fee_00089] 📄 PDF
void Fee_Cancel (void);
Service to call the cancel function of the underlying flash driver.
La función Fee_Cancel es un servicio síncrono del módulo Fee para reenviar una solicitud de cancelación al controlador flash subyacente [SWS_Fee_00089]. Este servicio se declara a través de la cabecera Fee.h y posee el ID de servicio numérico 0x04 [SWS_Fee_00089].
Uso y contexto de llamada
La interfaz posee la firma void Fee_Cancel (void) [SWS_Fee_00089]. Para la invocación se aplican, según la especificación, las siguientes características de parámetros y ejecución:
- Parámetros: La función no espera parámetros de transferencia; no hay presentes parámetros de entrada, de entrada/salida ni de salida [SWS_Fee_00089].
- Valor de retorno: No se devuelve ningún valor de retorno al llamador [SWS_Fee_00089].
- Sincronicidad: El procesamiento de la invocación a la función está definido como síncrono (Synchronous) [SWS_Fee_00089].
Concurrencia y restricciones
En cuanto al comportamiento de concurrencia, Fee_Cancel está especificada como no reentrante (Non Reentrant) [SWS_Fee_00089]. Por lo tanto, las instancias llamadoras deben asegurarse de que la función no se invoque de forma paralela ni anidada desde diferentes contextos de tarea o de interrupción.
Interacción y tratamiento de errores
La tarea central de Fee_Cancel consiste en invocar la función de cancelación del controlador flash subyacente [SWS_Fee_00089]. En la carga útil no se definen códigos de error específicos, valores de retorno ni mensajes de error para esta función. Dado que no se describe ningún tratamiento de errores, es de suponer que el comportamiento en caso de error dependa de la implementación del controlador flash invocado. Pregunta Q-bb066b6c05a2eb12 (abierta)
Esta indicación de uso se generó de forma automatizada y se basa exclusivamente en los contenidos de la especificación de la versión AUTOSAR R20-11.
función Fee_GetStatus [SWS_Fee_00090] 📄 PDF
MemIf_StatusType Fee_GetStatus (void);
Service to return the status. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlashEEPROMEmulation
función Fee_GetJobResult [SWS_Fee_00091] 📄 PDF
MemIf_JobResultType Fee_GetJobResult (void);
Service to query the result of the last accepted job issued by the upper layer software.
función Fee_InvalidateBlock [SWS_Fee_00092] 📄 PDF
Std_ReturnType Fee_InvalidateBlock (uint16 BlockNumber);
Service to invalidate a logical block.
La función Fee_InvalidateBlock sirve como servicio para invalidar un bloque lógico en la memoria flash [SWS_Fee_00092]. Está disponible a través de la cabecera Fee.h y posee el ID de servicio 0x07 [SWS_Fee_00092].
Uso y parámetros
La llamada se realiza de forma asíncrona; por lo tanto, la invalidación propiamente dicha se inicia como una orden en segundo plano [SWS_Fee_00092]:
- Block Number (
uint16, in): designa el número de bloque lógico, el cual determina al mismo tiempo la dirección inicial del bloque en la memoria flash [SWS_Fee_00092]. - Rückgabewert (
Std_ReturnType): devuelveE_OKsi el módulo aceptó correctamente la orden de invalidación [SWS_Fee_00092].
Manejo de errores
Si el módulo no pudo aceptar la solicitud, se devuelve E_NOT_OK; no obstante, según la especificación, este retorno de error está limitado expresamente a configuraciones con DET activado (only if DET is enabled) [SWS_Fee_00092]. Interpretación: Si DET está desactivado, es probable que no se señale al emisor de la llamada un rechazo de la orden mediante E_NOT_OK, ya que la especificación vincula la devolución de este valor de error a la activación de DET. Pregunta Q-2e54187ddb69e481 (abierta)
Concurrencia y condiciones de contorno
La interfaz está declarada como no reentrante (Non Reentrant) [SWS_Fee_00092]. Por tanto, los llamadores deben asegurarse de que no se produzcan llamadas paralelas o de interrupción a Fee_InvalidateBlock mientras esté activa una llamada a función previa [SWS_Fee_00092].
Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR R20-11.
función Fee_GetVersionInfo [SWS_Fee_00093] 📄 PDF
void Fee_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Service to return the version information of the FEE module.
función Fee_EraseImmediateBlock [SWS_Fee_00094] 📄 PDF
Std_ReturnType Fee_EraseImmediateBlock (uint16 BlockNumber);
Service to erase a logical block.
Uso y parámetros
La función Fee_EraseImmediateBlock proporciona un servicio asíncrono para borrar un bloque lógico y está declarada a través del archivo de cabecera Fee.h [SWS_Fee_00094]. La función posee el ID de servicio hexadecimal 0x09 [SWS_Fee_00094]. Como único parámetro de entrada sirve Block Number de tipo uint16; este especifica el número del bloque lógico y designa a la vez su dirección inicial en la EEPROM [SWS_Fee_00094].
Valores de retorno y tratamiento de errores
Como valor de retorno, la interfaz devuelve el estado Std_ReturnType [SWS_Fee_00094]. El valor E_OK confirma que el módulo aceptó correctamente la orden de borrado solicitada [SWS_Fee_00094]. Si el módulo no aceptó la orden, la función devuelve E_NOT_OK; según la especificación, no obstante, este valor de retorno solo se produce con la supervisión de errores DET activada [SWS_Fee_00094].
Concurrencia y restricciones
Respecto a la concurrencia y a las condiciones de llamada, Fee_EraseImmediateBlock está clasificada como no reentrante (Non Reentrant) y opera de forma asíncrona [SWS_Fee_00094]. Los módulos llamadores deben garantizar, por tanto, que no se produzca ninguna otra llamada a la misma interfaz mientras el módulo todavía esté ocupado con el procesamiento.
Explicación contextual basada en la especificación AUTOSAR.
función Fee_JobEndNotification [SWS_Fee_00095] 📄 PDF
void Fee_JobEndNotification (void);
Service to report to this module the successful end of an asynchronous operation. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlashEEPROMEmulation
La función Fee_JobEndNotification sirve para comunicar al módulo Fee la finalización correcta de una operación asíncrona ([SWS_Fee_00095]).
Con respecto al uso y a la firma, se aplican las siguientes determinaciones:
- Firma y parámetros: La función posee la firma
void Fee_JobEndNotification (void);. No espera parámetros de entrada, de entrada/salida ni de salida, y no devuelve ningún valor de retorno ([SWS_Fee_00095]). - Cabecera: La declaración se proporciona a través de
Fee.h([SWS_Fee_00095]). - ID de servicio: La función está definida a través del ID de servicio
0x10([SWS_Fee_00095]). - Sincronía: La propia invocación está especificada como síncrona ([SWS_Fee_00095]).
- Concurrencia: La rutina está clasificada como no reentrante (Non Reentrant) ([SWS_Fee_00095]).
Interacción y contexto de invocación: Normalmente, es de suponer que esta callback sea invocada por un módulo subyacente (como un controlador flash) para señalar el final de una solicitud asíncrona de escritura o borrado. Pregunta Q-8a3ccdba2024001f (abierta) Debido a la propiedad Non Reentrant, el llamador debe asegurarse de que no se produzcan invocaciones concurrentes ([SWS_Fee_00095]).
Este texto ha sido generado por una IA basándose en la especificación AUTOSAR para R20-11.
función Fee_JobErrorNotification [SWS_Fee_00096] 📄 PDF
void Fee_JobErrorNotification (void);
Service to report to this module the failure of an asynchronous operation.
La función Fee_JobErrorNotification sirve como servicio de notificación para comunicar al módulo Fee el fallo de una operación asíncrona [SWS_Fee_00096]. La interfaz posee la signatura void Fee_JobErrorNotification (void) y está disponible a través de la cabecera Fee.h [SWS_Fee_00096]. Al servicio con el identificador 0x11 no se le pasa ningún parámetro de entrada, de entrada/salida ni de salida [SWS_Fee_00096]. Del mismo modo, la llamada no devuelve ningún valor de retorno al llamador [SWS_Fee_00096].
La semántica de ejecución de la llamada está especificada como síncrona (Synchronous) [SWS_Fee_00096]. Para el comportamiento en tiempo de ejecución rige la restricción central de que la función no es reentrante (Non Reentrant) [SWS_Fee_00096]. Interpretación: el llamador —que presumiblemente se trata de un componente de controlador subyacente— debe asegurarse de que la notificación nunca se desencadene de forma concurrente o en paralelo desde contextos de interrupción. Pregunta Q-7d4c9618bf385721 (abierta)
En lo relativo al tratamiento de errores, a través de la interfaz sin parámetros no se transmiten códigos de error específicos y no hay documentados mensajes DET o DEM específicos del módulo para esta llamada [SWS_Fee_00096]. Cabe esperar que el módulo Fee asigne internamente el caso de error notificado a la orden asíncrona activa y adapte su estado en consecuencia. Pregunta Q-1fa43444195edb62 (abierta)
Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR R20-11.
función Fee_MainFunction [SWS_Fee_00097] 📄 PDF
void Fee_MainFunction (void);
Service to handle the requested read / write / erase jobs and the internal management operations.
La función Fee_MainFunction sirve, de acuerdo con [SWS_Fee_00097], para el procesamiento central de órdenes solicitadas de lectura, escritura y borrado, así como para la ejecución de operaciones de gestión interna del módulo. Está especificada con la signatura void Fee_MainFunction (void); y el ID de servicio 0x12 [SWS_Fee_00097].
Con respecto a la interfaz y el uso, la función no procesa ningún parámetro de transferencia y no posee ningún valor de retorno [SWS_Fee_00097]. De su disponibilidad a través de la cabecera SchM_Fee.h se puede deducir probablemente que su llamada se realiza de forma cíclica mediante la gestión de planificación (Schedule Management) del software básico. Pregunta Q-5ef9bcc5f438cb89 (abierta) La descripción sugiere que las órdenes transferidas previamente de forma asíncrona deberían procesarse de manera sucesiva dentro de estos ciclos periódicos.
La especificación no contiene identificadores ni códigos de error específicos relativos a escenarios de error, reentrancia ni condiciones de llamada específicas [SWS_Fee_00097]. Interpretación: como función de control cíclica central para el estado del módulo, es probable que Fee_MainFunction no sea reentrante, por lo que debe evitarse una llamada concurrente desde múltiples tareas. Pregunta (abierta)
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
función NvM_JobEndNotification [SWS_Fee_00098] 📄 PDF
void NvM_JobEndNotification (void);
-
Uso y signatura
La función NvM_JobEndNotification está definida en la especificación de la Flash EEPROM Emulation (Fee) como servicio y se encuentra disponible a través del archivo de cabecera Nvm.h ([SWS_Fee_00098]). Conforme a su sintaxis void NvM_JobEndNotification (void);, la función no requiere parámetros de entrada ni de salida y no devuelve ningún valor de retorno ([SWS_Fee_00098]). Para el comportamiento de ejecución se ha establecido una semántica síncrona (Sync/Async: true) ([SWS_Fee_00098]).
Concurrencia y restricciones
En lo relativo a la reentrancia, la función está clasificada con Don't care ([SWS_Fee_00098]). En la especificación no se prescriben restricciones específicas relativas al contexto de llamada. No se especifica un tratamiento de errores particular mediante mensajes DET o DEM para este elemento ([SWS_Fee_00098]).
Interacción y clasificación funcional
Aunque la función forma parte de la especificación de la Flash EEPROM Emulation, el campo de descripción no contiene más detalles ([SWS_Fee_00098]). Interpretación: debido a la denominación y a la declaración en Nvm.h, es probable que la función sirva como interfaz de callback a través de la cual el módulo Fee señaliza la finalización regular de una orden procesada de forma asíncrona al módulo NvM. Pregunta Q-ee00bece2e28a0e4 (abierta)
Esta nota de uso se generó automáticamente a partir de la especificación de AUTOSAR Release R20-11.
función NvM_JobErrorNotification [SWS_Fee_00099] 📄 PDF
void NvM_JobErrorNotification (void);
-
Uso y contexto de llamada
La función NvM_JobErrorNotification está definida conforme a [SWS_Fee_00099] como interfaz síncrona (Sync/ Async true). Su declaración se pone a disposición a través del archivo de cabecera Nvm.h ([SWS_Fee_00099]). La signatura es void NvM_JobErrorNotification (void), con lo cual no acepta parámetros de entrada, de paso ni de salida y no devuelve ningún valor de retorno ([SWS_Fee_00099]). Según el identificador y la asignación al módulo Fee, esta función de callback debería servir para notificar a la gestión de NVRAM en caso de producirse un error durante el procesamiento asíncrono de órdenes en el controlador de emulación de EEPROM en flash. Pregunta Q-4d70f8d384e04832 (abierta)
Tratamiento de errores y concurrencia
En [SWS_Fee_00099] no se enumeran códigos de error específicos, mensajes DET ni eventos DEM. Dado que no se transfieren parámetros de estado o error, un análisis detallado de errores probablemente se base en estados internos del módulo o en consultas posteriores del controlador. Pregunta Q-c45e72b67236c432 (abierta) Respecto a la concurrencia, [SWS_Fee_00099] especifica para la reentrancia el criterio Don't care, por lo que el requisito no formula pautas restrictivas sobre la capacidad de reentrada.
Este texto fue generado por una IA a partir de la especificación.
tipo Fee_ConfigType [SWS_Fee_00188] 📄 PDF
Configuration data structure of the Fee module.
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_Fee- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_Fee@rel:R20-11#fafceed9- Content hash
fafceed9- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlashEEPROMEmulation.pdf#nameddest=SWS_Fee_00085
gemini-3.8-flash-low· 2026-10-13 · Original en alemán