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
función MemIf_SetMode [SWS_MemIf_00038] 📄 PDF
void MemIf_SetMode (MemIf_ModeType Mode);
Invokes the "Set Mode" functions of all underlying memory abstraction modules.
La función MemIf_SetMode sirve para el cambio síncrono del modo de funcionamiento a través de la interfaz de memoria [SWS_MemIf_00038]. En la llamada, reenvía el modo solicitado a las funciones individuales «Set Mode» de todos los módulos de abstracción de memoria subyacentes [SWS_MemIf_00038]. Como parámetro se transfiere el modo de destino Mode, mientras que la función no proporciona ningún valor de retorno [SWS_MemIf_00038]. La interfaz está definida con el Service ID 0x01 en la cabecera MemIf.h [SWS_MemIf_00038].
En lo relativo a la concurrencia, MemIf_SetMode está especificada como no reentrante (Non Reentrant) [SWS_MemIf_00038]. Interpretación: Es de suponer que los llamadores probablemente no deben invocar la función de forma simultánea o discontinua desde varias tareas o rutinas de servicio de interrupción, motivo por el cual un acceso concurrente probablemente debería coordinarse mediante mecanismos de protección externos en caso de ser necesario. Pregunta Q-02b14e9cb4b05dc9 (abierta)
Debido a la semántica de ejecución síncrona, la llamada no regresa al llamador hasta después de reenviar la solicitud a los módulos de abstracción de memoria [SWS_MemIf_00038]. En la especificación del elemento no se contemplan valores de retorno específicos para la indicación de errores ni mensajes de error DET o DEM independientes para esta función [SWS_MemIf_00038].
Esta nota de uso se ha generado automáticamente y se basa exclusivamente en las indicaciones de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función 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.
La función MemIf_Read reenvía una solicitud de lectura de forma síncrona al módulo de abstracción de memoria subyacente seleccionado a través del parámetro DeviceIndex [SWS_MemIf_00039]. Está declarada en la cabecera MemIf.h y sirve para leer datos de un bloque de memoria lógico.
Parámetros e interfaz
La llamada a MemIf_Read incluye los siguientes parámetros de entrada y salida [SWS_MemIf_00039]:
DeviceIndex: Índice del dispositivo de destino para seleccionar el módulo de destino.BlockNumber: Número de bloque lógico del bloque de memoria que se va a leer.BlockOffset: Desplazamiento en bytes (byte offset) dentro del bloque lógico a partir del cual se lee.DataBufferPtr: Puntero al búfer para almacenar los datos leídos.Length: Número de bytes de datos que se van a leer.
Tratamiento de errores y valores de retorno
Si la detección de errores de desarrollo (Development Error Detection) está activa y se detecta un error de desarrollo, la función devuelve E_NOT_OK [SWS_MemIf_00039]. De lo contrario, el valor de retorno de la función de lectura invocada del módulo subyacente se reenvía como Std_ReturnType [SWS_MemIf_00039].
Concurrencia y restricciones
La función está especificada como síncrona y no reentrante (Non Reentrant) [SWS_MemIf_00039]. Por tanto, una llamada debería producirse típicamente en contexto de tarea; el llamante debe evitar o serializar las llamadas paralelas o anidadas. Pregunta Q-b774bf07a69e28af (abierta)
Esta nota de uso fue generada por una IA y se basa en la especificación AUTOSAR R20-11.
función 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.
Uso y contexto de llamada
La función de interfaz MemIf_Write sirve como capa de abstracción y llama a la función Write del módulo de abstracción de memoria subyacente que se selecciona mediante el parámetro DeviceIndex [SWS_MemIf_00040]. En la llamada síncrona se pasan tres parámetros de entrada: el índice de dispositivo DeviceIndex para seleccionar el controlador de destino, el número de bloque lógico BlockNumber así como el puntero DataBufferPtr al búfer con los datos que se van a escribir [SWS_MemIf_00040]. La función está especificada bajo el Service ID 0x03 y disponible a través del archivo de cabecera MemIf.h [SWS_MemIf_00040].
Tratamiento de errores y valores de retorno
El valor de retorno es de tipo Std_ReturnType [SWS_MemIf_00040]. Si la detección de errores de desarrollo (Development Error Detection) para la Memory Abstraction Interface está activa y se detecta un error de desarrollo según [SWS_MemIf_00022], MemIf_Write devuelve el código de error E_NOT_OK [SWS_MemIf_00040]. Si no hay ningún error, la función reenvía el valor de retorno del módulo subyacente invocado de forma inalterada al llamante [SWS_MemIf_00040].
Concurrencia y condiciones de contorno
En cuanto al comportamiento de concurrencia, MemIf_Write está definida como síncrona y no reentrante (Non Reentrant) [SWS_MemIf_00040].
Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR Classic R20-11.
función 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.
La función síncrona MemIf_Cancel sirve para llamar a la función de cancelación (cancel) del módulo de abstracción de memoria subyacente que se selecciona a través del parámetro Device Index [SWS_MemIf_00041]. El servicio no tiene valor de retorno y reenvía la orden de cancelación directamente a la instancia de abstracción direccionada [SWS_MemIf_00041].
Para la llamada y la integración se aplican las siguientes propiedades técnicas:
- Contexto de llamada y concurrencia: La función está definida como no reentrante (
Non Reentrant) [SWS_MemIf_00041]. Los llamantes deben asegurarse de que la ejecución no se produzca de forma concurrente o interruptiva por parte de otros contextos. - Firma e identificación: La interfaz
void MemIf_Cancel (uint8 Device Index)tiene el Service ID0x04y se proporciona a través del archivo de cabeceraMemIf.h[SWS_MemIf_00041]. - Parámetros: El parámetro de entrada
Device Index(tipouint8) selecciona el módulo de destino; no existen parámetros de entrada/salida ni de retorno [SWS_MemIf_00041]. - Tratamiento de errores: La especificación no describe para esta función ningún código de error, valor de retorno ni mensaje DET específico [SWS_MemIf_00041] (interpretación: una comprobación de índices de dispositivo no permitidos presumiblemente quede delegada a la arquitectura de sistema de nivel superior o al módulo subyacente). Pregunta Q-4a5d989ce611ba89 (abierta)
Esta nota de uso fue generada por una IA sobre la base de la especificación AUTOSAR R20-11.
función 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.
función 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
función 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.
La función síncrona MemIf_InvalidateBlock reenvía la orden para declarar inválido un bloque lógico al módulo de abstracción de memoria subyacente seleccionado a través del parámetro DeviceIndex [SWS_MemIf_00044]. La interfaz se proporciona a través de la cabecera MemIf.h y lleva el Service ID 0x07 [SWS_MemIf_00044].
Uso y parámetros
La llamada se realiza de forma síncrona y transfiere los siguientes parámetros de entrada al destino de direccionamiento [SWS_MemIf_00044]:
DeviceIndex: Índice numérico del módulo de abstracción de memoria subyacente [SWS_MemIf_00044].BlockNumber: Identificador unívoco del bloque de memoria a invalidar [SWS_MemIf_00044].
Tratamiento de errores y valores de retorno
La función devuelve un valor de estado del tipo Std_ReturnType [SWS_MemIf_00044]:
- Si la detección de errores de desarrollo (Development Error Detection) está activada para la Memory Abstraction Interface y se produce un error conforme a
SWS_MemIf_00022, la función devuelveE_NOT_OK[SWS_MemIf_00044]. - Si no se detecta ningún error de desarrollo, la interfaz devuelve el resultado de la función invocada del módulo subyacente [SWS_MemIf_00044].
concurrencia
La función está especificada como no reentrante (Non Reentrant) [SWS_MemIf_00044].
Esta nota de uso se generó de manera automatizada a partir de la especificación AUTOSAR Classic Release R20-11.
función MemIf_GetVersionInfo [SWS_MemIf_00045] 📄 PDF
void MemIf_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Returns version information.
función 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.
usar
La función síncrona MemIf_EraseImmediateBlock ordena el borrado de un bloque clasificado como inmediato en el módulo de abstracción de memoria subyacente [SWS_MemIf_00046]. La llamada se proporciona a través de la cabecera MemIf.h y lleva el Service ID 0x09 [SWS_MemIf_00046]. Como parámetros de entrada sirven DeviceIndex para direccionar el dispositivo de memoria o módulo de abstracción específico, así como BlockNumber para identificar el bloque de destino [SWS_MemIf_00046]. No existen parámetros inout o out adicionales [SWS_MemIf_00046].
Valores de retorno y tratamiento de errores
La función devuelve un valor de estado del tipo Std_ReturnType [SWS_MemIf_00046]. Si la detección de errores de desarrollo para la Memory Abstraction Interface está activada y se detecta el error correspondiente conforme a [SWS_MemIf_00022], la llamada proporciona el valor de retorno fijo E_NOT_OK [SWS_MemIf_00046]. Si no se produce ningún error de este tipo, se transmite al llamador el resultado inmediato de la función invocada del módulo subyacente [SWS_MemIf_00046].
Concurrencia y restricciones
La ejecución de MemIf_EraseImmediateBlock se realiza de forma síncrona y está especificada como no reentrante (Non Reentrant) [SWS_MemIf_00046]. Interpretación: Dado que no están permitidas las llamadas paralelas a la interfaz, es probable que la función en el sistema global probablemente solo deba llamarse desde un contexto sincronizado a nivel de tarea, a fin de evitar inconsistencias de datos en los controladores de memoria subyacentes. Pregunta Q-4fce518bab0115db (abierta)
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.
tipo 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
El tipo enumerado MemIf_StatusType identifica el estado actual de funcionamiento y de ejecución del módulo de abstracción de memoria subyacente, así como del controlador de dispositivo asociado conforme a [SWS_MemIf_00064]. Este tipo está definido en la Memory Abstraction Interface y se encuentra a disposición de los llamadores a través del archivo de cabecera MemIf.h [SWS_MemIf_00064].
La enumeración comprende cuatro estados distintos para representar la disponibilidad operativa [SWS_MemIf_00064]:
MEMIF_UNINIT: El módulo de abstracción subyacente o el controlador de dispositivo asociado (aún) no está inicializado [SWS_MemIf_00064].MEMIF_IDLE: El módulo de abstracción o el controlador de dispositivo está operativo y actualmente no ejecuta ninguna orden [SWS_MemIf_00064].MEMIF_BUSY: El módulo subyacente o el controlador de dispositivo está procesando una operación en este momento [SWS_MemIf_00064].MEMIF_BUSY_INTERNAL: El módulo de abstracción realiza operaciones de gestión interna, mientras que el controlador puede estar libre u ocupado [SWS_MemIf_00064].
Las capas que realizan la llamada utilizan este estado para determinar de forma síncrona, antes de asignar órdenes, si las capas de memoria están operativas o si se están ejecutando procesos de gestión interna [SWS_MemIf_00064]. Puesto que MemIf_StatusType representa una definición de tipo de datos pura, los aspectos funcionales como mensajes DET o DEM, reglas de reentrancia o contextos de llamada no se indican por separado en el elemento de especificación.
Este texto ha sido generado por una IA a partir de la especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I1)
tipo MemIf_JobResultType [SWS_MemIf_00065] 📄 PDF
Denotes the result of the last job.
El tipo enumerado MemIf_JobResultType describe el resultado de la última orden procesada dirigida a la interfaz de memoria y se proporciona a través del archivo de cabecera MemIf.h [SWS_MemIf_00065].
La enumeración define estados para la ejecución, así como estados específicos de error y de bloque [SWS_MemIf_00065]:
MEMIF_JOB_OK: La orden solicitada ha finalizado con éxito [SWS_MemIf_00065].MEMIF_JOB_PENDING: La orden todavía no ha concluido [SWS_MemIf_00065]. Interpretación: Esto indica que las órdenes se procesan de forma asíncrona y que el llamador determina la finalización a través de este estado intermedio. Pregunta Q-31078cf25506334e (abierta)MEMIF_JOB_FAILED: La orden no ha concluido con éxito [SWS_MemIf_00065].MEMIF_JOB_CANCELED: La orden ha sido cancelada [SWS_MemIf_00065].MEMIF_BLOCK_INCONSISTENT: El bloque solicitado es inconsistente, posiblemente contiene datos dañados o no se ha encontrado [SWS_MemIf_00065].MEMIF_BLOCK_INVALID: El bloque solicitado se ha marcado como no válido, de modo que no se puede ejecutar la operación deseada [SWS_MemIf_00065].
Al evaluar el resultado de la orden, el tipo sirve para diferenciar entre errores generales de ejecución (MEMIF_JOB_FAILED) y problemas relativos a bloques (MEMIF_BLOCK_INCONSISTENT, MEMIF_BLOCK_INVALID) [SWS_MemIf_00065].
Este texto ha sido generado por una IA y sirve de orientación.
tipo MemIf_ModeType [SWS_MemIf_00066] 📄 PDF
Denotes the operation mode of the underlying abstraction mod ules and device drivers.
El tipo enumerado MemIf_ModeType define el modo de funcionamiento de los módulos de abstracción de memoria y de los controladores de dispositivos subyacentes [SWS_MemIf_00066]. Se proporciona a través del archivo de cabecera MemIf.h y sirve para el control del comportamiento de velocidad y de funcionamiento de los accesos a memoria [SWS_MemIf_00066].
El rango de valores comprende, según [SWS_MemIf_00066], dos estados:
MEMIF_MODE_SLOW: Los módulos de abstracción y los controladores de dispositivos subyacentes funcionan en modo lento (Slow Mode) [SWS_MemIf_00066].MEMIF_MODE_FAST: Los módulos de abstracción y los controladores de dispositivos subyacentes funcionan en modo rápido (Fast Mode) [SWS_MemIf_00066].
En lo que respecta al tratamiento de errores, la reentrancia o los contextos de llamada específicos, la especificación del tipo no contiene estipulaciones independientes; la transferencia y evaluación del modo se realiza de forma síncrona a través de las correspondientes interfaces de la interfaz de memoria o de los controladores subyacentes [SWS_MemIf_00066].
Este texto ha sido generado por una IA y sirve para la orientación técnica.
Guía del implementador pendiente (complejidad 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#532341bc- Content hash
532341bc- 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 · Original en alemán