DEENESPTFRRUARHIKOZHNL

Flash EEPROM Emulation (Fee)

ModulFee (Flash EEPROM Emulation)
BSW-Modul-ID21
Standard-Header#include "Fee.h"
SWS-SpezifikationAUTOSAR_SWS_FlashEEPROMEmulation.pdf
ClusterMemory Services

Guía del móduloGENERADO POR IA

Emula una EEPROM con bloques lógicos sobre memoria flash y atiende solicitudes asíncronas de lectura y escritura.
GENERADO POR IA no revisado Modelo: claude-opus-5-5 · Esfuerzo: high · Temperatura: no controlable · Prompt: 82b558e5a038 Procedencia Preguntas abiertas (6)
Ancla causal: R20-11 Válido desde R20-11 Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Emula una EEPROM con bloques lógicos sobre memoria flash y atiende solicitudes asíncronas de lectura y escritura.

Fee mapea los bloques lógicos de una EEPROM emulada en memoria flash y atiende las solicitudes que el NVRAM Manager emite a través de MemIf. Las solicitudes de lectura, escritura y borrado solo se aceptan y luego se procesan de forma asíncrona en Fee_MainFunction [SWS_Fee_00097]. El progreso y el resultado los muestran Fee_GetStatus y Fee_GetJobResult. Tras Fee_Init, el módulo puede estar ocupado inicialmente con la gestión interna (MEMIF_BUSY_INTERNAL), pero ya acepta solicitudes SWS Fee p. 42. Las solicitudes de escritura afectan siempre al bloque completo.

Fee mapea los bloques lógicos de una EEPROM emulada en memoria flash. La BlockNumber designa al mismo tiempo la dirección de inicio del bloque [SWS_Fee_00087]. Las llamadas proceden del NVRAM Manager a través de la Memory Abstraction Interface, que selecciona el servicio adecuado mediante DeviceIndex SWS MemIf p. 18. Por debajo opera el controlador de flash Fls. Fee envía respuestas directamente al NVRAM Manager a través de NvM_JobEndNotification y NvM_JobErrorNotification [SWS_Fee_00098], [SWS_Fee_00099].

fee_kontext NvM NvM (NVRAM Manager) MemIf MemIf (Memory Abstraction Interface) NvM->MemIf MemIf_Read / MemIf_Write / MemIf_Cancel / MemIf_SetMode Fee Fee (Flash EEPROM Emulation) MemIf->Fee Fee_Read / Fee_Write / Fee_Cancel / Fee_GetStatus / Fee_GetJobResult Fee->NvM NvM_JobEndNotification / NvM_JobErrorNotification Fls Fls (Flash-Treiber) Fee->Fls Fls_Read / Fls_Write / Fls_Erase / Fls_Cancel / Fls_SetMode / Fls_BlankCheck Det DET Fee->Det Det_ReportError (optional) Fls->Fee Fee_JobEndNotification / Fee_JobErrorNotification EcuM EcuM EcuM->Fee Fee_Init SchM SchM (BSW Scheduler) SchM->Fee Fee_MainFunction (zyklisch)

Diagrama de contexto: Fee entre MemIf y Fls, inicializado por EcuM, activado cíclicamente por SchM, con respuestas directamente a NvM. Fuentes: [SWS_Fee_00085], [SWS_Fee_00097], [SWS_Fee_00105].

El EcuM llama a Fee_Init con el conjunto de configuración seleccionado; R20-11 clasifica este servicio como asíncrono [SWS_Fee_00085]. Después, el estado se encuentra en MEMIF_BUSY_INTERNAL, pero ya se aceptan solicitudes. Solo las llamadas repetidas a Fee_MainFunction concluyen la gestión interna y conducen a MEMIF_IDLE SWS Fee p. 42. Fee_GetStatus muestra el estado del módulo, y Fee_GetJobResult, el resultado de la última solicitud aceptada [SWS_Fee_00090], [SWS_Fee_00091].

