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
função NvM_Init [SWS_NvM_00447] 📄 PDF
void NvM_Init (const NvM_ConfigType* ConfigPtr);
Service for resetting all internal variables.
Utilização e contexto de chamada
A função NvM_Init serve para o reset síncrono de todas as variáveis internas do NVRAM Manager [SWS_NvM_00447]. Ela espera como parâmetro de passagem ConfigPtr um ponteiro para o conjunto de dados de configuração selecionado e não possui valor de retorno [SWS_NvM_00447]. Como API do tipo 4, ela é parte integrante das classes de configuração 2 e 3 [SWS_NvM_00560], [SWS_NvM_00561]. A função é não reentrante e só pode ser chamada pelo BSW Mode Manager [SWS_NvM_00447], [SWS_NvM_00693].
Tarefas de inicialização
Durante a chamada, a função executa as seguintes ações:
- Reset de todas as variáveis internas, entre elas máquinas de estados, filas de ordens e flags de requisição, para seus valores iniciais [SWS_NvM_00399].
- Definição do índice de conjunto de dados de todos os blocos NVRAM do tipo
NVM_BLOCK_DATASETcomo zero [SWS_NvM_00192]. - Definição interna do sinal "INIT DONE", o qual representa o pré-requisito para o processamento de ordens, o gerenciamento de filas e o recálculo de CRC no módulo [SWS_NvM_00257], [SWS_NvM_00399].
Restrições e interação
Devido a requisitos estritos quanto ao tempo de inicialização da ECU, NvM_Init não inicializa blocos NVRAM configurados [SWS_NvM_00091]. Conteúdos de blocos RAM permanentes não são modificados e callbacks de sincronização não são chamados; isto está reservado à função NvM_ReadAll [SWS_NvM_00400]. Além disso, NvM_Init não inicializa nem drivers subordinados, nem a abstração de hardware de memória, nem módulos externos, visto que a inicialização deles pelo BSW Mode Manager é pressuposta [SWS_NvM_00157], [SWS_NvM_00193].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
função 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
função 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
Utilização e semântica
A função síncrona e reentrante NvM_SetBlockProtection serve para definir ou resetar a proteção contra gravação para um bloco NVRAM através do atributo correspondente no bloco administrativo [SWS_NvM_00450], [SWS_NvM_00016]. Ela está atribuída à classe de configuração de API 3 [SWS_NvM_00560]. O ambiente do módulo NvM pode ativar ou desativar a proteção contra gravação de forma direcionada através do parâmetro ProtectionEnabled [SWS_NvM_00578]. A função retorna E_OK em caso de execução bem-sucedida e E_NOT_OK em caso de erro [SWS_NvM_00450].
Restrições e concorrência
A alteração da proteção contra gravação só é permitida para blocos nos quais NvMWriteBlockOnce está configurado como FALSE, independentemente do valor do parâmetro NvMBlockWriteProt [SWS_NvM_00325]. Se NvMWriteBlockOnce estiver configurado como TRUE, a proteção contra gravação não pode ser ativada nem desativada [SWS_NvM_00398], [SWS_NvM_00577]; essa proteção também não pode ser revogada após operações de leitura [SWS_NvM_00314], [SWS_NvM_00316], [SWS_NvM_00784]. Além disso, um estado de bloqueio definido via NvM_SetBlockLockStatus não pode ser modificado por NvM_SetBlockProtection [SWS_NvM_00754]. Enquanto uma ordem de bloco único estiver ativa ou enfileirada para o mesmo bloco, a chamada não é permitida [SWS_NvM_00704].
Tratamento de erros
Com a detecção de desenvolvimento (DET) ativada, a função reporta estados de erro específicos:
NVM_E_UNINIT, se o módulo NvM ainda não estiver inicializado [SWS_NvM_00606].NVM_E_PARAM_BLOCK_ID, quando oBlockIdpassado estiver fora da faixa válida [SWS_NvM_00609].NVM_E_BLOCK_PENDING, caso já exista uma operação ativa ou enfileirada para o bloco [SWS_NvM_00607].NVM_E_BLOCK_CONFIG, se o bloco estiver configurado comNvMWriteBlockOnce = TRUE[SWS_NvM_00608].NVM_E_BLOCK_LOCKED, se o bloco estiver bloqueado [SWS_NvM_00759].
Esta nota de uso baseia-se na especificação do NVRAM Manager no AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
função NvM_GetVersionInfo [SWS_NvM_00452] 📄 PDF
void NvM_GetVersionInfo (Std_VersionInfoType* versioninfo);
Service to get the version information of the Nv M module.
função 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.
A função síncrona e reentrante NvM_SetRamBlockStatus serve para definir o status de bloco RAM para blocos RAM permanentes ou para blocos com sincronização explícita [SWS_NvM_00453]. Ela está disponível nas classes de configuração de API 2 e 3 [SWS_NvM_00561], [SWS_NvM_00560], desde que tenha sido ativada através do parâmetro de configuração NvMSetRamBlockStatusApi [SWS_NvM_00408].
Através do parâmetro BlockChanged controla-se se o bloco é marcado como válido e alterado (TRUE) ou como inválido e inalterado (FALSE) [SWS_NvM_00453], [SWS_NvM_00406]. Na passagem de TRUE, o módulo assume a validade dos dados [SWS_NvM_00241]. A função retorna E_OK em caso de alteração bem-sucedida de status e E_NOT_OK em caso de erro [SWS_NvM_00453].
Se BlockChanged for definido como TRUE, a função solicita em segundo plano um recálculo do checksum em NvM_MainFunction, caso NvMCalcRamBlockCrc esteja configurado [SWS_NvM_00121]. Em blocos sem RAM permanente com sincronização explícita, este job utiliza o callback de escrita para a obtenção de dados [SWS_NvM_00906]. Se este falhar, ocorrem repetições configuradas por chamada de NvM_MainFunction [SWS_NvM_00907], [SWS_NvM_00908]. Se todas as tentativas permanecerem sem sucesso, o job é considerado, ainda assim, finalizado e o bloco permanece marcado como alterado [SWS_NvM_00909].
Antes da chamada, o módulo NvM deve estar inicializado [SWS_NvM_00711]. Com a detecção de erros de desenvolvimento ativa, a função reporta NVM_E_UNINIT em caso de módulo não inicializado [SWS_NvM_00643], NVM_E_PARAM_BLOCK_ID em caso de BlockId inválido [SWS_NvM_00645] e NVM_E_BLOCK_PENDING em caso de ordens já em execução ou enfileiradas [SWS_NvM_00644]. Enquanto uma ordem de bloco único estiver ativa, a função não pode ser chamada para este bloco [SWS_NvM_00704]. Um bloqueio de bloco definido através de NvM_SetBlockLockStatus não pode ser alterado por este meio [SWS_NvM_00754].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
Utilização e contexto de chamada
A função síncrona e reentrante NvM_SetBlockLockStatus serve para bloquear (BlockLocked = TRUE) ou desbloquear (BlockLocked = FALSE) um bloco RAM permanentemente configurado ou a sincronização explícita de um bloco de NVRAM [SWS_NvM_00548]. Ela faz parte do escopo funcional das classes de configuração de API 2 e 3 [SWS_NvM_00561], [SWS_NvM_00560]. A função não está incluída na interface ServicePort e é chamada primariamente pelo DCM, bem como por drivers de dispositivos complexos (CDD) [SWS_NvM_00732].
Restrições e interação
A chamada atua exclusivamente sobre blocos de NVRAM com bloco RAM permanente ou sincronização explícita configurada; para todos os outros blocos, permanece sem efeito [SWS_NvM_00732]. Se um bloco for bloqueado (BlockLocked = TRUE), o NvM assegura que os dados NV associados não sejam modificados: o bloco é ignorado em NvM_WriteAll, e os serviços NvM_WriteBlock, NvM_WritePRAMBlock, NvM_InvalidateNvBlock, bem como NvM_EraseNvBlock, são rejeitados [SWS_NvM_00751]. Na próxima inicialização, o NvM garante o carregamento do bloco da memória NV em NvM_ReadBlock ou NvM_ReadPRAMBlock [SWS_NvM_00752]. O estado de bloqueio definido não pode ser modificado nem via NvM_SetRamBlockStatus nem via NvM_SetBlockProtection [SWS_NvM_00754]. A passagem de BlockLocked = FALSE restaura o processamento regular [SWS_NvM_00753].
Tratamento de erros
Com a detecção de desenvolvimento (DET) ativada, a função reporta erros específicos de desenvolvimento:
NVM_E_UNINIT, caso o módulo NvM ainda não esteja inicializado no momento da chamada [SWS_NvM_00728].NVM_E_PARAM_BLOCK_ID, se o parâmetroBlockIdestiver fora do intervalo permitido [SWS_NvM_00731].NVM_E_BLOCK_CONFIG, desde que o bloco de NVRAM referenciado esteja configurado com o parâmetroNvMWriteBlockOnce = TRUE[SWS_NvM_00730].
Esta nota de uso baseia-se na especificação AUTOSAR Classic R20-11 e resume os requisitos de chamada, efeito de proteção e tratamento de erros da API.
Guia do implementador em breve (complexidade I2)
função NvM_CancelJobs [SWS_NvM_00535] 📄 PDF
Std_ReturnType NvM_CancelJobs (NvM_BlockIdType BlockId);
Service to cancel all jobs pending for a NV block.
Utilização e semântica
A função NvM_CancelJobs, disponível por meio de NvM.h, serve para cancelar sincronicamente todas as tarefas pendentes na fila para um determinado bloco de NVRAM [SWS_NvM_00535], [SWS_NvM_00536]. A função é projetada para ser reentrante e espera como parâmetro o BlockId, que identifica univocamente o descritor de bloco do respectivo bloco de NVRAM [SWS_NvM_00535]. A chamada retorna E_OK se tarefas pendentes puderam ser removidas com sucesso da fila e E_NOT_OK se nenhuma tarefa pôde ser encontrada na fila para o bloco especificado [SWS_NvM_00535].
Fluxo e concorrência
Uma tarefa que já esteja sendo processada ativamente no momento da chamada da função não é interrompida por NvM_CancelJobs, continuando até o fim [SWS_NvM_00537]. Caso a solicitação de cancelamento para tarefas em espera seja aceita, o serviço define previamente o resultado da solicitação específica do bloco como NVM_REQ_CANCELED [SWS_NvM_00225], [SWS_NvM_00536]. A finalidade desta limpeza é esvaziar a fila, por exemplo, na terminação ou reinicialização de uma partição, impedindo assim notificações posteriores sobre jobs concluídos [SWS_NvM_00225].
Tratamento de erros e configuração
Com a detecção de desenvolvimento (DET) ativada, a função verifica as pré-condições: se o módulo ainda não estiver inicializado, o erro NVM_E_UNINIT é reportado [SWS_NvM_00648]. Se o BlockId passado estiver fora do intervalo válido, ocorre a notificação de DET NVM_E_PARAM_BLOCK_ID [SWS_NvM_00649]. NvM_CancelJobs é classificada como API do tipo 2 e está disponível nas classes de configuração de API 2 e 3 [SWS_NvM_00561], [SWS_NvM_00560].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade I2)
função 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.
Utilização e semântica
A função NvM_ReadBlock serve para a cópia assíncrona de dados úteis da memória NV para o bloco de RAM associado [SWS_NvM_00010], [SWS_NvM_00454]. A chamada é reentrante [SWS_NvM_00454]. Ela aceita os parâmetros, enfileira a solicitação de leitura na fila de jobs interna e retorna imediatamente E_OK em caso de aceitação bem-sucedida ou E_NOT_OK em caso de rejeição [SWS_NvM_00195], [SWS_NvM_00454].
Se um ponteiro NvM_DstPtr for passado, dados podem ser lidos em um buffer de RAM temporário de forma divergente da configuração do bloco; um ponteiro NULL inválido resulta, neste cenário, em um erro DET [SWS_NvM_00196], [SWS_NvM_00278]. Um bloco de RAM permanente configurado é marcado como inválido diretamente no enfileiramento ou no início do processamento do job [SWS_NvM_00198]. Apenas após a conclusão bem-sucedida do processo de cópia o bloco de RAM é considerado válido e inalterado [SWS_NvM_00200], e o resultado da solicitação muda para NVM_REQ_OK [SWS_NvM_00206].
Tratamento de erros e integridade de dados
Se uma soma de verificação estiver ativada para o bloco (NvMCalRamBlockCrC == TRUE), o job solicita um novo cálculo após a cópia [SWS_NvM_00201]:
- Em caso de erros de CRC,
NVM_E_INTEGRITY_FAILEDé reportado ao DEM [SWS_NvM_00203]. Caso disponíveis, valores padrão são carregados e o resultado é definido comoNVM_REQ_RESTORED_DEFAULTS[SWS_NvM_00202]. Se faltarem dados de ROM e callbacks de inicialização, o resultado éNVM_REQ_INTEGRITY_FAILED[SWS_NvM_00204]. - Se o driver de memória reportar
MEMIF_JOB_FAILEDe não houver valores substitutos disponíveis, a solicitação é finalizada comNVM_REQ_NOT_OK[SWS_NvM_00359].
Particularidades dos tipos de bloco
- Redundante: se a leitura da primeira cópia falhar, a segunda cópia de NV é utilizada automaticamente [SWS_NvM_00199]. Se ambas as cópias forem inválidas, o bloco completo é invalidado [SWS_NvM_00317].
- Dataset: se o bloco selecionado por meio do índice do conjunto de dados estiver marcado como inválido, a cópia para a RAM não é realizada [SWS_NvM_00355].
- Write-Once: blocos lidos de forma consistente com
NVM_WRITE_BLOCK_ONCEdefinido tornam-se protegidos contra gravação permanentemente [SWS_NvM_00316].
Este texto foi gerado por uma IA e baseia-se exclusivamente nas especificações da release R20-11.
Guia do implementador em breve (complexidade I2)
função 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
A função NvM_WriteBlock serve para a cópia de dados de um bloco RAM para o bloco NV atribuído [SWS_NvM_00455], [SWS_NvM_00410]. A chamada é executada de forma reentrante e assíncrona: a função assume os parâmetros passados BlockId bem como NvM_SrcPtr, enfileira a ordem de gravação na fila interna de jobs e retorna imediatamente [SWS_NvM_00208]. O valor de retorno sinaliza com E_OK a aceitação bem-sucedida ou com E_NOT_OK a rejeição da ordem [SWS_NvM_00455].
Quanto à parametrização e à fonte de dados, aplicam-se as seguintes especificações:
- Se um endereço RAM válido for passado através de
NvM_SrcPtr, a ordem de gravação utiliza esse buffer [SWS_NvM_00210]. Isso permite também o salvamento de blocos RAM temporários em blocos configurados originalmente como permanentes ou com sincronização explícita [SWS_NvM_00280]. - Um bloco RAM permanente configurado é pressuposto como válido ou validado automaticamente antes do processo de cópia [SWS_NvM_00303].
- Se um checksum estiver configurado para o bloco NV, o job solicita um recálculo de CRC antes do processo de gravação [SWS_NvM_00212].
- Em blocos de conjunto de dados (
NVM_BLOCK_DATASET), o destino é selecionado através do índice de dados registrado no bloco administrativo [SWS_NvM_00338]. - Em blocos redundantes (
NVM_BLOCK_REDUNDANT), o job conclui comNVM_REQ_OKassim que pelo menos uma cópia for gravada com sucesso [SWS_NvM_00284]. - Se
NvMWriteBlockOnce == TRUEestiver definido, o trabalho ativa imediatamente a proteção contra gravação no bloco administrativo após uma gravação bem-sucedida [SWS_NvM_00328]. - Solicitações de gravação para o ID de bloco reservado 1 são permitidas apenas com o
NvMDynamicConfigurationativado [SWS_NvM_00311].
Tratamento de erros e concorrência:
- Se a detecção de erros de desenvolvimento estiver ativa, o
NvM_WriteBlockreporta o erro DETNVM_E_UNINITem caso de módulo não inicializado [SWS_NvM_00619], bem comoNVM_E_BLOCK_PENDINGse o mesmo bloco já estiver em processamento ou enfileirado [SWS_NvM_00620]. Um ponteiro de origem ausente em buffers temporários resulta em um erro de parâmetro DET [SWS_NvM_00280]. - Respostas negativas da interface de memória incrementam o contador de repetições; após exceder
NVM_MAX_NUM_OF_WRITE_RETRIES, o trabalho termina comNVM_REQ_NOT_OK[SWS_NvM_00213], [SWS_NvM_00216]. - Se o bloco estiver configurado com prioridade imediata, o
NvM_WriteBlockcancela de forma destrutiva um trabalho em execução no momento, para que a solicitação de gravação seja processada em seguida [SWS_NvM_00300].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade I2)
função 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.
Utilização e semântica
A função NvM_RestoreBlockDefaults restaura dados padrão no bloco de RAM associado ([SWS_NvM_00456], [SWS_NvM_00012]). Ela opera de forma assíncrona: após a chamada, aceita os parâmetros, enfileira a solicitação na fila interna de jobs e retorna imediatamente com E_OK em caso de aceitação bem-sucedida ou com E_NOT_OK em caso de rejeição ([SWS_NvM_00456], [SWS_NvM_00224]). Se um endereço de RAM válido for passado pelo parâmetro de saída NvM_DestPtr, este será usado como endereço de destino ([SWS_NvM_00435]). Para copiar dados de ROM para um bloco de RAM temporário, mesmo que um bloco de RAM permanente ou callbacks de sincronização estejam configurados, o chamador deve obrigatoriamente passar um ponteiro diferente de NULL ([SWS_NvM_00436]).
Tratamento de erros e condições de contorno
A função não é reentrante ([SWS_NvM_00456]) e faz parte das classes de configuração de API 2 e 3 ([SWS_NvM_00561], [SWS_NvM_00560]). Se a detecção de erros de desenvolvimento (DET) estiver ativa, ela reporta NVM_E_UNINIT caso o módulo ainda não esteja inicializado ([SWS_NvM_00625]), NVM_E_PARAM_BLOCK_ID em caso de BlockId inválido ([SWS_NvM_00630]), bem como um erro de parâmetro se nenhum ponteiro de destino válido for passado para blocos configurados permanentemente para cópia temporária ([SWS_NvM_00436]). A função falha sincronicamente com E_NOT_OK se o bloco for do tipo NVM_BLOCK_DATASET, existir ao menos um bloco de ROM e o índice de dados atual apontar para um bloco NV ([SWS_NvM_00353]).
Processamento de jobs e interação
No âmbito do processamento assíncrono de jobs, o serviço carrega valores padrão a partir de um bloco de ROM configurado ([SWS_NvM_00267]). Se um bloco de RAM permanente for solicitado ou se um callback de sincronização explícito (NvMReadRamBlockFromNvCallback) for utilizado, o bloco de RAM é invalidado antes da operação de cópia ou antes da chamada do callback ([SWS_NvM_00227]). Após uma operação de cópia bem-sucedida ou após o retorno do callback de sincronização com E_OK, o bloco de RAM é validado e marcado como alterado ([SWS_NvM_00228]). Se uma soma de verificação estiver configurada para o bloco, o job solicita conclusivamente um recálculo do CRC ([SWS_NvM_00229]). A mesma lógica de restauração também é utilizada por NvM_ReadBlock e NvM_ReadAll como mecanismo de contingência em caso de acesso de leitura incorreto à memória ou erros de CRC ([SWS_NvM_00202], [SWS_NvM_00293], [SWS_NvM_00657]).
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
função NvM_EraseNvBlock [SWS_NvM_00457] 📄 PDF
Std_ReturnType NvM_EraseNvBlock (NvM_BlockIdType BlockId);
Service to erase a NV block.
A função assíncrona e reentrante NvM_EraseNvBlock ([SWS_NvM_00457]) da classe de configuração de API 3 ([SWS_NvM_00560]) serve para apagar um bloco de memória não volátil com base no BlockId passado. Desde que não haja proteção contra gravação ativa, a função aceita os parâmetros, enfileira a solicitação de exclusão na fila interna de jobs e retorna imediatamente ([SWS_NvM_00231], [SWS_NvM_00418]). O valor de retorno E_OK sinaliza a aceitação bem-sucedida da solicitação, enquanto E_NOT_OK indica a rejeição ([SWS_NvM_00457]).
Antes da chamada, o módulo NvM deve estar totalmente inicializado ([SWS_NvM_00715]). Após o enfileiramento, a proteção contra gravação não é verificada novamente antes da retirada do job da fila ([SWS_NvM_00662]). Em blocos redundantes do tipo NVM_BLOCK_REDUNDANT, a operação de exclusão só é considerada bem-sucedida quando ambos os blocos redundantes de NV tiverem sido apagados ([SWS_NvM_00269]). O conteúdo dos dados de um bloco de RAM associado permanece sempre inalterado pelo processamento da solicitação ([SWS_NvM_00416]).
Uma chamada é rejeitada se um bloco de ROM de um bloco de conjunto de dados for endereçado ([SWS_NvM_00661]) ou se o bloco estiver bloqueado por meio de NvM_SetBlockLockStatus ([SWS_NvM_00751]). Com a detecção de erros de desenvolvimento (DET) ativada, a função reporta NVM_E_UNINIT em caso de módulo não inicializado ([SWS_NvM_00631]), NVM_E_PARAM_BLOCK_ID em caso de BlockId inválido ([SWS_NvM_00635]), bem como NVM_E_BLOCK_LOCKED em caso de bloco bloqueado ([SWS_NvM_00757]). Se o bloco não possuir prioridade imediata («immediate priority») ou se a prioridade padrão estiver configurada, o erro NVM_E_BLOCK_CONFIG é reportado com o DET ativo e E_NOT_OK é retornado ([SWS_NvM_00357], [SWS_NvM_00636]). Se a execução assíncrona posterior falhar, o status da solicitação é definido como NVM_REQ_NOT_OK ([SWS_NvM_00271]) e NVM_E_REQ_FAILED é reportado ao DEM ([SWS_NvM_00663]).
Esta nota de utilização foi gerada automaticamente com base na especificação.
Guia do implementador em breve (complexidade I2)
função NvM_InvalidateNvBlock [SWS_NvM_00459] 📄 PDF
Std_ReturnType NvM_InvalidateNvBlock (NvM_BlockIdType BlockId);
Service to invalidate a NV block.
A função NvM_InvalidateNvBlock é um serviço assíncrono e reentrante da classe de configuração de API 3 para a invalidação de um bloco NV [SWS_NvM_00459], [SWS_NvM_00560]. Como condição de chamada, o módulo NvM deve ter sido previamente inicializado pelo ambiente do módulo [SWS_NvM_00717]. A chamada aceita o parâmetro BlockId, enfileira a solicitação se a proteção contra escrita estiver desativada e retorna com E_OK [SWS_NvM_00239], [SWS_NvM_00424]. Se a tarefa não puder ser aceita, a função retorna E_NOT_OK [SWS_NvM_00459].
Uma chamada é rejeitada sincronicamente com E_NOT_OK se um bloco ROM de um bloco de conjunto de dados (Dataset) tiver sido especificado por meio de BlockId [SWS_NvM_00664]. Se o bloco foi previamente bloqueado via NvM_SetBlockLockStatus, o NvM rejeita a tarefa [SWS_NvM_00751] e reporta o erro de DET NVM_E_BLOCK_LOCKED se a interface de desenvolvimento estiver ativa [SWS_NvM_00756]. Se o bloco já estiver enfileirado ou em execução, é emitida a notificação de DET NVM_E_BLOCK_PENDING [SWS_NvM_00639].
O job assíncrono propriamente dito invalida o bloco NV referenciado [SWS_NvM_00421], considerando as seguintes condições de contorno:
- Para blocos redundantes (
NVM_BLOCK_REDUNDANT), o resultado da tarefa só é definido comoNVM_REQ_OKquando ambos os blocos NV redundantes tiverem sido invalidados com sucesso [SWS_NvM_00274]; o mesmo mecanismo também é aplicado emNvM_FirstInitAll[SWS_NvM_00919], [SWS_NvM_00920]. - Para blocos com
NVM_WRITE_BLOCK_ONCE, o job mantém a proteção contra escrita inalterada [SWS_NvM_00960]. Se nenhum processo de leitura tiver precedido, o job reporta o erro de DETNVM_E_WRITE_ONCE_STATUS_UNKNOWN[SWS_NvM_00958]. - Se ocorrer um erro durante o processamento assíncrono, o resultado da solicitação é definido como
NVM_REQ_NOT_OK[SWS_NvM_00275] e o erro de produçãoNVM_E_REQ_FAILEDé transmitido ao DEM [SWS_NvM_00666].
Esta nota de uso foi gerada por uma IA e baseia-se exclusivamente nos dados de especificação do AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função 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
A função assíncrona e reentrante [SWS_NvM_00764] serve para a cópia de dados de um bloco NV para o bloco RAM permanente atribuído. A chamada aceita o BlockId, enfileira a solicitação de leitura na fila interna de tarefas e retorna imediatamente [SWS_NvM_00766]. O valor de retorno E_OK confirma a aceitação da tarefa, enquanto E_NOT_OK sinaliza uma rejeição [SWS_NvM_00764]. A função faz parte do escopo funcional das classes de configuração de API 2 e 3 [SWS_NvM_00560], [SWS_NvM_00561].
Fluxo e sincronização
Com o enfileiramento bem-sucedido da tarefa ou o início do processamento, o bloco RAM permanente é imediatamente invalidado [SWS_NvM_00767]. Se uma sincronização explícita estiver configurada para o bloco, a aplicação poderá alterar o bloco RAM até a chegada da rotina de sincronização; a invalidação ocorre, neste caso, diretamente antes da chamada de NvMReadRamBlockFromNvCallback [SWS_NvM_00706], [SWS_NvM_00767]. Se os dados NV tiverem sido transferidos sem erros para a RAM, a tarefa é concluída com o status NVM_REQ_OK [SWS_NvM_00765], [SWS_NvM_00775].
Tratamento de erros e redundância
Para blocos do tipo NVM_BLOCK_REDUNDANT, a tarefa inicia automaticamente uma tentativa de leitura no segundo bloco, caso a primeira tentativa de leitura falhe [SWS_NvM_00768]. Para conjuntos de dados (NVM_BLOCK_DATASET), a cópia é impedida se o bloco NV selecionado através do índice for inconsistente [SWS_NvM_00771]; se o índice apontar para dados ROM, estes serão carregados e o resultado será definido como NVM_REQ_OK [SWS_NvM_00772]. Se dados padrão estiverem configurados e o bloco NV não puder ser lido com o estado da RAM inválido, ocorre uma restauração implícita [SWS_NvM_00575], que classifica o bloco RAM como válido e alterado [SWS_NvM_00774]; sem valores padrão configurados, a restauração não é realizada [SWS_NvM_00572]. Se NvM_SetBlockLockStatus esteve ativo anteriormente, o recarregamento a partir da memória NV é forçado [SWS_NvM_00752].
Esta nota de uso foi gerada automaticamente com base no estado da especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A função reentrante e assíncrona NvM_WritePRAMBlock inicia a escrita dos dados de um bloco RAM permanente no respectivo bloco NV [SWS_NvM_00793], [SWS_NvM_00794]. A função está disponível nas classes de configuração de API 2 e 3 [SWS_NvM_00561], [SWS_NvM_00560]. O ID de bloco reservado 1 só pode ser passado se NvMDynamicConfiguration estiver definido como TRUE [SWS_NvM_00311].
Na passagem, a função fornece E_OK em caso de aceitação bem-sucedida ou E_NOT_OK [SWS_NvM_00793]. Se o bloco referenciado estiver bloqueado, a chamada falha com E_NOT_OK e o módulo reporta um erro de DET [SWS_NvM_00797]. A proteção de bloco já é verificada no enfileiramento na fila de tarefas e não é validada novamente antes da execução da tarefa [SWS_NvM_00799]. Se o bloco de NVRAM possuir prioridade imediata (immediate priority), uma tarefa em execução é imediatamente cancelada de forma destrutiva e esta tarefa de escrita é processada a seguir [SWS_NvM_00800].
Antes da transferência propriamente dita para a memória NV, a tarefa solicita um recálculo de CRC, desde que o bloco esteja configurado com CRC [SWS_NvM_00801]. Um bloco RAM permanente ainda inválido é automaticamente validado [SWS_NvM_00803]. No caso de blocos redundantes (NVM_BLOCK_REDUNDANT), ambos os blocos NV são gravados, começando por aquele que não foi lido em tarefas de leitura anteriores [SWS_NvM_00807], [SWS_NvM_00808]. Em erros de escrita, o número de repetições é limitado por NVM_MAX_NUM_OF_WRITE_RETRIES [SWS_NvM_00806]; em caso de estouro, o NvM define o resultado da tarefa como NVM_REQ_NOT_OK [SWS_NvM_00804] e reporta NVM_E_REQ_FAILED ao DEM [SWS_NvM_00805].
Em relação à concorrência, aplica-se: na sincronização implícita, a aplicação não pode mais modificar os dados do buffer após a chamada até o término da tarefa; o acesso de leitura continua permitido [SWS_NvM_00698]. Na sincronização explícita, o buffer pode ser alterado até que a rotina de callback NvMWriteRamBlockToNvCallback seja chamada [SWS_NvM_00705].
Este texto foi gerado por uma IA e serve para orientação técnica com base na especificação.
Guia do implementador em breve (complexidade I2)
função 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.
Utilização e semântica
A função NvM_RestorePRAMBlockDefaults restaura dados padrão no respectivo bloco RAM permanente ([SWS_NvM_00813], [SWS_NvM_00814]). O serviço opera de forma assíncrona e aceita, por meio do parâmetro BlockId, o identificador do descritor de bloco de NVRAM ([SWS_NvM_00813]). Na chamada, a solicitação é enfileirada na fila interna de tarefas ([SWS_NvM_00815]). O valor de retorno E_OK sinaliza a aceitação bem-sucedida, enquanto E_NOT_OK indica uma rejeição ([SWS_NvM_00813]). Se um bloco ROM estiver configurado, os dados são carregados a partir dele no âmbito do processamento assíncrono ([SWS_NvM_00816]).
Tratamento de erros e condições de contorno
Se nem dados padrão de ROM nem uma rotina de callback NvMInitBlockCallback estiverem definidos para o bloco, o status do bloco permanece inalterado e a chamada retorna E_NOT_OK ([SWS_NvM_00884]). Com a detecção de desenvolvimento (DET) ativada, são reportados erros específicos:
NVM_E_UNINIT: O módulo ainda não está inicializado ([SWS_NvM_00831]).NVM_E_PARAM_BLOCK_ID: OBlockIdpassado está fora da faixa válida ([SWS_NvM_00834]).NVM_E_BLOCK_PENDING: Já existe uma requisição enfileirada ou em processamento para o ID do bloco ([SWS_NvM_00832]).NVM_E_BLOCK_WITHOUT_DEFAULTS: Não existem dados padrão de ROM nem callback de inicialização ([SWS_NvM_00886]).NVM_E_PARAM_ADDRESS: Não está configurado nem bloco RAM permanente nem sincronização explícita ([SWS_NvM_00894]).
Concorrência e interação
O serviço é especificado como não reentrante ([SWS_NvM_00813]) e está disponível nas classes de configuração de API 2 e 3 ([SWS_NvM_00561], [SWS_NvM_00560]). A mesma lógica de restauração também é empregada internamente em NvM_ReadPRAMBlock se a operação de leitura subjacente falhar ([SWS_NvM_00789], [SWS_NvM_00882]).
Esta nota de uso baseia-se nas especificações do AUTOSAR Classic Release R20-11.
Guia do implementador em breve (complexidade I2)
função NvM_ReadAll [SWS_NvM_00460] 📄 PDF
void NvM_ReadAll (void);
Initiates a multi block read request.
A função NvM_ReadAll aciona de forma assíncrona uma solicitação de leitura multibloco para inicializar os blocos de dados da RAM [SWS_NvM_00460], [SWS_NvM_00158]. Ela não possui parâmetros, não retorna valor e não é reentrante [SWS_NvM_00460]. A chamada sinaliza a requisição ao módulo NvM e retorna imediatamente; o processamento real, no entanto, é postergado até que todas as filas de solicitações de bloco individual estejam vazias [SWS_NvM_00243].
Inicialmente, a solicitação valida o ID de configuração durante a inicialização do sistema, comparando o valor armazenado com o compilado [SWS_NvM_00073], [SWS_NvM_00246]:
- Em caso de correspondência, ocorre a preparação normal para todos os blocos configurados [SWS_NvM_00247].
- Uma divergência de configuração é ignorada se
NvMDynamicConfiguration == FALSEestiver definido [SWS_NvM_00248]. - Se
NvMDynamicConfiguration == TRUEeNvMResistantToChangedSw == FALSE, uma preparação estendida é executada em caso de não correspondência [SWS_NvM_00249].
Em seguida, a solicitação itera sobre todos os blocos de usuário, começando pelo menor ID de bloco (exceto os IDs reservados 0 e 1) [SWS_NvM_00244]. São considerados blocos de RAM permanentes ou blocos com callback de sincronização configurado NvM_ReadRamBlockFromNvm, desde que NvmSelectBlockForReadall == TRUE esteja configurado [SWS_NvM_00118]. Blocos não lidos, mas selecionados, recebem o resultado NVM_REQ_BLOCK_SKIPPED [SWS_NvM_00287].
Em blocos redundantes (NVM_BLOCK_REDUNDANT), se a primeira tentativa de leitura falhar, o segundo bloco NV é lido automaticamente [SWS_NvM_00288]. Após o carregamento bem-sucedido na RAM, o status do bloco é definido como «valid/unmodified» e o resultado da solicitação como NVM_REQ_OK [SWS_NvM_00251], [SWS_NvM_00290], [SWS_NvM_00291]. Para blocos com NvMCalRamBlockCrC == TRUE, a solicitação requisita um recálculo de CRC [SWS_NvM_00292]. Se configurado, NvMSingleBlockCallback é chamado para cada bloco e MultiBlockCallback após o último bloco [SWS_NvM_00281].
Esta nota de uso baseia-se nos requisitos de especificação do AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I1)
função NvM_WriteAll [SWS_NvM_00461] 📄 PDF
void NvM_WriteAll (void);
Initiates a multi block write request.
Utilização e contexto de chamada
A função NvM_WriteAll dispara de forma assíncrona uma solicitação de gravação multibloco e não possui parâmetros nem valores de retorno [SWS_NvM_00461]. Após a chamada, a função sinaliza a requisição ao módulo NvM e retorna imediatamente [SWS_NvM_00254]. O processamento real é adiado até que todas as filas para solicitações de bloco único sejam totalmente processadas [SWS_NvM_00254]. A chamada ocorre normalmente durante o procedimento fundamental de desligamento (shutdown) pelo BSW Mode Manager [SWS_NvM_00092].
Sequência e processamento de blocos
Durante o shutdown, a solicitação sincroniza blocos permanentes de RAM com os blocos NV correspondentes ou executa o callback de sincronização explícita NvM_WriteRamBlockToNvm [SWS_NvM_00018]. São considerados exclusivamente os blocos para os quais o parâmetro de configuração NvMSelectBlockForWriteAll está definido como true [SWS_NvM_00252], além do bloco 1 em caso de IDs de configuração divergentes com configuração dinâmica ativa [SWS_NvM_00310]. Se um CRC estiver configurado para um bloco de NVRAM, a solicitação exige um recálculo antes da operação de gravação e atualiza o checksum [SWS_NvM_00253]. Para blocos com NvMWriteBlockOnce == TRUE, a solicitação define imediatamente a flag de proteção contra gravação no bloco administrativo após uma gravação bem-sucedida [SWS_NvM_00329].
Simultaneidade e tratamento de erros
- Reentrância: A função não é reentrante [SWS_NvM_00461].
- Monitoramento de erros: Para evitar loops infinitos, um contador de novas tentativas monitora as repetições em caso de respostas sem sucesso do módulo MemIf [SWS_NvM_00296].
- Resultados da solicitação: Se o processamento de pelo menos um bloco falhar, o resultado geral é definido como
NVM_REQ_NOT_OK[SWS_NvM_00318]. Para blocos configurados que não foram gravados, é definido o resultado individualNVM_REQ_BLOCK_SKIPPED[SWS_NvM_00298]. Para blocos redundantes (NVM_BLOCK_REDUNDANT), a solicitação individual é consideradaNVM_REQ_OKassim que pelo menos um dos blocos NV for gravado com sucesso [SWS_NvM_00337]. - Cancelamento: Uma solicitação em andamento pode ser cancelada por
NvM_CancelWriteAll[SWS_NvM_00019]. Isso leva ao resultado geralNVM_REQ_CANCELED[SWS_NvM_00237], sendo que o bloco atualmente em processamento é finalizado de forma não destrutiva e com consistência de dados [SWS_NvM_00238].
Este texto foi gerado por uma IA e serve como orientação. A especificação AUTOSAR é determinante.
Guia do implementador em breve (complexidade I1)
função NvM_CancelWriteAll [SWS_NvM_00458] 📄 PDF
void NvM_CancelWriteAll (void);
Service to cancel a running Nv M_ Write All request.
Utilização e semântica
A função NvM_CancelWriteAll serve para cancelar prematuramente uma operação de gravação multibloco em andamento (NvM_WriteAll) [SWS_NvM_00458], [SWS_NvM_00019]. A chamada é assíncrona, não reentrante, não recebe parâmetros e não retorna nenhum valor [SWS_NvM_00458]. A função sinaliza a intenção de cancelamento diretamente ao módulo e retorna imediatamente [SWS_NvM_00232]. A solicitação não é inserida na fila de jobs; apenas uma solicitação deste tipo pode estar pendente por vez [SWS_NvM_00420]. Se nenhuma operação estiver ativa no momento da chamada, a chamada não surtirá efeito [SWS_NvM_00233].
Fluxo e consistência de dados
O cancelamento é realizado de modo que a consistência dos dados do bloco de NVRAM processado no momento do cancelamento não seja comprometida [SWS_NvM_00019]. O módulo finaliza este bloco ativo regularmente e define seu atributo de status, dependendo do sucesso, como NVM_REQ_OK ou NVM_REQ_NOT_OK, enquanto todos os blocos restantes ainda pendentes são definidos como NVM_REQ_CANCELED [SWS_NvM_00236]. O resultado global é predeterminado implicitamente pelo resultado da operação cancelada [SWS_NvM_00235], é armazenado em uma variável separada [SWS_NvM_00393] e pode ser consultado por meio de NvM_GetErrorStatus especificando o ID de bloco reservado 0 [SWS_NvM_00394]. Além disso, um callback de nível superior (NvMMultiBlockCallback) pode ser notificado opcionalmente [SWS_NvM_00260]. Desde que configurada por meio de NvMDrvModeSwitch, a solicitação comuta os dispositivos de memória após o cancelamento para o modo de operação lento («slow-mode») [SWS_NvM_00681].
Restrições e tratamento de erros
A chamada de NvM_CancelWriteAll é restrita funcionalmente e só pode ser realizada pelo BSW Mode Manager (BswM) [SWS_NvM_00703]. Além disso, a função pertence à classe de configuração de API 2 [SWS_NvM_00561]. O módulo deve ter sido inicializado antes da chamada [SWS_NvM_00716]; com a detecção de erros de desenvolvimento (DET) ativada, uma chamada no estado não inicializado leva à mensagem de erro NVM_E_UNINIT [SWS_NvM_00637].
Esta nota de uso foi criada automaticamente com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função NvM_ValidateAll [SWS_NvM_00855] 📄 PDF
void NvM_ValidateAll (void);
Initiates a multi block validation request.
A função NvM_ValidateAll dispara a validação assíncrona de múltiplos blocos de NVRAM ([SWS_NvM_00855]) e pertence à classe de configuração de API 3 ([SWS_NvM_00560]). Ela é não reentrante, não espera parâmetros e não fornece valor de retorno ([SWS_NvM_00855]). Antes da chamada, o módulo NvM deve estar inicializado ([SWS_NvM_00859]).
Ao ser chamada, a função sinaliza a solicitação ao módulo e retorna imediatamente ([SWS_NvM_00858]). O processamento real, no entanto, é postergado até que todas as filas de tarefas de bloco único estejam completamente processadas ([SWS_NvM_00858]). Para tarefas multibloco, há apenas uma única vaga disponível no total na fila de tarefas ([SWS_NvM_00380]). O resultado geral da tarefa assíncrona é mantido em uma variável de estado separada ([SWS_NvM_00393]).
No âmbito do processamento de tarefas, tanto o resultado multibloco quanto os resultados dos blocos individuais afetados são definidos previamente como NVM_REQ_PENDING ([SWS_NvM_00861]). O processamento considera exclusivamente blocos para os quais NvMBlockUseAutoValidation está configurado como TRUE ([SWS_NvM_00856], [SWS_NvM_00860]):
- São processados blocos RAM permanentes ou a sincronização explícita é executada por meio do callback
NvM_WriteRamBlockToNvm([SWS_NvM_00860]). - O status do bloco RAM é definido como "VALID / CHANGED" ([SWS_NvM_00856]).
- Se, adicionalmente, estiver configurado um cálculo de CRC na RAM, a tarefa solicita o recálculo em segundo plano, o qual é processado por meio de
NvM_MainFunction([SWS_NvM_00857]). - Após a validação bem-sucedida do bloco RAM, o resultado específico do bloco muda para
NVM_REQ_OK([SWS_NvM_00862]).
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função 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.
A função NvM_FirstInitAll dispara a inicialização inicial assíncrona de múltiplos blocos configurados ([SWS_NvM_91001]). O serviço é não reentrante, não espera parâmetros e não fornece valor de retorno ([SWS_NvM_91001]). O processamento não leva em consideração se um bloco já existe na memória não volátil ou se é válido ou corrompido ([SWS_NvM_91001]). O comprimento da fila para tarefas multibloco (entre outros de NvM_FirstInitAll) é um, de modo que apenas uma única tarefa multibloco pode estar enfileirada simultaneamente ([SWS_NvM_00380]).
O processamento difere de acordo com o tipo de gerenciamento do bloco:
- NATIVE: Se houver dados padrão disponíveis, o bloco NV será gravado com eles ([SWS_NvM_00913]). Se o bloco possuir RAM permanente ou sincronização explícita, a RAM será atualizada com os dados padrão (ROM ou callback de inicialização) como em
NvM_RestoreBlockDefaults([SWS_NvM_00915]); sem RAM permanente e sem sincronização explícita, o buffer interno do NvM serve como RAM, permanecendo o estado da RAM inalterado ([SWS_NvM_00914]). Se faltarem dados padrão ([SWS_NvM_00919]) ou se um callback de inicialização configurado falhar com um valor de retorno diferente deE_OK([SWS_NvM_00921]), o bloco será invalidado. - REDUNDANT: Se dados padrão estiverem disponíveis, ambas as instâncias do bloco serão gravadas com eles ([SWS_NvM_00916]) e, havendo RAM permanente ou sincronização explícita, a RAM será atualizada ([SWS_NvM_00918]); caso contrário, o buffer interno será utilizado ([SWS_NvM_00917]). Se um callback de inicialização não retornar
E_OK, ambas as instâncias serão invalidadas ([SWS_NvM_00922]). - DATASET: Todos os blocos configurados para o processamento ou instâncias de blocos NV deste tipo são invalidados sem exceção ([SWS_NvM_00923], [SWS_NvM_00924]).
Se a escrita de um bloco NATIVE com dados padrão ([SWS_NvM_00925]), a invalidação de um bloco NATIVE ([SWS_NvM_00927]) ou a escrita de ambas as instâncias de um bloco REDUNDANT ([SWS_NvM_00926]) falhar, a tarefa define o resultado geral como NVM_REQ_NOT_OK.
Este texto foi gerado por uma IA com base na especificação R20-11.
Guia do implementador em breve (complexidade I1)
função 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
A função de callback síncrona NvM_JobEndNotification é chamada pela abstração de memória subjacente para sinalizar ao NVRAM Manager a conclusão sem erros de uma tarefa [SWS_NvM_00462]. A função não possui parâmetros nem valor de retorno e está disponível por meio do arquivo de cabeçalho NvM_MemIf.h com o Service-ID 0x11 [SWS_NvM_00462]. Uma notificação bem-sucedida da abstração de memória abrange operações de leitura, escrita ou apagamento concluídas sem erros [SWS_NvM_00111].
Simultaneidade e restrições
A interface é especificada como não reentrante [SWS_NvM_00462]. Dependendo da função chamadora dentro da abstração de memória, esta rotina pode ser executada em contexto de interrupção [SWS_NvM_00111]. Todos os módulos da abstração de memória devem ser configurados para usar uniformemente o mesmo modo — callback ou polling [SWS_NvM_00111].
Configuração e interação
O módulo NvM disponibiliza a função de callback NvM_JobEndNotification apenas se o modo de polling estiver desativado através do parâmetro de configuração NvMPollingMode [SWS_NvM_00440]. Além disso, a função é influenciada por parâmetros gerais de configuração do NvM [SWS_NvM_00440].
Esta nota de uso baseia-se na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função 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.
A função de callback NvM_JobErrorNotification ([SWS_NvM_00463]) serve para a camada de abstração de memória subjacente sinalizar a conclusão com erro de uma tarefa assíncrona ao módulo NVRAM Manager (NvM). A chamada ocorre de forma síncrona e é especificada como não reentrante ([SWS_NvM_00463]).
Uso e assinatura
- Interface: A declaração da função é disponibilizada por meio do arquivo de cabeçalho
NvM_MemIf.h([SWS_NvM_00463]). - Assinatura: De acordo com
void NvM_JobErrorNotification(void), a função não possui parâmetros de entrada, saída ou entrada/saída e não fornece valor de retorno ([SWS_NvM_00463]). - Service-ID: A função é identificada por meio do identificador hexadecimal
0x12([SWS_NvM_00463]).
Dependência de configuração e interação
O módulo NvM disponibiliza a função de callback NvM_JobErrorNotification apenas quando o modo de polling está desativado através do parâmetro de configuração NvMPollingMode ([SWS_NvM_00441]). Se o polling for utilizado, este mecanismo de notificação deixa de existir. Além disso, a função é influenciada pelos parâmetros gerais de configuração de acordo com [SWS_NvM_00028] texto ainda não importado ([SWS_NvM_00441]).
Tratamento de erros e simultaneidade
A função serve exclusivamente para a notificação de erros de tarefas e não define códigos de erro próprios nem retornos de DET ou DEM ([SWS_NvM_00463]). Devido à classificação como Non Reentrant, cabe presumivelmente ao chamador na abstração de memória assegurar que não ocorram chamadas sobrepostas ou interruptivas ([SWS_NvM_00463]). Pergunta Q-5f72d9d605c25922 (aberta)
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I1)
função NvM_MainFunction [SWS_NvM_00464] 📄 PDF
void NvM_MainFunction (void);
Service for performing the processing of the Nv M jobs.
usar
A função NvM_MainFunction não possui parâmetros de passagem nem valor de retorno (void NvM_MainFunction(void)) e é declarada por meio de SchM_NvM.h ([SWS_NvM_00464]). Ela serve para o processamento das tarefas do NVRAM Manager ([SWS_NvM_00464], [SWS_NvM_00256]). Após a conclusão de um serviço assíncrono, ela executa rotinas de callback configuradas para a notificação da camada superior ([SWS_NvM_00347]). Além disso, ela assume em segundo plano recálculos de CRC solicitados para blocos de NVRAM ([SWS_NvM_00333]), por exemplo, em decorrência de NvM_SetRamBlockStatus ([SWS_NvM_00121]) ou NvM_ValidateAll ([SWS_NvM_00857]).
Controle de fluxo e priorização
Sofern configurada, a função monitora a fila de prioridade imediata (immediate-priority queue) quanto a solicitações com prioridade imediata ([SWS_NvM_00259]). Se uma solicitação regular tiver sido cancelada destrutivamente por uma tarefa imediata, NvM_MainFunction a reinicia após a conclusão desta ([SWS_NvM_00258]). Com o modo de polling ativo, ela verifica o status das tarefas repassadas para a camada inferior ([SWS_NvM_00346]). Durante o processamento de NvM_WriteAll, ela consulta ciclicamente o estado da abstração de driver de memória por meio de MemIf_GetStatus para MEMIF_BROADCAST_ID e retém callbacks para a camada superior enquanto MEMIF_BUSY_INTERNAL for reportado ([SWS_NvM_00350]).
Tratamento de erros e repetições
Se callbacks específicos da aplicação falharem, NvM_MainFunction controla as tentativas de repetição:
- Se
NvMReadRamBlockFromNvCallbackfornecer o valorE_NOT_OK, o módulo repetirá a chamada no próximo ciclo deNvM_MainFunction([SWS_NvM_00839]). - Se
NvMWriteRamBlockToNvCallbackretornarE_NOT_OK, a repetição ocorrerá igualmente na próxima chamada deNvM_MainFunction([SWS_NvM_00840]). - Se o callback de sincronização explícita em
NvM_SetRamBlockStatusretornarE_NOT_OK, o módulo executará as repetições configuradas com uma tentativa por chamada deNvM_MainFunction([SWS_NvM_00908]).
Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função 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
A rotina de callback NvM_SingleBlockCallbackFunction notifica a camada superior de forma síncrona sobre a conclusão de uma solicitação assíncrona de bloco único previamente iniciada [SWS_NvM_00467].
A função processa dois parâmetros de passagem [SWS_NvM_00467]:
BlockRequest(tipoNvM_BlockRequestType): Passa o tipo da solicitação de bloco executada anteriormente, como operações de leitura ou escrita [SWS_NvM_00467].JobResult(tipoNvM_RequestResultType): Reporta o resultado geral da tarefa de bloco processada [SWS_NvM_00467].
Como valor de retorno, a função fornece o tipo Std_ReturnType [SWS_NvM_00467]. Um processamento bem-sucedido do callback é sinalizado pelo retorno de E_OK; qualquer outro valor de retorno caracteriza uma execução mal-sucedida [SWS_NvM_00467].
Tratamento de erros e simultaneidade
A interface não especifica notificações de erro de DET ou DEM próprias [SWS_NvM_00467]. O resultado da tarefa anterior é transmitido pelo parâmetro JobResult, enquanto erros dentro do próprio processamento do callback são reportados por meio do valor de retorno da função [SWS_NvM_00467].
Em relação à concorrência, a rotina é declarada como não reentrante (Non Reentrant) [SWS_NvM_00467]. Ela é disponibilizada por meio do cabeçalho NvM_Externals.h [SWS_NvM_00467]. A chamada pelo módulo NvM deve ocorrer de forma síncrona no contexto de tarefa do processamento cíclico de tarefas do NvM (interpretação). Pergunta Q-f50640211851274f (aberta)
Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função 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
A rotina de callback NvM_MultiBlockCallbackFunction notifica a camada superior de que uma tarefa assíncrona multibloco previamente iniciada foi concluída [SWS_NvM_00468]. A declaração da função é disponibilizada por meio do arquivo de cabeçalho NvM_Externals.h [SWS_NvM_00468].
Contexto de chamada e parâmetros
A chamada pelo NVRAM Manager ocorre de forma síncrona com o processamento no fluxo de execução [SWS_NvM_00468]. Na chamada, são passados dois parâmetros para a rotina:
MultiBlockRequest(tipoNvM_MultiBlockRequestType): Designa o tipo concreto de solicitação da tarefa multibloco processada anteriormente, como acessos de leitura ou escrita [SWS_NvM_00468].JobResult(tipoNvM_RequestResultType): Transmite à camada superior o resultado final do processamento do job multibloco precedente [SWS_NvM_00468].
Valor de retorno e tratamento de erros
A rotina retorna um valor do tipo Std_ReturnType para o módulo chamador [SWS_NvM_00468]. O valor de retorno E_OK indica que a função de callback pôde ser processada com sucesso; por outro lado, qualquer outro valor de retorno sinaliza um processamento com falha [SWS_NvM_00468]. Códigos de erro específicos, mensagens de DET ou DEM não estão definidos no escopo da especificação para esta função. Interpretação: As consequências concretas de um valor de retorno diferente de E_OK devem ser específicas da implementação, uma vez que o padrão não prescreve um tratamento de erro subsequente. Pergunta Q-462dea7f3074ae9c (aberta)
Simultaneidade e restrições
A função é especificada como não reentrante (Non Reentrant) [SWS_NvM_00468]. Portanto, dentro do sistema chamador deve-se assegurar que não ocorram chamadas múltiplas concorrentes ou interruptivas desta interface de callback.
Este texto foi gerado por uma IA com base na especificação.
Guia do implementador em breve (complexidade I1)
função 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
Utilização e contexto de chamada
A rotina de callback específica do usuário NvM_InitBlockCallbackFunction é chamada pelo módulo NvM quando dados padrão para um bloco de NVRAM precisam ser restaurados na RAM e nenhum bloco ROM correspondente está configurado [SWS_NvM_00469]. A chamada ocorre de forma síncrona e a interface é declarada por meio do cabeçalho NvM_Externals.h [SWS_NvM_00469].
Como parâmetro de passagem, a função recebe InitBlockRequest do tipo NvM_InitBlockRequestType [SWS_NvM_00469]. Este valor informa a rotina sobre o tipo específico de solicitação do bloco atualmente processado, como a leitura ou restauração de dados (read, restore) [SWS_NvM_00469].
Valores de retorno e tratamento de erros
A rotina retorna um valor de status do tipo Std_ReturnType [SWS_NvM_00469]:
E_OK: Sinaliza ao módulo NvM que a função de callback inicializou e processou os dados na RAM com sucesso [SWS_NvM_00469].- Qualquer outro valor de retorno: Indica que a inicialização não pôde ser concluída com sucesso [SWS_NvM_00469].
Códigos de erro específicos para DET ou DEM não são especificados para a interface em si [SWS_NvM_00469].
Concorrência e restrições de execução
A interface é definida como síncrona e não reentrante (Non Reentrant) [SWS_NvM_00469]. Como o NVRAM Manager aguarda sincronicamente o retorno da função, uma execução bloqueante dentro da rotina deve interromper imediatamente o processamento subsequente do NvM (interpretação). Pergunta Q-c0e43c9871c4f2d0 (aberta)
Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função 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.
A função de callback específica do bloco NvM_WriteRamBlockToNvm serve para a sincronização explícita a fim de copiar dados da aplicação do bloco RAM para o espelho interno de RAM do módulo NvM [SWS_NvM_00539]. Ela está declarativamente disponível por meio de NvM_Externals.h e é chamada sincronicamente pelo NvM [SWS_NvM_00539].
Utilização e parâmetros
A função passa como parâmetro de saída o ponteiro NvMBuffer, que representa o endereço de destino do espelho do NvM no qual os dados devem ser gravados [SWS_NvM_00539]. Como valor de retorno, a rotina de callback fornece E_OK em caso de processamento bem-sucedido ou qualquer outro valor em caso de falha [SWS_NvM_00539].
Simultaneidade e restrições
De acordo com a especificação, NvM_WriteRamBlockToNvm é projetada como não reentrante (Non Reentrant) [SWS_NvM_00539].
Interação no módulo
- Durante o desligamento, o job
NvM_WriteAllsincroniza blocos RAM permanentes ou chama a rotina de callbackNvM_WriteRamBlockToNvmpara sincronização explícita [SWS_NvM_00018], desde que o parâmetroNvMSelectBlockForWriteAllpara o bloco de NVRAM esteja configurado comotrue[SWS_NvM_00252]. - Os jobs de escrita
NvM_WriteBlock[SWS_NvM_00303] eNvM_WritePRAMBlock[SWS_NvM_00803] validam automaticamente um bloco RAM permanente ainda inválido após a chamada deNvM_WriteRamBlockToNvm.
Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função 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.
A função NvM_ReadRamBlockFromNvm é uma rotina de callback específica do bloco declarada por meio de NvM_Externals.h [SWS_NvM_00540]. Sua finalidade é permitir que a aplicação copie dados do buffer de espelho interno do módulo NvM para o respectivo bloco RAM a fim de realizar uma sincronização explícita [SWS_NvM_00540], [SWS_NvM_00118].
Utilização e semântica
- Contexto de chamada e concorrência: A chamada ocorre de forma síncrona e é especificada como não reentrante (
Non Reentrant) [SWS_NvM_00540]. - Parâmetros: O ponteiro
NvMBuffer(tipoconst void*) atua como parâmetro de passagem. Ele passa o endereço do buffer a partir do qual os dados podem ser lidos e copiados para o bloco RAM [SWS_NvM_00540]. - Valor de retorno e tratamento de erros: A função de callback retorna um
Std_ReturnType. O valor de retornoE_OKsinaliza o processamento bem-sucedido; qualquer outro valor de retorno indica um processamento mal-sucedido [SWS_NvM_00540].
Interação
No âmbito do serviço multibloco NvM_ReadAll, NvM_ReadRamBlockFromNvm é chamado para a sincronização explícita dos blocos de NVRAM configurados de forma correspondente e para os quais se aplica NvmSelectBlockForReadall == TRUE [SWS_NvM_00118], [SWS_NvM_00356]. Isso representa a alternativa ao processo de cópia direta em blocos RAM permanentes, enquanto NvM_ReadAll inicializa os dados de gerenciamento dos blocos [SWS_NvM_00356].
Este texto foi gerado por um sistema de IA com base nas diretrizes da especificação.
Guia do implementador em breve (complexidade 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
O tipo enumerado NvM_MultiBlockRequestType é disponibilizado por meio do arquivo de cabeçalho NvM.h e serve para a identificação inequívoca de uma solicitação multibloco executada [SWS_NvM_91003]. O tipo é utilizado quando o resultado ou o status de uma operação multibloco é sinalizado por meio de uma função de callback ou reportado ao módulo BswM [SWS_NvM_91003].
Faixa de valores e semântica
A enumeração define os seguintes valores para diferenciação das tarefas multibloco [SWS_NvM_91003]:
NVM_READ_ALL(0x00): Indica queNvM_ReadAllfoi executado.NVM_WRITE_ALL(0x01): Indica queNvM_WriteAllfoi executado.NVM_VALIDATE_ALL(0x02): Indica queNvM_ValidateAllfoi executado.NVM_FIRST_INIT_ALL(0x03): Indica queNvM_FirstInitAllfoi executado.NVM_CANCEL_WRITE_ALL(0x04): Indica queNvM_CancelWriteAllfoi executado.
Interação
Por meio da passagem deste tipo, os callbacks chamados, bem como o BswM, podem determinar qual serviço multibloco concreto disparou a notificação. Interpretação: Presumivelmente, o retorno ao BswM serve para acoplar ações subsequentes ou mudanças de estado no sistema global à conclusão de serviços multibloco específicos. Pergunta Q-69b4d985301acfeb (aberta)
Este texto foi gerado por uma IA e serve como guia de orientação. As especificações referenciadas são determinantes.
Guia do implementador em breve (complexidade I1)
tipo NvM_RequestResultType [SWS_NvM_00470] 📄 PDF
Type NvM_RequestResultType.
O tipo NvM_RequestResultType é baseado em uint8, é disponibilizado via Rte_NvM_Type.h e mapeia o resultado de requisição assíncrona de solicitações de leitura, gravação e controle do gerenciador de NVRAM [SWS_NvM_00470]. O resultado é consultado primariamente por meio do serviço de API NvM_GetErrorStatus e pode adicionalmente ser sinalizado através de uma função de callback configurada [SWS_NvM_00470].
A faixa de valores mapeia diferentes estados de execução e casos de erro [SWS_NvM_00470]:
NVM_REQ_OK(0x00): A última solicitação assíncrona foi concluída com sucesso; este é também o valor padrão após um reset.NVM_REQ_NOT_OK(0x01): A requisição assíncrona de leitura, gravação ou controle não foi concluída com sucesso.NVM_REQ_PENDING(0x02): Uma requisição assíncrona ainda está em processamento no momento.NVM_REQ_INTEGRITY_FAILED(0x03): Erro de integridade de dados emNvM_ReadBlockouNvM_ReadAll. No caso deNvM_ReadBlock, o conteúdo do bloco de RAM foi alterado, mas tornou-se inválido; a aplicação é responsável por renovar e validar o conteúdo.NVM_REQ_BLOCK_SKIPPED(0x04): O bloco referenciado foi ignorado duranteNvM_ReadAllouNvM_WriteAll(por ex., blocos de NVRAM do tipo dataset emNvM_ReadAllou blocos sem bloco de RAM configurado permanentemente).NVM_REQ_NV_INVALIDATED(0x05): O bloco NV referenciado está invalidado.NVM_REQ_CANCELED(0x06): Cancelamento deNvM_WriteAllporNvM_CancelWriteAllou cancelamento de uma solicitação de bloco único (NvM_ReadBlock,NvM_WriteBlock,NvM_EraseNvBlock,NvM_InvalidateNvBlock,NvM_RestoreBlockDefaults) porNvM_CancelJobs.NVM_REQ_RESTORED_DEFAULTS(0x08): Os valores padrão foram copiados com sucesso para a imagem da RAM.
Em conjunto com blocos redundantes (NVM_BLOCK_REDUNDANT), a função NvM_InvalidateNvBlock define o resultado da requisição NvM_RequestResultType como NVM_REQ_OK somente quando ambos os blocos NV tiverem sido invalidados [SWS_NvM_00274].
Este texto foi gerado automaticamente. Todas as informações baseiam-se exclusivamente nos requisitos de especificação da versão R20-11 do AUTOSAR.
Guia do implementador em breve (complexidade 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
O tipo de dados NvM_InitBlockRequestType baseia-se em uint8 e é disponibilizado por meio do arquivo de cabeçalho Rte_NvM_Type.h [SWS_NvM_91123]. Ele serve para identificar o tipo da solicitação executada em um bloco de NVRAM quando esta for sinalizada por meio de uma função de callback correspondente [SWS_NvM_91123].
O intervalo de valores permitido compreende quatro tipos de solicitação [SWS_NvM_91123]:
NVM_INIT_READ_BLOCK(0x00): Indica que foi solicitadoNvM_ReadBlockouNvM_ReadPRAMBlockpara o bloco [SWS_NvM_91123].NVM_INIT_RESTORE_BLOCK_DEFAULTS(0x01): Sinaliza que foi solicitadoNvM_RestoreBlockDefaultsouNvM_RestorePRAMBlockDefaultspara o bloco [SWS_NvM_91123].NVM_INIT_READ_ALL_BLOCK(0x02): Indica que o processamento do bloco ocorre no âmbito deNvM_ReadAll[SWS_NvM_91123].NVM_INIT_FIRST_INIT_ALL(0x03): Identifica o processamento do bloco durante a execução deNvM_FirstInitAll[SWS_NvM_91123].
Com base neste valor de enumeração, a lógica de aplicação chamada pode distinguir se se trata de uma requisição explícita de bloco individual (leitura ou restauração de valores padrão) ou de uma operação coletiva global durante o arranque do sistema [SWS_NvM_91123]. Interpretação: O tipo deve ser passado como parâmetro para callbacks de inicialização relacionados a blocos, para que a aplicação possa fornecer dados padrão adequados à situação ou efetuar preparações específicas. Pergunta Q-42d0d469e305728e (aberta)
Esta nota de utilização baseia-se na especificação AUTOSAR Classic Release R20-11.
Guia do implementador em breve (complexidade I1)
tipo NvM_BlockRequestType [SWS_NvM_91002] 📄 PDF
Identifies the type of reques t performed on a block when signaled via the callback function
O tipo de enumeração NvM_BlockRequestType baseia-se em uint8 e é disponibilizado por meio do cabeçalho Rte_NvM_Type.h [SWS_NvM_91002]. Ele serve para transmitir, em uma notificação por meio de uma função de callback, o tipo de solicitação executada anteriormente em um bloco de NVRAM [SWS_NvM_91002].
O intervalo de valores compreende seis solicitações de bloco específicas [SWS_NvM_91002]:
NVM_READ_BLOCK(0x00): Sinaliza queNvM_ReadBlockouNvM_ReadPRAMBlockfoi executado para o bloco [SWS_NvM_91002].NVM_WRITE_BLOCK(0x01): Sinaliza queNvM_WriteBlockouNvM_WritePRAMBlockfoi executado para o bloco [SWS_NvM_91002].NVM_RESTORE_BLOCK_DEFAULTS(0x02): Sinaliza queNvM_RestoreBlockDefaultsouNvM_RestorePRAMBlockDefaultsfoi executado [SWS_NvM_91002].NVM_ERASE_NV_BLOCK(0x03): Sinaliza queNvM_EraseNvBlockfoi executado no bloco [SWS_NvM_91002].NVM_INVALIDATE_NV_BLOCK(0x04): Sinaliza queNvM_InvalidateNvBlockfoi executado no bloco [SWS_NvM_91002].NVM_READ_ALL_BLOCK(0x05): Sinaliza queNvM_ReadAllconcluiu o processamento deste bloco [SWS_NvM_91002].
Na arquitetura da aplicação, o valor deve ser avaliado como parâmetro em rotinas de callback a fim de informar componentes de software de nível superior de forma diferenciada sobre a conclusão de determinadas operações de bloco [SWS_NvM_91002]. Pergunta Q-467801b6b5e898a2 (aberta) Na falta de outras diretrizes no payload sobre códigos de erro ou concorrência, os detalhes da especificação limitam-se à definição do tipo e ao intervalo de valores [SWS_NvM_91002].
Este texto foi criado por uma IA; a exatidão não pode ser garantida.
Guia do implementador em breve (complexidade 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#984a2567- Content hash
984a2567- 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 em alemão