NVRAM Manager (NvM)
Provides synchronous and asynchronous block-based data management for non-volatile storage (EEPROM, Flash).
Funktionen — Übersicht
void NvM_Init (const NvM_ConfigType* ConfigPtr);Service for resetting all internal variables.Std_ReturnType NvM_SetDataIndex (NvM_BlockIdType BlockId, uint8 DataIndex);Service for setting the Data Inde x of a dataset NVRAM block.Std_ReturnType NvM_GetDataIndex (NvM_BlockIdType BlockId, uint8* DataIndexPtr);Service for getting the currently set Data Index of a datase t NVRAM blockStd_ReturnType NvM_SetBlockProtection (NvM_BlockIdType BlockId, boolean ProtectionEnabled);Service for setting/ resetting the write protection for a NV block.Std_ReturnType NvM_GetErrorStatus (NvM_BlockIdType BlockId, NvM_RequestResultType* RequestResultPtr);Service to read the block dependent error/ status information.void NvM_GetVersionInfo (Std_VersionInfoType* versioninfo);Service to get the version information of the Nv M module.Std_ReturnType NvM_SetRamBlockStatus (NvM_BlockIdType BlockId, boolean BlockChanged);Service for setting the RAM block status of a permanent RAM block or the status of the explicit synchronization of a NVRAM block.void NvM_SetBlockLockStatus (NvM_BlockIdType BlockId, boolean BlockLocked);Service for setting the lock status of a permanent RAM block or of the explicit synchronization of a NVRAM block.Std_ReturnType NvM_CancelJobs (NvM_BlockIdType BlockId);Service to cancel all jobs pending for a NV block.Std_ReturnType NvM_ReadBlock (NvM_BlockIdType BlockId, void* NvM_DstPtr);Service to copy the data of the NV block to its corresponding RAM block.Std_ReturnType NvM_WriteBlock (NvM_BlockIdType BlockId, const void* NvM_SrcPtr);Service to copy the data of the RAM block to its corresponding NV block.Std_ReturnType NvM_RestoreBlockDefaults (NvM_BlockIdType BlockId, void* NvM_DestPtr);Service to restore the default data to its corr esponding RAM block.Std_ReturnType NvM_EraseNvBlock (NvM_BlockIdType BlockId);Service to erase a NV block.Std_ReturnType NvM_InvalidateNvBlock (NvM_BlockIdType BlockId);Service to invalidate a NV block.Std_ReturnType NvM_ReadPRAMBlock (NvM_BlockIdType BlockId);Service to copy the data of the NV block to its corresponding permanent RAM block.Std_ReturnType NvM_WritePRAMBlock (NvM_BlockIdType BlockId);Service to copy the data of the permanent RAM block to its corresponding NV block.Std_ReturnType NvM_RestorePRAMBlockDefaults (NvM_BlockIdType BlockId);Service to restore the default data to its corresponding permanent RAM block.void NvM_ReadAll (void);Initiates a multi block read request.void NvM_WriteAll (void);Initiates a multi block write request.void NvM_CancelWriteAll (void);Service to cancel a running Nv M_ Write All request.void NvM_ValidateAll (void);Initiates a multi block validation request.void NvM_FirstInitAll (void);The function initiates a multi block first initialization request.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.void NvM_MainFunction (void);Service for performing the processing of the Nv M jobs.Std_ReturnType NvM_SingleBlockCallbackFunction (NvM_BlockRequestType BlockRequest, NvM_RequestResultType JobResult);Per block callback routine to notify the upper layer that an asynchronous single block request has been finished.Std_ReturnType NvM_MultiBlockCallbackFunction (NvM_MultiBlockRequestType MultiBlockRequest, NvM_RequestResultType JobResult);Common callback routine to notify the upper layer that an asynchronous multi block request has been finished.Std_ReturnType NvM_InitBlockCallbackFunction (NvM_InitBlockRequestType InitBlockRequest);Per block callback routine which shall be called by the Nv M module when default data needs to be restored in RAM, and a RO M...Std_ReturnType NvM_WriteRamBlockToNvm (void* NvMBuffer);Block specific callback routine which shall be called in order to let the application copy data from RAM block to Nv M...Std_ReturnType NvM_ReadRamBlockFromNvm (const void* NvMBuffer);Block specific callback routine which shall be called in order to let the application copy data from Nv M module's mirror to...
Typen — Übersicht
struct NvM_ConfigTypeConfiguration data structure of the Nv M module.NvM_MultiBlockRequestTypeIdentifies the type of request performed on multi block when signaled via the callback function or when reporting to Bsw Menum NvM_RequestResultTypeType NvM_RequestResultType.NvM_BlockIdTypeIdentification of a NVRAM block via a unique block identifier.NvM_InitBlockRequestTypeIdentifies the type of request performed on a block when signaled via the callback functionNvM_BlockRequestTypeIdentifies the type of reques t performed on a block when signaled via the callback function
Funktionen & Typen — Detailansicht
función NvM_Init [SWS_NvM_00447] 📄 PDF
void NvM_Init (const NvM_ConfigType* ConfigPtr);
Service for resetting all internal variables.
Uso y contexto de llamada
La función NvM_Init sirve para el restablecimiento síncrono de todas las variables internas del NVRAM Manager [SWS_NvM_00447]. Espera como parámetro de transferencia ConfigPtr un puntero al conjunto de datos de configuración seleccionado y no posee ningún valor de retorno [SWS_NvM_00447]. Como API de tipo 4, forma parte de las clases de configuración 2 y 3 [SWS_NvM_00560], [SWS_NvM_00561]. La función no es reentrante y solo debe ser llamada por el BSW Mode Manager [SWS_NvM_00447], [SWS_NvM_00693].
Tareas de inicialización
Durante la llamada, la función ejecuta las siguientes acciones:
- Restablecimiento de todas las variables internas, entre ellas máquinas de estados, colas de órdenes e indicadores de solicitud, a sus valores iniciales [SWS_NvM_00399].
- Puesta a cero del índice de registro de todos los bloques NVRAM del tipo
NVM_BLOCK_DATASET[SWS_NvM_00192]. - Fijación interna de la señal «INIT DONE», la cual constituye el requisito para el procesamiento de órdenes, la gestión de colas y el recálculo de CRC en el módulo [SWS_NvM_00257], [SWS_NvM_00399].
Restricciones e interacción
Debido a los estrictos requisitos para el tiempo de arranque de la unidad de control, NvM_Init no inicializa ningún bloque NVRAM configurado [SWS_NvM_00091]. El contenido de los bloques RAM permanentes no se modifica y las retrollamadas de sincronización no se invocan; esto queda reservado a la función NvM_ReadAll [SWS_NvM_00400]. Además, NvM_Init no inicializa ni los controladores subyacentes ni la abstracción de hardware de memoria ni módulos ajenos, dado que su inicialización por parte del BSW Mode Manager se da por sentada [SWS_NvM_00157], [SWS_NvM_00193].
Esta nota de uso se generó de forma automatizada sobre la base de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función NvM_SetDataIndex [SWS_NvM_00448] 📄 PDF
Std_ReturnType NvM_SetDataIndex (NvM_BlockIdType BlockId, uint8 DataIndex);
Service for setting the Data Inde x of a dataset NVRAM block.
función NvM_GetDataIndex [SWS_NvM_00449] 📄 PDF
Std_ReturnType NvM_GetDataIndex (NvM_BlockIdType BlockId, uint8* DataIndexPtr);
Service for getting the currently set Data Index of a datase t NVRAM block
función NvM_SetBlockProtection [SWS_NvM_00450] 📄 PDF
Std_ReturnType NvM_SetBlockProtection (NvM_BlockIdType BlockId, boolean ProtectionEnabled);
Service for setting/ resetting the write protection for a NV block. Availabl e via Nv M.h
Uso y semántica
La función síncrona y reentrante NvM_SetBlockProtection sirve para activar o restablecer la protección contra escritura para un bloque NVRAM a través del atributo correspondiente en el bloque administrativo [SWS_NvM_00450], [SWS_NvM_00016]. Está asignada a la clase de configuración de API 3 [SWS_NvM_00560]. El entorno del módulo NvM puede activar o desactivar de forma dirigida la protección contra escritura a través del parámetro ProtectionEnabled [SWS_NvM_00578]. La función devuelve E_OK en caso de ejecución correcta y E_NOT_OK en caso de error [SWS_NvM_00450].
Restricciones y concurrencia
La modificación de la protección contra escritura solo está permitida para bloques en los que NvMWriteBlockOnce esté configurado como FALSE, independientemente del valor del parámetro NvMBlockWriteProt [SWS_NvM_00325]. Si NvMWriteBlockOnce está configurado como TRUE, la protección contra escritura no se puede activar ni desactivar [SWS_NvM_00398], [SWS_NvM_00577]; esta protección tampoco se puede anular después de operaciones de lectura [SWS_NvM_00314], [SWS_NvM_00316], [SWS_NvM_00784]. Además, un estado de bloqueo establecido mediante NvM_SetBlockLockStatus no puede ser modificado por NvM_SetBlockProtection [SWS_NvM_00754]. Mientras una orden de bloque individual esté activa o encolada para el mismo bloque, la llamada no está permitida [SWS_NvM_00704].
Manejo de errores
Con la detección de desarrollo (DET) activada, la función notifica estados de error específicos:
NVM_E_UNINIT, si el módulo NvM aún no está inicializado [SWS_NvM_00606].NVM_E_PARAM_BLOCK_ID, si elBlockIdtransferido se encuentra fuera del rango válido [SWS_NvM_00609].NVM_E_BLOCK_PENDING, en caso de que para el bloque ya esté activo o encolado un proceso [SWS_NvM_00607].NVM_E_BLOCK_CONFIG, si el bloque está configurado conNvMWriteBlockOnce = TRUE[SWS_NvM_00608].NVM_E_BLOCK_LOCKED, si el bloque está bloqueado [SWS_NvM_00759].
Esta nota de uso se basa en la especificación del NVRAM Manager en AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función NvM_GetErrorStatus [SWS_NvM_00451] 📄 PDF
Std_ReturnType NvM_GetErrorStatus (NvM_BlockIdType BlockId, NvM_RequestResultType* RequestResultPtr);
Service to read the block dependent error/ status information.
función NvM_GetVersionInfo [SWS_NvM_00452] 📄 PDF
void NvM_GetVersionInfo (Std_VersionInfoType* versioninfo);
Service to get the version information of the Nv M module.
función NvM_SetRamBlockStatus [SWS_NvM_00453] 📄 PDF
Std_ReturnType NvM_SetRamBlockStatus (NvM_BlockIdType BlockId, boolean BlockChanged);
Service for setting the RAM block status of a permanent RAM block or the status of the explicit synchronization of a NVRAM block.
La función síncrona y reentrante NvM_SetRamBlockStatus sirve para establecer el estado de bloque RAM para bloques RAM permanentes o para bloques con sincronización explícita [SWS_NvM_00453]. Está disponible en las clases de configuración de API 2 y 3 [SWS_NvM_00561], [SWS_NvM_00560], siempre que haya sido activada mediante el parámetro de configuración NvMSetRamBlockStatusApi [SWS_NvM_00408].
A través del parámetro BlockChanged se controla si el bloque se marca como válido y modificado (TRUE) o como no válido y no modificado (FALSE) [SWS_NvM_00453], [SWS_NvM_00406]. Al pasar TRUE, el módulo asume la validez de los datos [SWS_NvM_00241]. La función devuelve E_OK en caso de cambio de estado exitoso y E_NOT_OK en caso de error [SWS_NvM_00453].
Si BlockChanged se establece en TRUE, la función solicita en segundo plano un nuevo cálculo de la suma de comprobación en NvM_MainFunction si NvMCalcRamBlockCrc está configurado [SWS_NvM_00121]. En bloques sin RAM permanente con sincronización explícita, este trabajo utiliza la retrollamada de escritura para la obtención de datos [SWS_NvM_00906]. Si esta falla, se realizan los reintentos configurados por cada llamada a NvM_MainFunction [SWS_NvM_00907], [SWS_NvM_00908]. Si todos los intentos resultan infructuosos, el trabajo se considera aun así finalizado y el bloque permanece marcado como modificado [SWS_NvM_00909].
Antes de la llamada, el módulo NvM debe estar inicializado [SWS_NvM_00711]. Si la detección de errores de desarrollo está activa, la función notifica NVM_E_UNINIT en caso de módulo no inicializado [SWS_NvM_00643], NVM_E_PARAM_BLOCK_ID en caso de BlockId no válida [SWS_NvM_00645] y NVM_E_BLOCK_PENDING si ya hay órdenes en ejecución o encoladas [SWS_NvM_00644]. Mientras una orden de bloque individual esté activa, la función no debe llamarse para dicho bloque [SWS_NvM_00704]. Un bloqueo establecido mediante NvM_SetBlockLockStatus no puede modificarse por este medio [SWS_NvM_00754].
Esta nota de uso se generó de forma automatizada sobre la base de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función NvM_SetBlockLockStatus [SWS_NvM_00548] 📄 PDF
void NvM_SetBlockLockStatus (NvM_BlockIdType BlockId, boolean BlockLocked);
Service for setting the lock status of a permanent RAM block or of the explicit synchronization of a NVRAM block.
Uso y contexto de llamada
La función síncrona y reentrante NvM_SetBlockLockStatus sirve para bloquear (BlockLocked = TRUE) o desbloquear (BlockLocked = FALSE) un bloque RAM configurado de forma permanente o la sincronización explícita de un bloque de NVRAM [SWS_NvM_00548]. Pertenece al alcance funcional de las clases de configuración de API 2 y 3 [SWS_NvM_00561], [SWS_NvM_00560]. La función no está contenida en la interfaz ServicePort y es invocada principalmente por el DCM, así como por controladores de dispositivos complejos (CDD) [SWS_NvM_00732].
Restricciones e interacción
La llamada actúa exclusivamente sobre bloques de NVRAM con bloque RAM permanente o sincronización explícita configurada; en todos los demás bloques carece de efecto [SWS_NvM_00732]. Si se bloquea un bloque (BlockLocked = TRUE), el NvM garantiza que los datos NV asociados no se modifiquen: el bloque se omite en NvM_WriteAll y se rechazan los servicios NvM_WriteBlock, NvM_WritePRAMBlock, NvM_InvalidateNvBlock y NvM_EraseNvBlock [SWS_NvM_00751]. En el siguiente arranque, el NvM carga el bloque garantizadamente desde la memoria NV durante NvM_ReadBlock o NvM_ReadPRAMBlock [SWS_NvM_00752]. El estado de bloqueo establecido no puede modificarse mediante NvM_SetRamBlockStatus ni a través de NvM_SetBlockProtection [SWS_NvM_00754]. La transferencia de BlockLocked = FALSE restablece el procesamiento regular [SWS_NvM_00753].
Manejo de errores
Con la detección de desarrollo (DET) activada, la función notifica errores de desarrollo específicos:
NVM_E_UNINIT, si el módulo NvM aún no está inicializado en el momento de la llamada [SWS_NvM_00728].NVM_E_PARAM_BLOCK_ID, si el parámetroBlockIdse encuentra fuera del rango permitido [SWS_NvM_00731].NVM_E_BLOCK_CONFIG, siempre que el bloque de NVRAM referenciado esté configurado con el parámetroNvMWriteBlockOnce = TRUE[SWS_NvM_00730].
Esta nota de uso se basa en la especificación AUTOSAR Classic R20-11 y resume los requisitos relativos a la llamada, el efecto de protección y el tratamiento de errores de la API.
Guía del implementador pendiente (complejidad I2)
función NvM_CancelJobs [SWS_NvM_00535] 📄 PDF
Std_ReturnType NvM_CancelJobs (NvM_BlockIdType BlockId);
Service to cancel all jobs pending for a NV block.
Uso y semántica
La función NvM_CancelJobs disponible a través de NvM.h sirve para cancelar de forma síncrona todas las órdenes pendientes en la cola para un determinado bloque de NVRAM [SWS_NvM_00535], [SWS_NvM_00536]. La función está diseñada como reentrante y espera como parámetro el BlockId, el cual identifica unívocamente el descriptor de bloque del bloque de NVRAM en cuestión [SWS_NvM_00535]. La llamada devuelve E_OK si las órdenes pendientes pudieron eliminarse con éxito de la cola, y E_NOT_OK en caso de que no fuera posible encontrar ninguna orden en la cola para el bloque especificado [SWS_NvM_00535].
Flujo y concurrencia
Una orden que ya se esté procesando activamente en el momento de la llamada a la función no es interrumpida por NvM_CancelJobs, sino que continúa ejecutándose hasta el final [SWS_NvM_00537]. Siempre que se acepte la solicitud de cancelación para órdenes en espera, el servicio establece previamente el resultado de solicitud específico del bloque en NVM_REQ_CANCELED [SWS_NvM_00225], [SWS_NvM_00536]. El propósito de esta limpieza es vaciar la cola, por ejemplo al terminar o reiniciar una partición, y evitar así notificaciones posteriores sobre trabajos completados [SWS_NvM_00225].
Tratamiento de errores y configuración
Con la detección de desarrollo (DET) activada, la función comprueba las precondiciones: Si el módulo aún no está inicializado, se notifica el error NVM_E_UNINIT [SWS_NvM_00648]. Si el BlockId transferido está fuera del rango válido, se emite el mensaje DET NVM_E_PARAM_BLOCK_ID [SWS_NvM_00649]. NvM_CancelJobs está clasificada como API de tipo 2 y está disponible en las clases de configuración de API 2 y 3 [SWS_NvM_00561], [SWS_NvM_00560].
Esta nota de uso se ha generado automáticamente a partir de la especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función NvM_ReadBlock [SWS_NvM_00454] 📄 PDF
Std_ReturnType NvM_ReadBlock (NvM_BlockIdType BlockId, void* NvM_DstPtr);
Service to copy the data of the NV block to its corresponding RAM block.
Uso y semántica
La función NvM_ReadBlock sirve para la copia asíncrona de datos útiles desde la memoria NV al bloque de RAM correspondiente [SWS_NvM_00010], [SWS_NvM_00454]. La llamada es reentrante [SWS_NvM_00454]. Adopta los parámetros, encola la petición de lectura en la cola interna de trabajos y devuelve inmediatamente E_OK en caso de aceptación correcta o E_NOT_OK en caso de rechazo [SWS_NvM_00195], [SWS_NvM_00454].
Si se transfiere un puntero NvM_DstPtr, se pueden leer datos en un búfer de RAM temporal difiriendo de la configuración del bloque; un puntero NULL no permitido provoca en este escenario un error DET [SWS_NvM_00196], [SWS_NvM_00278]. Un bloque de RAM permanente configurado se marca como no válido directamente al encolar o al inicio del procesamiento del trabajo [SWS_NvM_00198]. Solo tras un proceso de copia correcto se considera que el bloque de RAM es válido e inalterado [SWS_NvM_00200], y el resultado del trabajo cambia a NVM_REQ_OK [SWS_NvM_00206].
Tratamiento de errores e integridad de datos
Si se ha activado una suma de comprobación para el bloque (NvMCalRamBlockCrC == TRUE), el trabajo solicita un nuevo cálculo tras la copia [SWS_NvM_00201]:
- En caso de errores de CRC se notifica
NVM_E_INTEGRITY_FAILEDal DEM [SWS_NvM_00203]. Si existen, se cargan valores por defecto y el resultado se ajusta aNVM_REQ_RESTORED_DEFAULTS[SWS_NvM_00202]. Si faltan datos de ROM y callbacks de inicialización, resultaNVM_REQ_INTEGRITY_FAILED[SWS_NvM_00204]. - Si el controlador de memoria notifica
MEMIF_JOB_FAILEDy no hay valores de sustitución disponibles, el trabajo finaliza conNVM_REQ_NOT_OK[SWS_NvM_00359].
Particularidades de los tipos de bloques
- Redundant: si la lectura de la primera copia falla, se recurre automáticamente a la segunda copia NV [SWS_NvM_00199]. Si ambas copias son no válidas, se invalida el bloque completo [SWS_NvM_00317].
- Dataset: si el bloque seleccionado mediante el índice de conjunto de datos está marcado como no válido, no se realiza la copia en la RAM [SWS_NvM_00355].
- Write-Once: los bloques leídos de manera consistente con
NVM_WRITE_BLOCK_ONCEactivado quedan permanentemente protegidos contra escritura [SWS_NvM_00316].
Este texto ha sido generado por una IA y se basa exclusivamente en las especificaciones de la versión R20-11.
Guía del implementador pendiente (complejidad I2)
función NvM_WriteBlock [SWS_NvM_00455] 📄 PDF
Std_ReturnType NvM_WriteBlock (NvM_BlockIdType BlockId, const void* NvM_SrcPtr);
Service to copy the data of the RAM block to its corresponding NV block. Available vi a Nv M.h
La función NvM_WriteBlock sirve para copiar datos de un bloque de RAM al bloque NV asignado [SWS_NvM_00455], [SWS_NvM_00410]. La llamada se ejecuta de forma reentrante y asíncrona: la función acepta los parámetros pasados BlockId y NvM_SrcPtr, encola la orden de escritura en la cola interna de trabajos y retorna inmediatamente [SWS_NvM_00208]. El valor de retorno indica con E_OK la aceptación correcta o con E_NOT_OK el rechazo de la orden [SWS_NvM_00455].
En cuanto a la parametrización y la fuente de datos, se aplican las siguientes directrices:
- Si se pasa una dirección de RAM válida mediante
NvM_SrcPtr, la orden de escritura utiliza este búfer [SWS_NvM_00210]. Esto permite también guardar bloques de RAM temporales en bloques configurados originalmente como permanentes o con sincronización explícita [SWS_NvM_00280]. - Se presupone válido un bloque de RAM permanente configurado o bien se valida automáticamente antes de la operación de copia [SWS_NvM_00303].
- Si se ha configurado una suma de comprobación para el bloque NV, el trabajo solicita un nuevo cálculo de CRC antes de la operación de escritura [SWS_NvM_00212].
- En bloques de conjunto de datos (
NVM_BLOCK_DATASET), el destino se selecciona a través del índice de datos guardado en el bloque administrativo [SWS_NvM_00338]. - En bloques redundantes (
NVM_BLOCK_REDUNDANT), el trabajo finaliza conNVM_REQ_OKen cuanto al menos una copia se haya escrito correctamente [SWS_NvM_00284]. - Si
NvMWriteBlockOnce == TRUEestá establecido, el trabajo activa inmediatamente tras una escritura correcta la protección contra escritura en el bloque administrativo [SWS_NvM_00328]. - Las órdenes de escritura para el ID de bloque reservado 1 solo están permitidas si
NvMDynamicConfigurationestá activado [SWS_NvM_00311].
Tratamiento de errores y concurrencia:
- Si la detección de desarrollo está activa,
NvM_WriteBlocknotifica el error DETNVM_E_UNINITen caso de módulo no inicializado [SWS_NvM_00619], así comoNVM_E_BLOCK_PENDINGsi el mismo bloque ya está en procesamiento o encolado [SWS_NvM_00620]. La falta de un puntero de origen en búferes temporales provoca un error de parámetro DET [SWS_NvM_00280]. - Las respuestas negativas de la interfaz de memoria incrementan el contador de reintentos; tras superar
NVM_MAX_NUM_OF_WRITE_RETRIES, el trabajo finaliza conNVM_REQ_NOT_OK[SWS_NvM_00213], [SWS_NvM_00216]. - Si el bloque está configurado con prioridad inmediata,
NvM_WriteBlockcancela de forma destructiva un trabajo actualmente en ejecución para que la orden de escritura se procese a continuación [SWS_NvM_00300].
Esta nota de uso se ha generado automáticamente a partir de la especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función NvM_RestoreBlockDefaults [SWS_NvM_00456] 📄 PDF
Std_ReturnType NvM_RestoreBlockDefaults (NvM_BlockIdType BlockId, void* NvM_DestPtr);
Service to restore the default data to its corr esponding RAM block.
Uso y semántica
La función NvM_RestoreBlockDefaults restaura datos estándar en el bloque de RAM asignado ([SWS_NvM_00456], [SWS_NvM_00012]). Opera de forma asíncrona: tras la llamada, toma los parámetros, encola la solicitud en la cola de peticiones interna y regresa de inmediato con E_OK en caso de aceptación correcta o con E_NOT_OK en caso de rechazo ([SWS_NvM_00456], [SWS_NvM_00224]). Si a través del parámetro de salida NvM_DestPtr se transfiere una dirección de RAM válida, esta se utiliza como dirección de destino ([SWS_NvM_00435]). Para copiar datos de ROM a un bloque de RAM temporal a pesar de estar configurados un bloque de RAM permanente o callbacks de sincronización, el invocador debe transferir obligatoriamente un puntero distinto de NULL ([SWS_NvM_00436]).
Tratamiento de errores y condiciones límite
La función no es reentrante ([SWS_NvM_00456]) y forma parte de las clases de configuración de API 2 y 3 ([SWS_NvM_00561], [SWS_NvM_00560]). Si la detección de desarrollo (DET) está activa, notifica NVM_E_UNINIT si el módulo aún no está inicializado ([SWS_NvM_00625]), NVM_E_PARAM_BLOCK_ID en caso de BlockId no válida ([SWS_NvM_00630]), así como un error de parámetro si no se transfiere un puntero de destino válido en bloques configurados como permanentes para una copia temporal ([SWS_NvM_00436]). La función falla síncronamente con E_NOT_OK si el bloque es del tipo NVM_BLOCK_DATASET, existe al menos un bloque de ROM y el índice de datos actual apunta a un bloque NV ([SWS_NvM_00353]).
Procesamiento de trabajos e interacción
En el marco del procesamiento asíncrono de trabajos, el servicio carga valores estándar desde un bloque de ROM configurado ([SWS_NvM_00267]). Si se ha solicitado un bloque de RAM permanente o se utiliza un callback de sincronización explícito (NvMReadRamBlockFromNvCallback), el bloque de RAM se invalida antes del proceso de copia o antes de la llamada al callback ([SWS_NvM_00227]). Tras un proceso de copia correcto o tras el retorno del callback de sincronización con E_OK, el bloque de RAM se valida y se marca como modificado ([SWS_NvM_00228]). Si se ha configurado una suma de comprobación para el bloque, el trabajo solicita finalmente un nuevo cálculo del CRC ([SWS_NvM_00229]). Esta misma lógica de restauración la utilizan también NvM_ReadBlock y NvM_ReadAll como mecanismo de respaldo ante accesos fallidos de lectura de memoria o errores de CRC ([SWS_NvM_00202], [SWS_NvM_00293], [SWS_NvM_00657]).
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función NvM_EraseNvBlock [SWS_NvM_00457] 📄 PDF
Std_ReturnType NvM_EraseNvBlock (NvM_BlockIdType BlockId);
Service to erase a NV block.
La función reentrante y asíncrona NvM_EraseNvBlock ([SWS_NvM_00457]) de la clase de configuración de API 3 ([SWS_NvM_00560]) sirve para borrar un bloque de memoria no volátil en función del BlockId transferido. Siempre que no esté activa ninguna protección contra escritura, la función adopta los parámetros, encola la petición de borrado en la cola interna de trabajos y regresa inmediatamente ([SWS_NvM_00231], [SWS_NvM_00418]). El valor de retorno E_OK señala la aceptación correcta del trabajo, mientras que E_NOT_OK indica el rechazo ([SWS_NvM_00457]).
Antes de la llamada, el módulo NvM debe estar completamente inicializado ([SWS_NvM_00715]). Tras el encolado, la protección contra escritura no se vuelve a comprobar antes de extraer el trabajo de la cola ([SWS_NvM_00662]). En bloques redundantes del tipo NVM_BLOCK_REDUNDANT, el proceso de borrado solo se considera correcto una vez que se han borrado ambos bloques NV redundantes ([SWS_NvM_00269]). El contenido de datos de un bloque de RAM asignado permanece siempre inalterado mediante el procesamiento del trabajo ([SWS_NvM_00416]).
Una llamada se rechaza si se direcciona un bloque de ROM de un bloque de conjunto de datos ([SWS_NvM_00661]) o si el bloque está bloqueado mediante NvM_SetBlockLockStatus ([SWS_NvM_00751]). Con la detección de desarrollo (DET) activada, la función notifica NVM_E_UNINIT en caso de módulo no inicializado ([SWS_NvM_00631]), NVM_E_PARAM_BLOCK_ID en caso de BlockId no válida ([SWS_NvM_00635]), así como NVM_E_BLOCK_LOCKED en caso de bloque bloqueado ([SWS_NvM_00757]). Si el bloque no posee prioridad inmediata («immediate priority») o está configurada una prioridad estándar, con el DET activo se notifica el error NVM_E_BLOCK_CONFIG y se devuelve E_NOT_OK ([SWS_NvM_00357], [SWS_NvM_00636]). Si la posterior ejecución asíncrona falla, el estado de la solicitud se ajusta a NVM_REQ_NOT_OK ([SWS_NvM_00271]) y se notifica NVM_E_REQ_FAILED al DEM ([SWS_NvM_00663]).
Esta nota de uso se generó de forma automatizada sobre la base de la especificación.
Guía del implementador pendiente (complejidad I2)
función NvM_InvalidateNvBlock [SWS_NvM_00459] 📄 PDF
Std_ReturnType NvM_InvalidateNvBlock (NvM_BlockIdType BlockId);
Service to invalidate a NV block.
La función NvM_InvalidateNvBlock es un servicio asíncrono y reentrante de la clase de configuración de API 3 para invalidar un bloque NV [SWS_NvM_00459], [SWS_NvM_00560]. Como condición de llamada, el módulo NvM debe haber sido inicializado previamente por el entorno del módulo [SWS_NvM_00717]. La llamada adopta el parámetro BlockId, encola la solicitud en la cola de peticiones si la protección contra escritura está desactivada y regresa con E_OK [SWS_NvM_00239], [SWS_NvM_00424]. Si la solicitud no puede aceptarse, la función devuelve E_NOT_OK [SWS_NvM_00459].
Una llamada se rechaza síncronamente con E_NOT_OK si a través de BlockId se indicó un bloque de ROM de un bloque de conjunto de datos (Dataset) [SWS_NvM_00664]. Si el bloque se bloqueó previamente mediante NvM_SetBlockLockStatus, NvM rechaza el trabajo [SWS_NvM_00751] y notifica el error DET NVM_E_BLOCK_LOCKED con la interfaz de desarrollo activa [SWS_NvM_00756]. Si el bloque ya está encolado o en ejecución, se produce la notificación DET NVM_E_BLOCK_PENDING [SWS_NvM_00639].
El trabajo asíncrono propiamente dicho invalida el bloque NV referenciado [SWS_NvM_00421] teniendo en cuenta las siguientes condiciones de contorno:
- En bloques redundantes (
NVM_BLOCK_REDUNDANT), el resultado del trabajo solo se ajusta aNVM_REQ_OKuna vez que ambos bloques NV redundantes se hayan invalidado correctamente [SWS_NvM_00274]; este mismo mecanismo se aplica también enNvM_FirstInitAll[SWS_NvM_00919], [SWS_NvM_00920]. - Para bloques con
NVM_WRITE_BLOCK_ONCE, el trabajo deja la protección contra escritura inalterada [SWS_NvM_00960]. Si no precedió ningún proceso de lectura, el trabajo notifica el error DETNVM_E_WRITE_ONCE_STATUS_UNKNOWN[SWS_NvM_00958]. - Si se produce un error durante el procesamiento asíncrono, el resultado de la solicitud se ajusta a
NVM_REQ_NOT_OK[SWS_NvM_00275] y se transmite el error de producciónNVM_E_REQ_FAILEDal DEM [SWS_NvM_00666].
Esta nota de uso se ha generado mediante una IA y se basa exclusivamente en los datos de especificación de AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función NvM_ReadPRAMBlock [SWS_NvM_00764] 📄 PDF
Std_ReturnType NvM_ReadPRAMBlock (NvM_BlockIdType BlockId);
Service to copy the data of the NV block to its corresponding permanent RAM block.
usar
La función asíncrona y reentrante [SWS_NvM_00764] sirve para copiar datos de un bloque NV en el bloque RAM permanente asignado. La llamada acepta el BlockId, encola la solicitud de lectura en la cola de órdenes interna y retorna inmediatamente [SWS_NvM_00766]. El valor de retorno E_OK confirma la aceptación de la orden, mientras que E_NOT_OK señaliza un rechazo [SWS_NvM_00764]. La función pertenece al alcance funcional de las clases de configuración de API 2 y 3 [SWS_NvM_00560], [SWS_NvM_00561].
Flujo y sincronización
Tras la puesta en cola exitosa de la orden o el inicio del procesamiento, el bloque de RAM permanente se invalida de inmediato [SWS_NvM_00767]. Si se ha configurado una sincronización explícita para el bloque, la aplicación puede modificar el bloque de RAM hasta la llegada de la rutina de sincronización; en este caso, la invalidación tiene lugar directamente antes de la llamada a NvMReadRamBlockFromNvCallback [SWS_NvM_00706], [SWS_NvM_00767]. Si los datos NV se transfirieron a la RAM sin errores, la orden concluye con el estado NVM_REQ_OK [SWS_NvM_00765], [SWS_NvM_00775].
Tratamiento de errores y redundancia
En bloques del tipo NVM_BLOCK_REDUNDANT, la orden inicia automáticamente un intento de lectura en el segundo bloque siempre que falle el primer intento de lectura [SWS_NvM_00768]. En datasets (NVM_BLOCK_DATASET), se impide la copia si el bloque NV seleccionado mediante el índice es inconsistente [SWS_NvM_00771]; si el índice hace referencia a datos en ROM, estos se cargan y el resultado se establece en NVM_REQ_OK [SWS_NvM_00772]. Si hay configurados datos por defecto y el bloque NV no se puede leer con un estado de RAM no válido, se produce una restauración implícita [SWS_NvM_00575], la cual clasifica el bloque de RAM como válido y modificado [SWS_NvM_00774]; sin valores predeterminados configurados, la restauración se omite [SWS_NvM_00572]. Si previamente estuvo activo NvM_SetBlockLockStatus, se fuerza la recarga desde la memoria NV [SWS_NvM_00752].
Esta nota de uso se ha generado de forma automatizada sobre la base del estado de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función NvM_WritePRAMBlock [SWS_NvM_00793] 📄 PDF
Std_ReturnType NvM_WritePRAMBlock (NvM_BlockIdType BlockId);
Service to copy the data of the permanent RAM block to its corresponding NV block.
La función reentrante y asíncrona NvM_WritePRAMBlock inicia la escritura de los datos de un bloque de RAM permanente en el bloque NV asociado [SWS_NvM_00793], [SWS_NvM_00794]. La función está disponible en las clases de configuración de la API 2 y 3 [SWS_NvM_00561], [SWS_NvM_00560]. El ID de bloque reservado 1 solo debe transferirse si NvMDynamicConfiguration está establecido en TRUE [SWS_NvM_00311].
En la transferencia, la función E_OK devuelve en caso de aceptación correcta o E_NOT_OK [SWS_NvM_00793]. Si el bloque referenciado está bloqueado, la llamada falla con E_NOT_OK y el módulo notifica un error DET [SWS_NvM_00797]. La protección del bloque ya se comprueba al encolar en la cola de órdenes y no se vuelve a validar antes de la ejecución de la orden [SWS_NvM_00799]. Si el bloque de NVRAM dispone de prioridad inmediata (immediate priority), se cancela de inmediato y de forma destructiva una orden en curso y esta orden de escritura se procesa a continuación [SWS_NvM_00800].
Antes de la transferencia propiamente dicha a la memoria NV, la orden solicita un nuevo cálculo del CRC, siempre que el bloque esté configurado con CRC [SWS_NvM_00801]. Un bloque de RAM permanente que aún no sea válido se valida automáticamente [SWS_NvM_00803]. En bloques redundantes (NVM_BLOCK_REDUNDANT), se escriben ambos bloques NV, comenzando por aquel que no se haya leído en órdenes de lectura previas [SWS_NvM_00807], [SWS_NvM_00808]. En caso de errores de escritura, el número de reintentos se limita mediante NVM_MAX_NUM_OF_WRITE_RETRIES [SWS_NvM_00806]; si se produce un desbordamiento, el NvM establece el resultado de la orden en NVM_REQ_NOT_OK [SWS_NvM_00804] y notifica NVM_E_REQ_FAILED al DEM [SWS_NvM_00805].
Por lo que respecta a la concurrencia: En la sincronización implícita, la aplicación ya no debe modificar los datos del búfer tras la llamada hasta el fin de la orden; el acceso de lectura permanece permitido [SWS_NvM_00698]. En la sincronización explícita, el búfer puede modificarse hasta que se llame a la rutina de callback NvMWriteRamBlockToNvCallback [SWS_NvM_00705].
Este texto ha sido generado por una IA y sirve para la orientación técnica a partir de la especificación.
Guía del implementador pendiente (complejidad I2)
función NvM_RestorePRAMBlockDefaults [SWS_NvM_00813] 📄 PDF
Std_ReturnType NvM_RestorePRAMBlockDefaults (NvM_BlockIdType BlockId);
Service to restore the default data to its corresponding permanent RAM block.
Uso y semántica
La función NvM_RestorePRAMBlockDefaults restaura datos por defecto en el bloque de RAM permanente asociado ([SWS_NvM_00813], [SWS_NvM_00814]). El servicio opera de forma asíncrona y adopta a través del parámetro BlockId el identificador del descriptor de bloque de NVRAM ([SWS_NvM_00813]). Al ejecutarse la llamada, la solicitud se encola en la cola interna de órdenes ([SWS_NvM_00815]). El valor de retorno E_OK señaliza la aceptación correcta, mientras que E_NOT_OK indica un rechazo ([SWS_NvM_00813]). Si se ha configurado un bloque de ROM, los datos se cargan desde este en el marco del procesamiento asíncrono ([SWS_NvM_00816]).
Tratamiento de errores y condiciones límite
Si para el bloque no se han depositado datos por defecto en ROM ni una rutina de callback NvMInitBlockCallback, el estado del bloque permanece inalterado y la llamada devuelve E_NOT_OK ([SWS_NvM_00884]). Con la detección de desarrollo (DET) activada se notifican errores específicos:
NVM_E_UNINIT: El módulo todavía no está inicializado ([SWS_NvM_00831]).NVM_E_PARAM_BLOCK_ID: ElBlockIdtransferido se encuentra fuera del rango válido ([SWS_NvM_00834]).NVM_E_BLOCK_PENDING: Para el Block-ID ya hay una orden en cola o en procesamiento ([SWS_NvM_00832]).NVM_E_BLOCK_WITHOUT_DEFAULTS: No existen ni datos por defecto en ROM ni un callback de inicialización ([SWS_NvM_00886]).NVM_E_PARAM_ADDRESS: No se ha configurado ni un bloque de RAM permanente ni una sincronización explícita ([SWS_NvM_00894]).
Concurrencia e interacción
El servicio está especificado como no reentrante ([SWS_NvM_00813]) y se encuentra disponible en las clases de configuración de la API 2 y 3 ([SWS_NvM_00561], [SWS_NvM_00560]). Esta misma lógica de restauración se utiliza además internamente en NvM_ReadPRAMBlock en caso de que falle la operación de lectura subyacente ([SWS_NvM_00789], [SWS_NvM_00882]).
Esta nota de uso se basa en las especificaciones de AUTOSAR Classic Release R20-11.
Guía del implementador pendiente (complejidad I2)
función NvM_ReadAll [SWS_NvM_00460] 📄 PDF
void NvM_ReadAll (void);
Initiates a multi block read request.
La función NvM_ReadAll inicia de forma asíncrona una orden de lectura multibloque para inicializar los bloques de datos de RAM [SWS_NvM_00460], [SWS_NvM_00158]. No posee parámetros, no devuelve ningún valor de retorno y no es reentrante [SWS_NvM_00460]. La llamada señala la solicitud al módulo NvM y retorna inmediatamente; sin embargo, el procesamiento propiamente dicho se pospone hasta que todas las colas de órdenes de bloques individuales estén vacías [SWS_NvM_00243].
Al inicio, durante el arranque del sistema, la orden valida el ID de configuración comparando el valor almacenado con el compilado [SWS_NvM_00073], [SWS_NvM_00246]:
- En caso de coincidencia, se realiza la preparación normal para todos los bloques configurados [SWS_NvM_00247].
- Una diferencia de configuración se ignora si
NvMDynamicConfiguration == FALSEestá establecido [SWS_NvM_00248]. - Si se cumple
NvMDynamicConfiguration == TRUEyNvMResistantToChangedSw == FALSE, se ejecuta una preparación ampliada en caso de no coincidencia [SWS_NvM_00249].
A continuación, la orden itera sobre todos los bloques de usuario, comenzando por el ID de bloque más bajo (a excepción de los ID reservados 0 y 1) [SWS_NvM_00244]. Se tienen en cuenta bloques de RAM permanentes o bloques con retrollamada de sincronización configurada NvM_ReadRamBlockFromNvm, siempre que NvmSelectBlockForReadall == TRUE esté configurado [SWS_NvM_00118]. Los bloques seleccionados que no se hayan leído reciben el resultado NVM_REQ_BLOCK_SKIPPED [SWS_NvM_00287].
En bloques redundantes (NVM_BLOCK_REDUNDANT), si el primer intento de lectura falla, se lee automáticamente el segundo bloque NV [SWS_NvM_00288]. Tras una carga correcta en RAM, el estado del bloque se establece en «valid/unmodified» y el resultado de la orden en NVM_REQ_OK [SWS_NvM_00251], [SWS_NvM_00290], [SWS_NvM_00291]. Para bloques con NvMCalRamBlockCrC == TRUE, la orden solicita un nuevo cálculo de CRC [SWS_NvM_00292]. Si está configurado, se llama a NvMSingleBlockCallback para cada bloque y a MultiBlockCallback tras el último bloque [SWS_NvM_00281].
Esta nota de uso se basa en las especificaciones de AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función NvM_WriteAll [SWS_NvM_00461] 📄 PDF
void NvM_WriteAll (void);
Initiates a multi block write request.
Uso y contexto de llamada
La función NvM_WriteAll inicia de forma asíncrona una orden de escritura multibloque y no posee parámetros ni valores de retorno [SWS_NvM_00461]. Tras la llamada, la función señala la solicitud al módulo NvM y retorna inmediatamente [SWS_NvM_00254]. El procesamiento propiamente dicho se pospone hasta que todas las colas para órdenes de bloques individuales se hayan procesado por completo [SWS_NvM_00254]. La llamada se realiza típicamente en el marco del proceso básico de apagado (Shutdown) a través del BSW Mode Manager [SWS_NvM_00092].
Secuencia y procesamiento de bloques
Durante el apagado, la orden sincroniza bloques de RAM permanentes con los bloques NV correspondientes o ejecuta la retrollamada de sincronización explícita NvM_WriteRamBlockToNvm [SWS_NvM_00018]. Para ello solo se consideran los bloques para los que el parámetro de configuración NvMSelectBlockForWriteAll está establecido en true [SWS_NvM_00252], así como el bloque 1 en caso de ID de configuración discrepantes con configuración dinámica activa [SWS_NvM_00310]. Si se ha configurado un CRC para un bloque NVRAM, la orden solicita un nuevo cálculo antes de la operación de escritura y actualiza la suma de comprobación [SWS_NvM_00253]. Para bloques con NvMWriteBlockOnce == TRUE, tras una escritura correcta, la orden establece inmediatamente el flag de protección contra escritura en el bloque administrativo [SWS_NvM_00329].
Concurrencia y tratamiento de errores
- Reentrancia: La función no es reentrante [SWS_NvM_00461].
- Supervisión de errores: Para evitar bucles infinitos, un contador de reintentos supervisa los intentos de repetición ante respuestas no exitosas del módulo MemIf [SWS_NvM_00296].
- Resultados de la orden: Si falla el procesamiento de al menos un bloque, el resultado global se establece en
NVM_REQ_NOT_OK[SWS_NvM_00318]. Para los bloques configurados que no se escribieron, se establece el resultado individualNVM_REQ_BLOCK_SKIPPED[SWS_NvM_00298]. En bloques redundantes (NVM_BLOCK_REDUNDANT), la orden individual se consideraNVM_REQ_OKen cuanto al menos uno de los bloques NV se haya escrito correctamente [SWS_NvM_00337]. - Cancelación: Una orden en ejecución puede cancelarse mediante
NvM_CancelWriteAll[SWS_NvM_00019]. Esto da lugar al resultado globalNVM_REQ_CANCELED[SWS_NvM_00237], completándose el bloque que se está procesando en ese momento de forma no destructiva y con consistencia de datos [SWS_NvM_00238].
Este texto fue generado por una IA y sirve como guía orientativa. El texto vinculante es la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I1)
función NvM_CancelWriteAll [SWS_NvM_00458] 📄 PDF
void NvM_CancelWriteAll (void);
Service to cancel a running Nv M_ Write All request.
Uso y semántica
La función NvM_CancelWriteAll sirve para cancelar anticipadamente una operación de escritura multibloque en curso (NvM_WriteAll) [SWS_NvM_00458], [SWS_NvM_00019]. La llamada es asíncrona, no reentrante, no recibe parámetros y no proporciona valor de retorno [SWS_NvM_00458]. La función señala la solicitud de cancelación directamente al módulo y regresa inmediatamente [SWS_NvM_00232]. La solicitud no se encola en la cola de trabajos; siempre puede haber solo una solicitud pendiente de este tipo [SWS_NvM_00420]. Si en el momento de la llamada no hay ninguna operación activa, la llamada no tiene efecto [SWS_NvM_00233].
Desarrollo y consistencia de datos
La cancelación se lleva a cabo de tal forma que no se vea afectada la consistencia de datos del bloque de NVRAM que se esté procesando en el momento de la cancelación [SWS_NvM_00019]. El módulo finaliza este bloque activo de forma regular y ajusta su atributo de estado según el éxito a NVM_REQ_OK o NVM_REQ_NOT_OK, mientras que todos los bloques pendientes restantes se ajustan a NVM_REQ_CANCELED [SWS_NvM_00236]. El resultado global viene dado implícitamente por el resultado de la operación cancelada [SWS_NvM_00235], se deposita en una variable separada [SWS_NvM_00393] y puede consultarse mediante NvM_GetErrorStatus indicando el ID de bloque reservado 0 [SWS_NvM_00394]. Además, opcionalmente se puede notificar a un callback de nivel superior (NvMMultiBlockCallback) [SWS_NvM_00260]. Siempre que se configure a través de NvMDrvModeSwitch, la petición conmuta los dispositivos de memoria tras la cancelación al modo de funcionamiento lento («slow-mode») [SWS_NvM_00681].
Restricciones y tratamiento de errores
La llamada a NvM_CancelWriteAll está restringida funcionalmente y solo debe realizarse mediante el BSW Mode Manager (BswM) [SWS_NvM_00703]. Además, la función pertenece a la clase de configuración de API 2 [SWS_NvM_00561]. El módulo debe haber sido inicializado antes de la llamada [SWS_NvM_00716]; con la detección de desarrollo (DET) activada, una llamada en estado no inicializado genera el mensaje de error NVM_E_UNINIT [SWS_NvM_00637].
Esta nota de uso se creó de manera automatizada a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función NvM_ValidateAll [SWS_NvM_00855] 📄 PDF
void NvM_ValidateAll (void);
Initiates a multi block validation request.
La función NvM_ValidateAll inicia la validación asíncrona de varios bloques de NVRAM ([SWS_NvM_00855]) y pertenece a la clase de configuración de la API 3 ([SWS_NvM_00560]). No es reentrante, no espera ningún parámetro y no proporciona ningún valor de retorno ([SWS_NvM_00855]). Antes de la llamada, el módulo NvM debe estar inicializado ([SWS_NvM_00859]).
Al ser llamada, la función señaliza la solicitud al módulo y retorna de inmediato ([SWS_NvM_00858]). Sin embargo, el procesamiento efectivo se pospone hasta que todas las colas de órdenes de bloques individuales se hayan procesado por completo ([SWS_NvM_00858]). Para órdenes multibloque solo hay disponible un único espacio en total en la cola de órdenes ([SWS_NvM_00380]). El resultado global de la orden asíncrona se gestiona en una variable de estado separada ([SWS_NvM_00393]).
En el marco del procesamiento de órdenes, se establecen previamente en NVM_REQ_PENDING tanto el resultado multibloque como los resultados de los bloques individuales afectados ([SWS_NvM_00861]). El procesamiento solo tiene en cuenta aquellos bloques para los cuales NvMBlockUseAutoValidation está configurado en TRUE ([SWS_NvM_00856], [SWS_NvM_00860]):
- Se procesan bloques de RAM permanentes o se ejecuta la sincronización explícita a través del callback
NvM_WriteRamBlockToNvm([SWS_NvM_00860]). - El estado del bloque de RAM se establece en «VALID / CHANGED» ([SWS_NvM_00856]).
- Si adicionalmente se ha configurado un cálculo de CRC en RAM, la orden solicita el recálculo en segundo plano, el cual se procesa a través de
NvM_MainFunction([SWS_NvM_00857]). - Tras una validación correcta del bloque de RAM, el resultado específico del bloque cambia a
NVM_REQ_OK([SWS_NvM_00862]).
Esta nota de uso se generó de forma automatizada sobre la base de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función NvM_FirstInitAll [SWS_NvM_91001] 📄 PDF
void NvM_FirstInitAll (void);
The function initiates a multi block first initialization request. The job of the function does not care if a block exists in the non - volatile memory or not OR if it is valid (i.e. not corrupted) or not, when processing it.
La función NvM_FirstInitAll inicia la inicialización inicial asíncrona de varios bloques configurados ([SWS_NvM_91001]). El servicio no es reentrante, no espera parámetros y no proporciona ningún valor de retorno ([SWS_NvM_91001]). Durante el procesamiento no se tiene en cuenta si un bloque ya existe en la memoria no volátil o si es válido o está corrupto ([SWS_NvM_91001]). La longitud de la cola para órdenes multibloque (procedentes, entre otros, de NvM_FirstInitAll) es de uno, de modo que solo se puede encolar una única orden multibloque al mismo tiempo ([SWS_NvM_00380]).
El procesamiento varía según el tipo de gestión del bloque:
- NATIVE: Si se dispone de datos por defecto, el bloque NV se escribe con ellos ([SWS_NvM_00913]). Si el bloque cuenta con RAM permanente o sincronización explícita, la RAM se actualiza como en
NvM_RestoreBlockDefaultscon los datos por defecto (ROM o callback de inicialización) ([SWS_NvM_00915]); sin RAM permanente y sin sincronización explícita, el búfer interno de NvM actúa como RAM, permaneciendo inalterado el estado de la RAM ([SWS_NvM_00914]). Si faltan datos por defecto ([SWS_NvM_00919]) o si un callback de inicialización configurado falla con un valor de retorno distinto deE_OK([SWS_NvM_00921]), el bloque se invalida. - REDUNDANT: Si existen datos por defecto, se escriben ambas instancias del bloque con ellos ([SWS_NvM_00916]) y, existiendo RAM permanente o sincronización explícita, se actualiza la RAM ([SWS_NvM_00918]); de lo contrario, se utiliza el búfer interno ([SWS_NvM_00917]). Si un callback de inicialización no devuelve
E_OK, se invalidan ambas instancias ([SWS_NvM_00922]). - DATASET: Todos los bloques o instancias de bloques NV de este tipo configurados para el procesamiento se invalidan sin excepción ([SWS_NvM_00923], [SWS_NvM_00924]).
Si falla la escritura de un bloque NATIVE con datos por defecto ([SWS_NvM_00925]), la invalidación de un bloque NATIVE ([SWS_NvM_00927]) o la escritura de ambas instancias de un bloque REDUNDANT ([SWS_NvM_00926]), la orden establece el resultado global en NVM_REQ_NOT_OK.
Este texto ha sido generado por una IA sobre la base de la especificación R20-11.
Guía del implementador pendiente (complejidad I1)
función NvM_JobEndNotification [SWS_NvM_00462] 📄 PDF
void NvM_JobEndNotification (void);
Function to be used by the underlying memory abstraction to signal end of job without error.
usar
La abstracción de memoria subyacente llama a la función de callback síncrona NvM_JobEndNotification para señalizar al gestor de NVRAM la finalización sin errores de una orden [SWS_NvM_00462]. La función no tiene parámetros ni valor de retorno y está disponible a través del archivo de cabecera NvM_MemIf.h con el ID de servicio 0x11 [SWS_NvM_00462]. Una notificación correcta de la abstracción de memoria incluye operaciones de lectura, escritura o borrado finalizadas sin errores [SWS_NvM_00111].
Concurrencia y restricciones
La interfaz está especificada como no reentrante [SWS_NvM_00462]. Dependiendo de la función invocadora dentro de la abstracción de memoria, esta rutina puede ejecutarse en contexto de interrupción [SWS_NvM_00111]. Todos los módulos de la abstracción de memoria deberían configurarse para utilizar uniformemente el mismo modo: callback o polling [SWS_NvM_00111].
Configuración e interacción
El módulo NvM solo proporciona la función de callback NvM_JobEndNotification si el modo de polling está desactivado a través del parámetro de configuración NvMPollingMode [SWS_NvM_00440]. Además, la función se ve afectada por parámetros generales de configuración de NvM [SWS_NvM_00440].
Esta nota de uso se basa en la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función NvM_JobErrorNotification [SWS_NvM_00463] 📄 PDF
void NvM_JobErrorNotification (void);
Function to be used by the underlying memory abstraction to signal end of job with error.
La función de callback NvM_JobErrorNotification ([SWS_NvM_00463]) sirve para que la capa de abstracción de memoria subyacente señalice al módulo gestor de NVRAM (NvM) la finalización errónea de una orden asíncrona. La llamada se realiza de forma síncrona y está especificada como no reentrante ([SWS_NvM_00463]).
Uso y signatura
- Interfaz: La declaración de la función se proporciona a través del archivo de cabecera
NvM_MemIf.h([SWS_NvM_00463]). - Firma: Según
void NvM_JobErrorNotification(void), la función no posee parámetros de entrada, salida ni de entrada/salida, y no devuelve ningún valor de retorno ([SWS_NvM_00463]). - ID de servicio: La función se identifica mediante el identificador hexadecimal
0x12([SWS_NvM_00463]).
Dependencia de configuración e interacción
El módulo NvM solo proporciona la función de callback NvM_JobErrorNotification si el modo de polling está desactivado mediante el parámetro de configuración NvMPollingMode ([SWS_NvM_00441]). Si se utiliza polling, se omite este mecanismo de notificación. Además, la función se ve afectada por los parámetros generales de configuración según [SWS_NvM_00028] texto aún no importado ([SWS_NvM_00441]).
Tratamiento de errores y concurrencia
La función sirve exclusivamente para la notificación de errores de órdenes y no define códigos de error propios ni respuestas DET o DEM ([SWS_NvM_00463]). Debido a la clasificación como Non Reentrant, presumiblemente corresponde al invocador en la abstracción de memoria garantizar que no se produzcan llamadas solapadas o que causen interrupciones ([SWS_NvM_00463]). Pregunta Q-5f72d9d605c25922 (abierta)
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función NvM_MainFunction [SWS_NvM_00464] 📄 PDF
void NvM_MainFunction (void);
Service for performing the processing of the Nv M jobs.
usar
La función NvM_MainFunction no tiene parámetros de transferencia ni valor de retorno (void NvM_MainFunction(void)) y está declarada a través de SchM_NvM.h ([SWS_NvM_00464]). Sirve para el procesamiento de las órdenes del gestor de NVRAM ([SWS_NvM_00464], [SWS_NvM_00256]). Tras la finalización de un servicio asíncrono, ejecuta rutinas de callback configuradas para notificar a la capa superior ([SWS_NvM_00347]). Además, asume en segundo plano los recálculos de CRC solicitados para bloques de NVRAM ([SWS_NvM_00333]), por ejemplo como consecuencia de NvM_SetRamBlockStatus ([SWS_NvM_00121]) o NvM_ValidateAll ([SWS_NvM_00857]).
Control de flujo y priorización
Siempre que esté configurada, la función monitoriza la cola de prioridad inmediata (immediate priority queue) en busca de solicitudes con prioridad inmediata ([SWS_NvM_00259]). Si una orden inmediata interrumpió de forma destructiva una solicitud regular, NvM_MainFunction la reinicia tras la finalización de aquella ([SWS_NvM_00258]). Con el modo de polling activo, comprueba el estado de las órdenes transferidas a la capa inferior ([SWS_NvM_00346]). Durante el procesamiento de NvM_WriteAll, sondea cíclicamente el estado de la abstracción de controladores de memoria a través de MemIf_GetStatus para MEMIF_BROADCAST_ID y retiene los callbacks hacia la capa superior mientras se notifique MEMIF_BUSY_INTERNAL ([SWS_NvM_00350]).
Tratamiento de errores y reintentos
Si fallan los callbacks específicos de la aplicación, NvM_MainFunction controla los intentos de reintento:
- Si
NvMReadRamBlockFromNvCallbackdevuelve el valorE_NOT_OK, el módulo repite la llamada en el siguiente ciclo deNvM_MainFunction([SWS_NvM_00839]). - Si
NvMWriteRamBlockToNvCallbackdevuelveE_NOT_OK, la repetición tiene lugar asimismo en la siguiente llamada deNvM_MainFunction([SWS_NvM_00840]). - Si el callback de sincronización explícita devuelve
E_NOT_OKenNvM_SetRamBlockStatus, el módulo ejecuta los reintentos configurados con un intento por cada llamada deNvM_MainFunction([SWS_NvM_00908]).
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función NvM_SingleBlockCallbackFunction [SWS_NvM_00467] 📄 PDF
Std_ReturnType NvM_SingleBlockCallbackFunction (NvM_BlockRequestType BlockRequest, NvM_RequestResultType JobResult);
Per block callback routine to notify the upper layer that an asynchronous single block request has been finished.
usar
La rutina de callback NvM_SingleBlockCallbackFunction notifica a la capa superior de forma síncrona la finalización de una solicitud asíncrona de bloque individual iniciada previamente [SWS_NvM_00467].
La función procesa dos parámetros de transferencia [SWS_NvM_00467]:
BlockRequest(tipoNvM_BlockRequestType): Transfiere el tipo de solicitud de bloque ejecutada previamente, como por ejemplo operaciones de lectura o escritura [SWS_NvM_00467].JobResult(tipoNvM_RequestResultType): Notifica el resultado global de la orden de bloque procesada [SWS_NvM_00467].
Como valor de retorno, la función proporciona el tipo Std_ReturnType [SWS_NvM_00467]. Un procesamiento correcto del callback se señaliza mediante el retorno de E_OK; cualquier otro valor de retorno indica una ejecución no satisfactoria [SWS_NvM_00467].
Tratamiento de errores y concurrencia
La interfaz no especifica mensajes de error DET o DEM propios [SWS_NvM_00467]. El resultado de la orden precedente se transmite a través del parámetro JobResult, mientras que los errores dentro del propio procesamiento del callback se notifican a través del valor de retorno de la función [SWS_NvM_00467].
En cuanto a la concurrencia, la rutina está declarada como no reentrante (Non Reentrant) [SWS_NvM_00467]. Se proporciona a través de la cabecera NvM_Externals.h [SWS_NvM_00467]. Es de esperar que la llamada por parte del módulo NvM se realice de forma síncrona en el contexto de tarea del procesamiento cíclico de órdenes de NvM (interpretación). Pregunta Q-f50640211851274f (abierta)
Esta nota de uso fue generada por una IA sobre la base de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función NvM_MultiBlockCallbackFunction [SWS_NvM_00468] 📄 PDF
Std_ReturnType NvM_MultiBlockCallbackFunction (NvM_MultiBlockRequestType MultiBlockRequest, NvM_RequestResultType JobResult);
Common callback routine to notify the upper layer that an asynchronous multi block request has been finished. Available v ia Nv M_ Externals.h
La rutina de callback NvM_MultiBlockCallbackFunction notifica a la capa superior que se ha completado una orden multibloque asíncrona iniciada previamente [SWS_NvM_00468]. La declaración de la función se pone a disposición a través del archivo de cabecera NvM_Externals.h [SWS_NvM_00468].
Contexto de llamada y parámetros
La llamada por parte del gestor de NVRAM se realiza de forma síncrona respecto a la ejecución en el flujo de procesamiento [SWS_NvM_00468]. En la llamada, se transfieren dos parámetros a la rutina:
MultiBlockRequest(tipoNvM_MultiBlockRequestType): Designa el tipo de solicitud concreto de la orden multibloque procesada previamente, como por ejemplo accesos de lectura o escritura [SWS_NvM_00468].JobResult(tipoNvM_RequestResultType): Transmite el resultado final del procesamiento del trabajo multibloque precedente a la capa superior [SWS_NvM_00468].
Valor de retorno y tratamiento de errores
La rutina devuelve un valor del tipo Std_ReturnType al módulo invocador [SWS_NvM_00468]. El valor de retorno E_OK indica que la función de callback pudo procesarse con éxito; cualquier otro valor de retorno señaliza, por el contrario, un procesamiento fallido [SWS_NvM_00468]. En el alcance de la especificación no se definen códigos de error específicos, mensajes DET ni DEM para esta función. Interpretación: Es probable que las consecuencias concretas de un valor de retorno distinto de E_OK sean específicas de la implementación, ya que el estándar no prescribe un tratamiento de errores posterior. Pregunta Q-462dea7f3074ae9c (abierta)
Concurrencia y restricciones
La función está especificada como no reentrante (Non Reentrant) [SWS_NvM_00468]. Por tanto, dentro del sistema invocador debe asegurarse de que no se produzcan llamadas múltiples concurrentes o que causen interrupciones a esta interfaz de callback.
Este texto fue generado por una IA a partir de la especificación.
Guía del implementador pendiente (complejidad I1)
función NvM_InitBlockCallbackFunction [SWS_NvM_00469] 📄 PDF
Std_ReturnType NvM_InitBlockCallbackFunction (NvM_InitBlockRequestType InitBlockRequest);
Per block callback routine which shall be called by the Nv M module when default data needs to be restored in RAM, and a RO M block is not configured. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_NVRAMManager
Uso y contexto de llamada
El módulo NvM llama a la rutina de callback específica del usuario NvM_InitBlockCallbackFunction cuando deben restaurarse datos por defecto para un bloque de NVRAM en la RAM y no hay configurado un bloque ROM correspondiente [SWS_NvM_00469]. La llamada se realiza de forma síncrona y la interfaz está declarada a través de la cabecera NvM_Externals.h [SWS_NvM_00469].
Como parámetro de transferencia, la función recibe InitBlockRequest de tipo NvM_InitBlockRequestType [SWS_NvM_00469]. Este valor informa a la rutina sobre el tipo de solicitud específico del bloque que se está procesando actualmente, como la lectura o la restauración de datos (read, restore) [SWS_NvM_00469].
Valores de retorno y tratamiento de errores
La rutina devuelve un valor de estado de tipo Std_ReturnType [SWS_NvM_00469]:
E_OK: Señaliza al módulo NvM que la función de callback ha inicializado y procesado con éxito los datos en la RAM [SWS_NvM_00469].- Cualquier otro valor de retorno: Indica que la inicialización no pudo completarse con éxito [SWS_NvM_00469].
Para la propia interfaz no se especifican códigos de error específicos para DET o DEM [SWS_NvM_00469].
Concurrencia y restricciones de ejecución
La interfaz está definida como síncrona y no reentrante (Non Reentrant) [SWS_NvM_00469]. Dado que el NVRAM Manager espera de forma síncrona el retorno de la función, es de esperar que una ejecución bloqueante dentro de la rutina detenga inmediatamente el procesamiento posterior del NvM (interpretación). Pregunta Q-c0e43c9871c4f2d0 (abierta)
Esta nota de uso ha sido generada por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función NvM_WriteRamBlockToNvm [SWS_NvM_00539] 📄 PDF
Std_ReturnType NvM_WriteRamBlockToNvm (void* NvMBuffer);
Block specific callback routine which shall be called in order to let the application copy data from RAM block to Nv M module's mirror.
La función de callback específica de bloque NvM_WriteRamBlockToNvm sirve para la sincronización explícita con el fin de copiar datos de aplicación desde el bloque RAM al espejo RAM interno del módulo NvM [SWS_NvM_00539]. Está disponible declarativamente a través de NvM_Externals.h y es llamada de forma síncrona por el NvM [SWS_NvM_00539].
Uso y parámetros
La función transfiere como parámetro de salida el puntero NvMBuffer, el cual representa la dirección de destino del espejo de NvM en la que deben escribirse los datos [SWS_NvM_00539]. Como valor de retorno, la rutina de callback proporciona E_OK en caso de procesamiento satisfactorio o cualquier otro valor si la ejecución es errónea [SWS_NvM_00539].
Concurrencia y restricciones
Según la especificación, NvM_WriteRamBlockToNvm está diseñada como no reentrante (Non Reentrant) [SWS_NvM_00539].
Interacción en el módulo
- Durante el apagado, el trabajo
NvM_WriteAllsincroniza bloques RAM permanentes o llama a la rutina de callbackNvM_WriteRamBlockToNvmpara la sincronización explícita [SWS_NvM_00018], siempre que el parámetroNvMSelectBlockForWriteAllpara el bloque de NVRAM esté configurado entrue[SWS_NvM_00252]. - Los trabajos de escritura
NvM_WriteBlock[SWS_NvM_00303] yNvM_WritePRAMBlock[SWS_NvM_00803] validan automáticamente un bloque RAM permanente aún no válido tras la llamada deNvM_WriteRamBlockToNvm.
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función NvM_ReadRamBlockFromNvm [SWS_NvM_00540] 📄 PDF
Std_ReturnType NvM_ReadRamBlockFromNvm (const void* NvMBuffer);
Block specific callback routine which shall be called in order to let the application copy data from Nv M module's mirror to RAM block.
La función NvM_ReadRamBlockFromNvm es una rutina de callback específica de bloque que se declara a través de NvM_Externals.h [SWS_NvM_00540]. Su propósito consiste en permitir a la aplicación la copia de datos desde el búfer espejo interno del módulo NvM a su bloque RAM correspondiente para llevar a cabo una sincronización explícita [SWS_NvM_00540], [SWS_NvM_00118].
Uso y semántica
- Contexto de llamada y concurrencia: La llamada se realiza de forma síncrona y está especificada como no reentrante (
Non Reentrant) [SWS_NvM_00540]. - Parámetros: Como parámetro de transferencia se utiliza el puntero
NvMBuffer(tipoconst void*). Este transfiere la dirección del búfer desde la cual pueden leerse los datos y copiarse en el bloque RAM [SWS_NvM_00540]. - Valor de retorno y tratamiento de errores: La función de callback devuelve un
Std_ReturnType. El valor de retornoE_OKseñaliza el procesamiento correcto; cualquier otro valor de retorno indica un procesamiento no satisfactorio [SWS_NvM_00540].
Interacción
En el marco del servicio multibloque NvM_ReadAll, se llama a NvM_ReadRamBlockFromNvm para la sincronización explícita de aquellos bloques de NVRAM que estén configurados correspondientemente y para los cuales aplique NvmSelectBlockForReadall == TRUE [SWS_NvM_00118], [SWS_NvM_00356]. Esto representa la alternativa al proceso de copia directa en bloques RAM permanentes, mientras que NvM_ReadAll inicializa los datos de gestión de los bloques [SWS_NvM_00356].
Este texto fue generado por un sistema de IA sobre la base de los requisitos de la especificación.
Guía del implementador pendiente (complejidad I1)
tipo NvM_ConfigType [SWS_NvM_00880] 📄 PDF
Configuration data structure of the Nv M module.
tipo NvM_MultiBlockRequestType [SWS_NvM_91003] 📄 PDF
Identifies the type of request performed on multi block when signaled via the callback function or when reporting to Bsw M
El tipo de enumeración NvM_MultiBlockRequestType se proporciona a través del archivo de cabecera NvM.h y sirve para la identificación inequívoca de una solicitud multibloque ejecutada [SWS_NvM_91003]. El tipo se utiliza cuando el resultado o el estado de una operación multibloque se señaliza a través de una función de callback o se notifica al módulo BswM [SWS_NvM_91003].
Rango de valores y semántica
La enumeración define los siguientes valores para diferenciar las órdenes multibloque [SWS_NvM_91003]:
NVM_READ_ALL(0x00): Indica que se ejecutóNvM_ReadAll.NVM_WRITE_ALL(0x01): Indica que se ejecutóNvM_WriteAll.NVM_VALIDATE_ALL(0x02): Indica que se ejecutóNvM_ValidateAll.NVM_FIRST_INIT_ALL(0x03): Indica que se ejecutóNvM_FirstInitAll.NVM_CANCEL_WRITE_ALL(0x04): Indica que se ejecutóNvM_CancelWriteAll.
Interacción
Al pasarse este tipo, tanto los callbacks invocados como el BswM pueden determinar qué servicio multibloque concreto desencadenó la notificación. Interpretación: Es de presumir que la notificación al BswM sirve para vincular acciones sucesivas o transiciones de estado en el sistema global con la conclusión de servicios multibloque específicos. Pregunta Q-69b4d985301acfeb (abierta)
Este texto ha sido generado por una IA y sirve de ayuda orientativa. Prevalecen las especificaciones referenciadas.
Guía del implementador pendiente (complejidad I1)
tipo NvM_RequestResultType [SWS_NvM_00470] 📄 PDF
Type NvM_RequestResultType.
El tipo NvM_RequestResultType se basa en uint8, está disponible a través de Rte_NvM_Type.h y representa el resultado de peticiones asíncronas de órdenes de lectura, escritura y control del gestor de NVRAM [SWS_NvM_00470]. El resultado se consulta principalmente a través del servicio de API NvM_GetErrorStatus y puede señalarse adicionalmente mediante una función de retrollamada configurada [SWS_NvM_00470].
El rango de valores representa diferentes estados de ejecución y casos de error [SWS_NvM_00470]:
NVM_REQ_OK(0x00): La última orden asíncrona finalizó correctamente; este es al mismo tiempo el valor predeterminado tras un reinicio.NVM_REQ_NOT_OK(0x01): La petición asíncrona de lectura, escritura o control no finalizó correctamente.NVM_REQ_PENDING(0x02): Una petición asíncrona se encuentra actualmente aún en procesamiento.NVM_REQ_INTEGRITY_FAILED(0x03): Error de integridad de datos enNvM_ReadBlockoNvM_ReadAll. En el caso deNvM_ReadBlock, el contenido del bloque de RAM se modificó, pero ha pasado a ser no válido; la aplicación es responsable de renovar y validar el contenido.NVM_REQ_BLOCK_SKIPPED(0x04): El bloque referenciado se omitió duranteNvM_ReadAlloNvM_WriteAll(p. ej. bloques NVRAM de tipo Dataset enNvM_ReadAllo bloques sin bloque de RAM configurado como permanente).NVM_REQ_NV_INVALIDATED(0x05): El bloque NV referenciado está invalidado.NVM_REQ_CANCELED(0x06): Cancelación deNvM_WriteAllporNvM_CancelWriteAllo cancelación de una orden de bloque individual (NvM_ReadBlock,NvM_WriteBlock,NvM_EraseNvBlock,NvM_InvalidateNvBlock,NvM_RestoreBlockDefaults) porNvM_CancelJobs.NVM_REQ_RESTORED_DEFAULTS(0x08): Los valores por defecto se copiaron correctamente en la imagen de RAM.
En combinación con bloques redundantes (NVM_BLOCK_REDUNDANT), la función NvM_InvalidateNvBlock solo establece el resultado de la petición NvM_RequestResultType en NVM_REQ_OK cuando ambos bloques NV han sido invalidados [SWS_NvM_00274].
Este texto fue generado automáticamente. Todas las indicaciones se basan exclusivamente en los requisitos de especificación de la versión R20-11 de AUTOSAR.
Guía del implementador pendiente (complejidad I1)
tipo NvM_BlockIdType [SWS_NvM_00471] 📄 PDF
Identification of a NVRAM block via a unique block identifier. Reserved NVRAM block IDs: 0 - > to derive multi block request results via Nv M_ Get Error Status 1 - > redundant NVRAM block which holds the configuration ID
tipo NvM_InitBlockRequestType [SWS_NvM_91123] 📄 PDF
Identifies the type of request performed on a block when signaled via the callback function
El tipo de datos NvM_InitBlockRequestType se basa en uint8 y se proporciona a través del archivo de cabecera Rte_NvM_Type.h [SWS_NvM_91123]. Sirve para identificar el tipo de solicitud realizada en un bloque de NVRAM cuando esta se señaliza mediante la correspondiente función de callback [SWS_NvM_91123].
El rango de valores admisibles comprende cuatro tipos de solicitud [SWS_NvM_91123]:
NVM_INIT_READ_BLOCK(0x00): Indica que se solicitóNvM_ReadBlockoNvM_ReadPRAMBlockpara el bloque [SWS_NvM_91123].NVM_INIT_RESTORE_BLOCK_DEFAULTS(0x01): Señaliza que se solicitóNvM_RestoreBlockDefaultsoNvM_RestorePRAMBlockDefaultspara el bloque [SWS_NvM_91123].NVM_INIT_READ_ALL_BLOCK(0x02): Indica que el procesamiento del bloque se efectúa en el marco deNvM_ReadAll[SWS_NvM_91123].NVM_INIT_FIRST_INIT_ALL(0x03): Identifica el procesamiento del bloque durante el transcurso deNvM_FirstInitAll[SWS_NvM_91123].
A partir de este valor de enumeración, la lógica de aplicación invocada puede distinguir si se trata de una solicitud explícita de bloque individual (lectura o restauración de valores por defecto) o de una operación colectiva global durante el arranque del sistema [SWS_NvM_91123]. Interpretación: Es presumible que el tipo se pase como parámetro a callbacks de inicialización referidos a bloques, a fin de que la aplicación pueda suministrar datos por defecto adaptados a la situación o tomar preparativos específicos. Pregunta Q-42d0d469e305728e (abierta)
Esta nota de uso se basa en la especificación AUTOSAR Classic Release R20-11.
Guía del implementador pendiente (complejidad I1)
tipo NvM_BlockRequestType [SWS_NvM_91002] 📄 PDF
Identifies the type of reques t performed on a block when signaled via the callback function
El tipo de enumeración NvM_BlockRequestType se basa en uint8 y se proporciona a través de la cabecera Rte_NvM_Type.h [SWS_NvM_91002]. Sirve para transmitir, al emitir una notificación mediante una función de callback, el tipo de solicitud que se ejecutó previamente en un bloque de NVRAM [SWS_NvM_91002].
El rango de valores comprende seis solicitudes de bloque específicas [SWS_NvM_91002]:
NVM_READ_BLOCK(0x00): Señaliza que se ejecutóNvM_ReadBlockoNvM_ReadPRAMBlockpara el bloque [SWS_NvM_91002].NVM_WRITE_BLOCK(0x01): Señaliza que se ejecutóNvM_WriteBlockoNvM_WritePRAMBlockpara el bloque [SWS_NvM_91002].NVM_RESTORE_BLOCK_DEFAULTS(0x02): Señaliza que se ejecutóNvM_RestoreBlockDefaultsoNvM_RestorePRAMBlockDefaults[SWS_NvM_91002].NVM_ERASE_NV_BLOCK(0x03): Señaliza que se ejecutóNvM_EraseNvBlocken el bloque [SWS_NvM_91002].NVM_INVALIDATE_NV_BLOCK(0x04): Señaliza que se ejecutóNvM_InvalidateNvBlocken el bloque [SWS_NvM_91002].NVM_READ_ALL_BLOCK(0x05): Señaliza queNvM_ReadAllha finalizado el procesamiento de este bloque [SWS_NvM_91002].
En la arquitectura de la aplicación, es de prever que el valor se evalúe como parámetro en rutinas de callback para informar de forma diferenciada a los componentes de software de nivel superior acerca de la finalización de determinadas operaciones de bloque [SWS_NvM_91002]. Pregunta Q-467801b6b5e898a2 (abierta) A falta de especificaciones adicionales en la carga útil sobre códigos de error o concurrencia, los detalles de la especificación se limitan a la definición del tipo y al rango de valores [SWS_NvM_91002].
Este texto ha sido elaborado por una IA; no se puede garantizar su exactitud.
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_NvM- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_NvM@rel:R20-11#430d0292- Content hash
430d0292- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_NVRAMManager.pdf#nameddest=SWS_NvM_00447
gemini-3.8-flash-low· 2026-10-13 · Original en alemán