fee_modulstatus start UNINIT MEMIF_UNINIT start->UNINIT BUSY_INTERNAL MEMIF_BUSY_INTERNAL UNINIT->BUSY_INTERNAL Fee_Init BUSY_INTERNAL->BUSY_INTERNAL Fee_MainFunction (gestión en curso) IDLE MEMIF_IDLE BUSY_INTERNAL->IDLE Fee_MainFunction (Verwaltung beendet) BUSY MEMIF_BUSY BUSY_INTERNAL->BUSY Fee_Read / Fee_Write angenommen IDLE->BUSY Fee_Read / Fee_Write angenommen BUSY->IDLE Fee_Cancel BUSY->IDLE Auftrag beendet (Annahme)

Diagrama de estados: Estado del módulo desde MEMIF_UNINIT a través de MEMIF_BUSY_INTERNAL hacia MEMIF_IDLE y MEMIF_BUSY; el retorno tras la finalización regular de la solicitud es una suposición. Fuentes: [SWS_Fee_00090], SWS Fee p. 28.

Las solicitudes de lectura, escritura, invalidación y borrado notifican únicamente su aceptación con E_OK; se procesan de forma asíncrona en Fee_MainFunction [SWS_Fee_00097]. Fee_Read lee fragmentos arbitrarios de un bloque; Fee_Write, siempre el bloque completo con desplazamiento cero SWS Fee p. 28. Durante la escritura, el bloque se considera internamente como «corrupted». Esta marcación debe distinguirse de una invalidación mediante Fee_InvalidateBlock SWS Fee p. 21.

Fee_Cancel es síncrono en R20-11 y cancela un trabajo pendiente a través del controlador Flash [SWS_Fee_00089]. Si no hay ningún trabajo pendiente, notifica FEE_E_INVALID_CANCEL [SWS_Fee_91002]. El controlador detecta los errores de Flash. Fee los notifica según la configuración por dos vías: como MEMIF_JOB_FAILED para su consulta o a través de NvM_JobErrorNotification. La recuperación corre a cargo del NVRAM Manager ErrorDescription p. 40. Los errores de manejo como la falta de inicialización o números de bloque no válidos los notifica Fee como errores de desarrollo [SWS_Fee_00010].

Rol en la pila de memoria NV: memoria Flash como EEPROM emulada

La Flash EEPROM Emulation (Fee) pone a disposición de la capa superior bloques lógicos y los mapea en la memoria Flash. El BlockNumber designa al mismo tiempo la dirección de inicio del bloque en la memoria [SWS_Fee_00087], [SWS_Fee_00088]. El NVRAM Manager no invoca Fee directamente, sino a través de la Memory Abstraction Interface. MemIf_Read y MemIf_Write invocan la función del módulo de abstracción seleccionado mediante DeviceIndex y transmiten su valor de retorno SWS MemIf p. 18, SWS MemIf p. 19. Hacia abajo, Fee se apoya en el controlador Flash Fls. De allí importa Fls_AddressType y Fls_LengthType, y de MemIf los tipos de estado, resultado y modo [SWS_Fee_00084].

Las notificaciones eluden MemIf. MemIf no proporciona callbacks por sí mismo; las rutinas de callback para los módulos de abstracción subyacentes las suministra el NVRAM Manager SWS MemIf p. 24. Para ello, Fee invoca NvM_JobEndNotification y NvM_JobErrorNotification [SWS_Fee_00098], [SWS_Fee_00099]. A la inversa, el controlador notifica la finalización de sus trabajos a Fee a través de Fee_JobEndNotification y Fee_JobErrorNotification [SWS_Fee_00095], [SWS_Fee_00096]. Fee es inicializado por EcuM e iniciado cíclicamente por el Basic Software Scheduler SWS Fee p. 42.

fee_kontext NvM NvM (NVRAM Manager) MemIf MemIf (Memory Abstraction Interface) NvM->MemIf MemIf_Read / MemIf_Write / MemIf_Cancel / MemIf_SetMode Fee Fee (Flash EEPROM Emulation) MemIf->Fee Fee_Read / Fee_Write / Fee_Cancel / Fee_GetStatus / Fee_GetJobResult Fee->NvM NvM_JobEndNotification / NvM_JobErrorNotification Fls Fls (Flash-Treiber) Fee->Fls Fls_Read / Fls_Write / Fls_Erase / Fls_Cancel / Fls_SetMode / Fls_BlankCheck Det DET Fee->Det Det_ReportError (optional) Fls->Fee Fee_JobEndNotification / Fee_JobErrorNotification EcuM EcuM EcuM->Fee Fee_Init SchM SchM (BSW Scheduler) SchM->Fee Fee_MainFunction (zyklisch)

Diagrama de contexto: Fee se sitúa entre MemIf y Fls. Es inicializado por EcuM, iniciado cíclicamente por SchM y notifica la finalización de trabajos directamente a NvM. Fuentes: [SWS_Fee_00085], [SWS_Fee_00097], [SWS_Fee_00098], [SWS_Fee_00104], [SWS_Fee_00105], SWS MemIf p. 18.

Como servicios de controlador requeridos, R20-11 nombra, entre otras, las siguientes funciones [SWS_Fee_00105]:

  • Fls_Read, Fls_Write, Fls_Erase y Fls_Compare,
  • Fls_Cancel, Fls_GetStatus, Fls_GetJobResult y Fls_SetMode,
  • Det_ReportRuntimeError.

De forma opcional se añaden Det_ReportError y Fls_BlankCheck [SWS_Fee_00104]. Una versión posterior del mismo requisito incluye en su lugar MemAcc_BlankCheck SWS Fee p. 40. La variante Fls sigue siendo normativa para R20-11.

Arranque: de Fee_Init a la disposición de aceptación

El EcuM invoca Fee_Init con un puntero al conjunto de configuración seleccionado [SWS_Fee_00085]. El tipo Fee_ConfigType es una estructura con elementos específicos de la implementación [SWS_Fee_00188]. Es destacable que R20-11 liste Fee_Init como asíncrono [SWS_Fee_00085]. Según el historial de cambios, la inicialización no tiene que completarse dentro de Fee_Init, y la máquina de estados se adaptó en consecuencia SWS Fee p. 4.

El diagrama de secuencia de la especificación muestra el flujo SWS Fee p. 42:

  1. Tras Fee_Init, el estado del módulo se encuentra en MEMIF_BUSY_INTERNAL.
  2. Los trabajos ya pueden aceptarse en este estado.
  3. El scheduler invoca Fee_MainFunction hasta que la gestión interna concluye.

Una versión posterior establece que Fee_MainFunction cambia entonces el estado de MEMIF_BUSY_INTERNAL a MEMIF_IDLE. La gestión puede requerir más de una llamada SWS Fee p. 38. La versión más antigua del gráfico solo muestra la invocación síncrona por parte del EcuM SWS Fee p. 38.

Hochlauf von FeeEcuMFeeSchMFee_Init(ConfigPtr)Modulstatus := MEMIF_BUSY_INTERNALFee_Init()las órdenes ya se aceptan a partir de aquíloopgestión interna aún requeridaFee_MainFunction()interne VerwaltungsoperationStatus bleibt MEMIF_BUSY_INTERNALFee_MainFunction()Fee_MainFunction()Verwaltung beendetModulstatus := MEMIF_IDLEFee_MainFunction()

Diagrama de secuencia: Fee_Init pone el módulo en MEMIF_BUSY_INTERNAL. Solo las llamadas repetidas a Fee_MainFunction completan la gestión interna y conducen a MEMIF_IDLE. Fuentes: [SWS_Fee_00085], [SWS_Fee_00097], SWS Fee p. 42.

Fee_MainFunction procesa los trabajos de lectura, escritura y borrado solicitados, así como las operaciones de gestión interna [SWS_Fee_00097]. Como función planificada, la invoca directamente el Basic Software Scheduler. No tiene parámetros ni valor de retorno y no es reentrante SWS Fee p. 40.

Estado del módulo y resultado del trabajo como variables de control

La capa superior controla sus llamadas mediante dos consultas síncronas. Fee_GetStatus devuelve uno de cuatro valores [SWS_Fee_00090]:

  • MEMIF_UNINIT: El módulo no está inicializado.
  • MEMIF_IDLE: el módulo está inactivo.
  • MEMIF_BUSY: un trabajo de la capa superior está en procesamiento.
  • MEMIF_BUSY_INTERNAL: una operación de gestión interna está en ejecución.

Como ejemplo de una operación de gestión interna, la especificación menciona la reorganización de la memoria Flash utilizada (garbage collection) SWS Fee p. 30. Se aceptan nuevos trabajos tanto en MEMIF_IDLE como en MEMIF_BUSY_INTERNAL y conducen a MEMIF_BUSY SWS Fee p. 28. Tras la finalización regular del trabajo, el estado debería volver a MEMIF_IDLE. Pregunta Q-beae785a1ba1cbec (abierta) El retorno a MEMIF_IDLE solo está documentado explícitamente aquí para la cancelación SWS Fee p. 29.

fee_modulstatus start UNINIT MEMIF_UNINIT start->UNINIT BUSY_INTERNAL MEMIF_BUSY_INTERNAL UNINIT->BUSY_INTERNAL Fee_Init BUSY_INTERNAL->BUSY_INTERNAL Fee_MainFunction (gestión en curso) IDLE MEMIF_IDLE BUSY_INTERNAL->IDLE Fee_MainFunction (Verwaltung beendet) BUSY MEMIF_BUSY BUSY_INTERNAL->BUSY Fee_Read / Fee_Write angenommen IDLE->BUSY Fee_Read / Fee_Write angenommen BUSY->IDLE Fee_Cancel BUSY->IDLE Auftrag beendet (Annahme)

Diagrama de estados: ciclo de vida del estado del módulo desde MEMIF_UNINIT pasando por MEMIF_BUSY_INTERNAL hasta MEMIF_IDLE y MEMIF_BUSY. La transición al finalizar regularmente el trabajo está marcada como suposición. Fuentes: [SWS_Fee_00090], SWS Fee p. 42, SWS Fee p. 28, SWS Fee p. 29.

Fee_GetJobResult se refiere al último trabajo aceptado [SWS_Fee_00091], SWS Fee p. 31. Distingue seis resultados:

  • MEMIF_JOB_OK: el trabajo concluyó con éxito.
  • MEMIF_JOB_PENDING: el trabajo está en espera o todavía en ejecución.
  • MEMIF_JOB_CANCELED: El trabajo fue cancelado.
  • MEMIF_JOB_FAILED: el trabajo ha fallado.
  • MEMIF_BLOCK_INCONSISTENT: el bloque contiene posiblemente datos corruptos.
  • MEMIF_BLOCK_INVALID: el bloque se ha marcado como no válido; la lectura no es posible.

Por tanto, el estado describe el módulo y el resultado describe el trabajo individual; ambos deben consultarse por separado [SWS_Fee_00090].

Trabajos de lectura, escritura y gestión de bloques

Los servicios de trabajo operan de forma asíncrona: E_OK solo significa que el trabajo fue aceptado [SWS_Fee_00087], [SWS_Fee_00088]. Fee_Read calcula la dirección de lectura a partir de la dirección de inicio del bloque y BlockOffset. El offset y la longitud pueden tomar cualquier valor de su rango de tipo. De este modo, se pueden leer tantos bytes como se desee a partir de cualquier posición de un bloque SWS Fee p. 26. Si en el controlador Flash está configurado Fls_BlankCheck, Fee_Read comprueba previamente con ello si el área es legible. Así se evita, por ejemplo, que celdas borradas pero no programadas desencadenen errores ECC [SWS_Fee_00187].

Fee_Write, en cambio, escribe siempre el bloque completo; el offset está fijado a cero SWS Fee p. 28. Esto se deriva del requisito superior de que los trabajos de borrado y escritura comiencen siempre en el límite virtual de 64K: un bloque se escribe por completo o no se escribe RS MemHwAb p. 24. En caso de aceptación, Fee establece el estado en MEMIF_BUSY y el resultado en MEMIF_JOB_PENDING, y devuelve E_OK. Para Fee_Read rige la misma condición de aceptación SWS Fee p. 26.

Para que las operaciones de escritura interrumpidas sigan siendo detectables, Fee mantiene para cada bloque una información interna de corrección SWS Fee p. 21. Al inicio de una operación de escritura, el bloque se marca como «corrupted» y, tras una finalización con éxito, de nuevo como «not corrupted». Esta información debe separarse estrictamente de la validez que la capa superior establece con Fee_InvalidateBlock.

orden de escritura a través de la pila de memoria NVNvMMemIfFeeSchMFlsUse Case: Annahme (synchron)MemIf_Write(DeviceIndex, BlockNumber, DataBufferPtr)Fee_Write(BlockNumber, DataBufferPtr)Offset fest 0 (ganzer Block)Status := MEMIF_BUSYErgebnis := MEMIF_JOB_PENDINGE_OKE_OKUse Case: Abarbeitung (asynchron)Fee_MainFunction()Block als „corrupted“ markierenFls_Write(…) (Annahme)Fee_JobEndNotification()Block als „not corrupted“ markierenErgebnis := MEMIF_JOB_OKoptBenachrichtigung konfiguriertNvM_JobEndNotification()

Diagrama de secuencia: un trabajo de escritura se acepta de forma síncrona, pero se concluye de forma asíncrona a través de Fee_MainFunction y la notificación del controlador. En el proceso, el bloque se marca primero como «corrupted» y al final de nuevo como «not corrupted». Fuentes: [SWS_Fee_00088], [SWS_Fee_00095], [SWS_Fee_00098], SWS Fee p. 28, SWS Fee p. 21, SWS Fee p. 37.

Fee_InvalidateBlock declara no válido un bloque lógico [SWS_Fee_00092]. Para ello invoca la función de borrado del controlador y/o modifica información de gestión interna que debe almacenarse a su vez de forma no volátil SWS Fee p. 32. Si la capa superior lee posteriormente tal bloque, Fee_MainFunction establece el resultado en MEMIF_BLOCK_INVALID. Si está configurado, invoca además la notificación de errores de la capa superior SWS Fee p. 38.

Fee_EraseImmediateBlock [SWS_Fee_00094] está concebido para servicios de diagnóstico o servicios del sistema similares. Con él borran previamente el área para datos inmediatos en caso necesario. La implementación decide si se realiza un borrado físico SWS Fee p. 35. Para Fee_InvalidateBlock y Fee_EraseImmediateBlock, R20-11 prevé el retorno E_NOT_OK expresamente solo con DET activada [SWS_Fee_00092], [SWS_Fee_00094].

Notificaciones, cancelación y cambio de modo

El controlador Flash notifica la finalización exitosa de un trabajo de controlador mediante Fee_JobEndNotification [SWS_Fee_00095]. A continuación, Fee realiza la gestión de bloques necesaria y después invoca, si está configurada, la notificación de fin de trabajo de la capa superior. Un resultado que todavía esté en MEMIF_JOB_PENDING lo establece en MEMIF_JOB_OK SWS Fee p. 37. Dependiendo de la estructura de la pila de memoria, los callbacks pueden ejecutarse a nivel de interrupción y propagarse hacia arriba a través de varias capas. Por lo tanto, su tiempo de ejecución debe ser corto; el diseño del sistema determina si las llamadas a nivel de interrupción están permitidas SWS Fee p. 36.

Fee_Cancel invoca la función de cancelación del controlador Flash [SWS_Fee_00089]. La capa superior accede al servicio mediante MemIf_Cancel SWS MemIf p. 20. La cancelación solo surte efecto en el estado MEMIF_BUSY: Fee invoca la cancelación del controlador, restablece sus variables internas y regresa a MEMIF_IDLE. Si DET está activada, Fee comprueba antes si el módulo está inicializado SWS Fee p. 29.

En Fee_Cancel difieren las versiones de la especificación. La mencionada versión posterior lista el servicio como asíncrono, mientras que R20-11 lo hace como síncrono [SWS_Fee_00089]. Para R20-11, la clasificación síncrona es determinante.

fee_cancel start aufruf Fee_Cancel() aufgerufen start->aufruf d_det ¿DET activo y estado MEMIF_UNINIT? aufruf->d_det e_uninit FEE_E_UNINIT melden d_det->e_uninit Sí d_busy ¿orden pendiente (estado MEMIF_BUSY)? d_det->d_busy No ende e_uninit->ende Abbruch (Annahme) fls llamar a la función de cancelación del controlador flash d_busy->fls Sí e_cancel FEE_E_INVALID_CANCEL melden d_busy->e_cancel No reset restablecer variables internas, estado := MEMIF_IDLE fls->reset reset->ende e_cancel->ende

Diagrama de actividades: Fee_Cancel se bifurca tras la comprobación de DET y el estado del módulo. Solo se cancela un trabajo pendiente; de lo contrario, se notifica FEE_E_INVALID_CANCEL. Fuentes: [SWS_Fee_00089], [SWS_Fee_91002], [SWS_Fee_00010], SWS Fee p. 29.

Fee_SetMode conmuta el modo de funcionamiento del controlador Flash subyacente [SWS_Fee_00086]. El diagrama correspondiente muestra la cadena de llamadas NvM → MemIf_SetMode → Fee_SetMode → Fls_SetMode SWS Fee p. 39. Fee_GetVersionInfo es el único servicio reentrante de Fee [SWS_Fee_00093]. Con DET activada, comprueba el puntero pasado frente a NULL SWS Fee p. 34.

Configuración e integración

Fee recibe la configuración mediante el Fee_ConfigType, que se pasa a Fee_Init [SWS_Fee_00085], [SWS_Fee_00188]. La estructura de inclusión de una versión anterior de la especificación muestra la siguiente división SWS Fee p. 11:

  • Fee_Cfg.h incluye MemIf_Types.h y Fls.h, opcionalmente también NvM_Cbk.h.
  • Fee_Lcfg.c y Fee_PBcfg.c contienen los datos de configuración.
  • El scheduler está conectado mediante SchM_Fee.h, y DET opcionalmente mediante Det.h.

Para R20-11, esta figura solo sirve de orientación. Si Fee está implementado como biblioteca específica del fabricante, los diagramas de secuencia solo son vinculantes para las relaciones con EcuM y MemIf, no para las llamadas al controlador SWS Fee p. 42.

Comportamiento en caso de error

Fee define cinco códigos como errores de desarrollo [SWS_Fee_00010]:

  • FEE_E_UNINIT (0x01): servicio invocado antes de la inicialización.
  • FEE_E_INVALID_BLOCK_NO (0x02): número de bloque no válido.
  • FEE_E_INVALID_BLOCK_OFS (0x03): offset de bloque no válido.
  • FEE_E_PARAM_POINTER (0x04): puntero de datos no válido.
  • FEE_E_INVALID_BLOCK_LEN (0x05): indicación de longitud no válida.

R20-11 añade dos códigos más [SWS_Fee_91002]. FEE_E_BUSY (0x06) aplica a llamadas mientras se está procesando un trabajo de usuario. FEE_E_INVALID_CANCEL (0x08) aplica a Fee_Cancel sin trabajo pendiente. Por tanto, un nuevo trabajo solicitado en el estado MEMIF_BUSY debería ser rechazado y respondido con E_NOT_OK. Pregunta Q-92062834653929da (abierta) La regla correspondiente solo se encuentra aquí de forma incompleta SWS Fee p. 28.

Los errores de la memoria Flash son detectados por el controlador Flash; el modo en que Fee reacciona a ellos es específico de la implementación ErrorDescription p. 40. Se notifica según la configuración por una de dos vías. O bien MemIf consulta Fee_GetJobResult y recibe MEMIF_JOB_FAILED, o bien Fee invoca activamente NvM_JobErrorNotification. La recuperación corre a cargo del NVRAM Manager. La capa superior detecta un módulo no inicializado mediante MEMIF_UNINIT en Fee_GetStatus ErrorDescription p. 53, [SWS_Fee_00090].

notificación de un error de flashFlsFeeMemIfNvMFee_JobErrorNotification() (Annahme)implementierungsspezifische FehlerbehandlungErgebnis := MEMIF_JOB_FAILEDaltCallback konfiguriertNvM_JobErrorNotification()Abfrage per PollingFee_GetJobResult()MEMIF_JOB_FAILEDrecuperación mediante el NVRAM Manager

Diagrama de secuencia: un error del controlador llega a la capa superior a elegir mediante callback a NvM o mediante sondeo de Fee_GetJobResult. Fuentes: [SWS_Fee_00096], [SWS_Fee_00099], [SWS_Fee_00091], ErrorDescription p. 40.

Para la coherencia de datos, un gráfico de R22-11 describe la cadena de información ErrorDescription p. 64:

  1. Fee comprueba la coherencia de los datos leídos y transmite un error al NVRAM Manager.
  2. El NVRAM Manager notifica NVM_E_INTEGRITY_FAILED al DEM.
  3. Inicia las recuperaciones configuradas: nueva lectura, bloque redundante o bloque ROM.
  4. Si estas fallan, establece el resultado NVM_REQ_INTEGRITY_FAILED.

En el lado de Fee, esto corresponde presumiblemente al resultado MEMIF_BLOCK_INCONSISTENT [SWS_Fee_00091]. Pregunta Q-a1846c349d831e17 (abierta)

fee_konsistenz Fee Fee Fee->Fee (1) comprobar consistencia de los datos leídos NvM NvM (NVRAM Manager) Fee->NvM (2) Fehlerstatus weiterleiten NvM->NvM (4) Wiederherstellung: read retry, redundanter Block, ROM-Block Dem DEM NvM->Dem (3) NVM_E_INTEGRITY_FAILED Ergebnis resultado de trabajo del NvM NvM->Ergebnis (5)/(6) Wiederherstellung gescheitert: NVM_REQ_INTEGRITY_FAILED

Diagrama de colaboración: Fee transmite un error de coherencia a NvM. NvM lo notifica a DEM, intenta la recuperación y, en caso de fallo, establece el resultado de NvM (estado R22-11). Fuentes: ErrorDescription p. 64.

Más evidencia detallada

Las reglas detalladas con condiciones de aceptación, comportamiento de callbacks y función principal provienen en parte de versiones posteriores de la especificación, p. ej. SWS Fee p. 38. Donde difieren de R20-11, se indica más arriba. Las referencias más importantes:

Guía generada por IA sobre la base de extractos de la especificación de Fee (classic, R20-11). Son determinantes los requisitos enlazados. Los pasajes de documentos de otras versiones se identifican como tales; las suposiciones se marcan como interpretación.

Flash EEPROM Emulation (Fee)

Provides emulation of EEPROM-like data blocks on Flash memory devices.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

función Fee_Init [SWS_Fee_00085] 📄 PDF

void Fee_Init (const Fee_ConfigType* ConfigPtr);

Service to initialize the FEE module.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: bf4a0ee4e182 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 840a1fe0d62e Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 51320bacc37c Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 46c33a39dfc2 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e038d068e179 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 93ce420cf23c Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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): devuelve E_OK si 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_EraseImmediateBlock [SWS_Fee_00094] 📄 PDF

Std_ReturnType Fee_EraseImmediateBlock (uint16 BlockNumber);

Service to erase a logical block.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c9619585e034 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 527f9c248660 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a8e92b7001f6 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 341cf633fe8b Procedencia Preguntas abiertas (3)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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);

-

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4ab59e2b5ce3 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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);

-

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8c7c531abb5f Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

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

Inicialización y estado

Fee_GetStatus función

Service to return the status. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlashEEPROMEmulation

MemIf_StatusType Fee_GetStatus (void);

Service to return the version information of the FEE module.

void Fee_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Fee_Init función

Service to initialize the FEE module.

void Fee_Init (const Fee_ConfigType* ConfigPtr);

Servicios

Fee_Cancel función

Service to call the cancel function of the underlying flash driver.

void Fee_Cancel (void);

Service to erase a logical block.

Std_ReturnType Fee_EraseImmediateBlock (uint16 BlockNumber);

Service to query the result of the last accepted job issued by the upper layer software.

MemIf_JobResultType Fee_GetJobResult (void);

Service to invalidate a logical block.

Std_ReturnType Fee_InvalidateBlock (uint16 BlockNumber);

Service to report to this module the successful end of an asynchronous operation. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_FlashEEPROMEmulation

void Fee_JobEndNotification (void);

Service to report to this module the failure of an asynchronous operation.

void Fee_JobErrorNotification (void);
Fee_Read función

Service to initiate a read job.

Std_ReturnType Fee_Read (uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);
Fee_SetMode función

Function to switch the mode of the underlying Flash Driver

void Fee_SetMode (MemIf_ModeType Mode);
Fee_Write función

Service to initiate a write job.

Std_ReturnType Fee_Write (uint16 BlockNumber, const uint8* DataBufferPtr);

-

void NvM_JobEndNotification (void);

-

void NvM_JobErrorNotification (void);

Cíclico

Service to handle the requested read / write / erase jobs and the internal management operations.

void Fee_MainFunction (void);

Tipos

Configuration data structure of the Fee module.