DEENESPTFRRUARHIKOZHNL

Flash EEPROM Emulation (Fee)

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

Guia do móduloGERADO POR IA

Emula uma EEPROM com blocos lógicos na memória flash e atende a requisições assíncronas de leitura e escrita.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: 82b558e5a038 Procedência Perguntas em aberto (6)
Âncora causal: R20-11 Válido a partir de R20-11 Sintetizado para esta versão de especificação.
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Emula uma EEPROM com blocos lógicos na memória flash e atende a requisições assíncronas de leitura e escrita.

O Fee mapeia os blocos lógicos de uma EEPROM emulada na memória flash e atende às requisições feitas pelo NVRAM Manager via MemIf. Requisições de leitura, escrita e apagamento são apenas aceitas e, em seguida, processadas de forma assíncrona em Fee_MainFunction [SWS_Fee_00097]. O progresso e o resultado são mostrados por Fee_GetStatus e Fee_GetJobResult. Após Fee_Init, o módulo pode inicialmente estar ocupado com o gerenciamento interno (MEMIF_BUSY_INTERNAL), mas já aceita requisições SWS Fee p. 42. Requisições de escrita sempre afetam o bloco inteiro.

O Fee mapeia os blocos lógicos de uma EEPROM emulada na memória flash. O BlockNumber designa simultaneamente o endereço inicial do bloco [SWS_Fee_00087]. As chamadas vêm do NVRAM Manager através do Memory Abstraction Interface, que seleciona o serviço correspondente por meio de DeviceIndex SWS MemIf p. 18. Abaixo dele opera o driver de flash Fls. O Fee fornece notificações diretamente ao NVRAM Manager por meio de NvM_JobEndNotification e NvM_JobErrorNotification [SWS_Fee_00098], [SWS_Fee_00099].

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

Diagrama de contexto: Fee entre MemIf e Fls, inicializado pelo EcuM, disparado ciclicamente pelo SchM, com notificações diretamente ao NvM. Fontes: [SWS_Fee_00085], [SWS_Fee_00097], [SWS_Fee_00105].

O EcuM chama Fee_Init com o conjunto de configuração selecionado; a R20-11 lista esse serviço como assíncrono [SWS_Fee_00085]. Depois disso, o status fica em MEMIF_BUSY_INTERNAL, mas as requisições já são aceitas. Apenas chamadas repetidas de Fee_MainFunction concluem o gerenciamento interno e levam a MEMIF_IDLE SWS Fee p. 42. Fee_GetStatus mostra o estado do módulo, Fee_GetJobResult o resultado da última requisição aceita [SWS_Fee_00090], [SWS_Fee_00091].

fee_modulstatus start UNINIT MEMIF_UNINIT start->UNINIT BUSY_INTERNAL MEMIF_BUSY_INTERNAL UNINIT->BUSY_INTERNAL Fee_Init BUSY_INTERNAL->BUSY_INTERNAL Fee_MainFunction (gerenciamento em execução) IDLE MEMIF_IDLE BUSY_INTERNAL->IDLE Fee_MainFunction (Verwaltung beendet) BUSY MEMIF_BUSY BUSY_INTERNAL->BUSY Fee_Read / Fee_Write angenommen IDLE->BUSY Fee_Read / Fee_Write angenommen BUSY->IDLE Fee_Cancel BUSY->IDLE Auftrag beendet (Annahme)

Diagrama de estados: status do módulo de MEMIF_UNINIT via MEMIF_BUSY_INTERNAL para MEMIF_IDLE e MEMIF_BUSY; o retorno após a conclusão regular da requisição é uma suposição. Fontes: [SWS_Fee_00090], SWS Fee p. 28.

Requisições de leitura, escrita, invalidação e apagamento sinalizam apenas a sua aceitação com E_OK; elas são processadas de forma assíncrona em Fee_MainFunction [SWS_Fee_00097]. Fee_Read lê partes arbitrárias de um bloco, Fee_Write sempre o bloco inteiro com deslocamento zero SWS Fee p. 28. Durante a escrita, o bloco é considerado internamente como «corrupted». Essa marcação deve ser distinguida de uma invalidação por Fee_InvalidateBlock SWS Fee p. 21.

Fee_Cancel é síncrono na R20-11 e cancela uma requisição pendente por meio do driver de flash [SWS_Fee_00089]. Sem requisição pendente, ele reporta FEE_E_INVALID_CANCEL [SWS_Fee_91002]. Erros de flash são detectados pelo driver. O Fee os reporta por duas vias, dependendo da configuração: como MEMIF_JOB_FAILED para consulta ou via NvM_JobErrorNotification. A recuperação é assumida pelo NVRAM Manager ErrorDescription p. 40. Operações incorretas, como falta de inicialização ou números de bloco inválidos, são reportadas pelo Fee como erros de desenvolvimento [SWS_Fee_00010].

Papel na pilha de memória NV: memória flash como EEPROM emulada

A Flash EEPROM Emulation (Fee) disponibiliza blocos lógicos para a camada superior e os mapeia na memória flash. O BlockNumber designa simultaneamente o endereço inicial do bloco na memória [SWS_Fee_00087], [SWS_Fee_00088]. O NVRAM Manager não chama o Fee diretamente, mas por meio do Memory Abstraction Interface. MemIf_Read e MemIf_Write chamam a função do módulo de abstração selecionado via DeviceIndex e repassam o seu valor de retorno SWS MemIf p. 18, SWS MemIf p. 19. Abaixo, o Fee se apoia no driver de flash Fls. Dele ele importa Fls_AddressType e Fls_LengthType, e do MemIf os tipos de status, de resultado e de modo [SWS_Fee_00084].

As notificações contornam o MemIf. O próprio MemIf não disponibiliza callbacks; as rotinas de retorno para os módulos de abstração subjacentes são fornecidas pelo NVRAM Manager SWS MemIf p. 24. O Fee chama NvM_JobEndNotification e NvM_JobErrorNotification para essa finalidade [SWS_Fee_00098], [SWS_Fee_00099]. Por outro lado, o driver reporta a conclusão de suas requisições ao Fee por meio de Fee_JobEndNotification e Fee_JobErrorNotification [SWS_Fee_00095], [SWS_Fee_00096]. O Fee é inicializado pelo EcuM e disparado ciclicamente pelo Basic Software Scheduler SWS Fee p. 42.

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

Diagrama de contexto: o Fee fica entre o MemIf e o Fls. Ele é inicializado pelo EcuM, disparado ciclicamente pelo SchM e reporta as conclusões de requisições diretamente ao NvM. Fontes: [SWS_Fee_00085], [SWS_Fee_00097], [SWS_Fee_00098], [SWS_Fee_00104], [SWS_Fee_00105], SWS MemIf p. 18.

Como serviços de driver necessários, a R20-11 lista, entre outras, as seguintes funções [SWS_Fee_00105]:

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

Opcionalmente, somam-se Det_ReportError e Fls_BlankCheck [SWS_Fee_00104]. Uma versão posterior do mesmo requisito lista, em vez disso, MemAcc_BlankCheck SWS Fee p. 40. A variante do Fls permanece normativa para a R20-11.

Inicialização: de Fee_Init até a prontidão para aceitação

O EcuM chama Fee_Init com um ponteiro para o conjunto de configuração selecionado [SWS_Fee_00085]. O tipo Fee_ConfigType é uma estrutura com elementos específicos da implementação [SWS_Fee_00188]. Vale destacar que a R20-11 lista Fee_Init como assíncrono [SWS_Fee_00085]. De acordo com o histórico de alterações, a inicialização não precisa ser concluída dentro de Fee_Init, e a máquina de estados foi adaptada em conformidade SWS Fee p. 4.

O diagrama de sequência da especificação mostra o fluxo SWS Fee p. 42:

  1. Após Fee_Init, o status do módulo fica em MEMIF_BUSY_INTERNAL.
  2. As requisições já podem ser aceitas nesse estado.
  3. O Scheduler chama Fee_MainFunction até que o gerenciamento interno seja concluído.

Uma versão posterior estabelece que Fee_MainFunction define então o status de MEMIF_BUSY_INTERNAL para MEMIF_IDLE. O gerenciamento pode durar mais de uma chamada SWS Fee p. 38. A versão mais antiga do diagrama mostra apenas a chamada síncrona pelo EcuM SWS Fee p. 38.

Hochlauf von FeeEcuMFeeSchMFee_Init(ConfigPtr)Modulstatus := MEMIF_BUSY_INTERNALFee_Init()Tarefas já são aceitas a partir daquiloopgerenciamento interno ainda necessárioFee_MainFunction()interne VerwaltungsoperationStatus bleibt MEMIF_BUSY_INTERNALFee_MainFunction()Fee_MainFunction()Verwaltung beendetModulstatus := MEMIF_IDLEFee_MainFunction()

Diagrama de sequência: Fee_Init coloca o módulo em MEMIF_BUSY_INTERNAL. Apenas chamadas repetidas de Fee_MainFunction concluem o gerenciamento interno e levam a MEMIF_IDLE. Fontes: [SWS_Fee_00085], [SWS_Fee_00097], SWS Fee p. 42.

Fee_MainFunction processa as requisições solicitadas de leitura, escrita e apagamento, bem como as operações de gerenciamento interno [SWS_Fee_00097]. Como função escalonada, ela é chamada diretamente pelo Basic Software Scheduler. Ela não possui parâmetros nem valor de retorno e não é reentrante SWS Fee p. 40.

Status do módulo e resultado da requisição como variáveis de controle

A camada superior controla as suas chamadas por meio de duas consultas síncronas. Fee_GetStatus fornece um de quatro valores [SWS_Fee_00090]:

  • MEMIF_UNINIT: O módulo não está inicializado.
  • MEMIF_IDLE: o módulo está inativo.
  • MEMIF_BUSY: uma requisição da camada superior está em processamento.
  • MEMIF_BUSY_INTERNAL: uma operação de gerenciamento interno está em andamento.

Como exemplo de uma operação de gerenciamento interno, a especificação cita a reorganização da memória flash utilizada (coleta de lixo) SWS Fee p. 30. Novas requisições são aceitas tanto em MEMIF_IDLE quanto em MEMIF_BUSY_INTERNAL e levam a MEMIF_BUSY SWS Fee p. 28. Após a conclusão regular da requisição, espera-se que o status retorne para MEMIF_IDLE. Pergunta Q-beae785a1ba1cbec (aberta) O retorno para MEMIF_IDLE está explicitamente comprovado aqui apenas para o cancelamento SWS Fee p. 29.

fee_modulstatus start UNINIT MEMIF_UNINIT start->UNINIT BUSY_INTERNAL MEMIF_BUSY_INTERNAL UNINIT->BUSY_INTERNAL Fee_Init BUSY_INTERNAL->BUSY_INTERNAL Fee_MainFunction (gerenciamento em execução) IDLE MEMIF_IDLE BUSY_INTERNAL->IDLE Fee_MainFunction (Verwaltung beendet) BUSY MEMIF_BUSY BUSY_INTERNAL->BUSY Fee_Read / Fee_Write angenommen IDLE->BUSY Fee_Read / Fee_Write angenommen BUSY->IDLE Fee_Cancel BUSY->IDLE Auftrag beendet (Annahme)

Diagrama de estados: ciclo de vida do status do módulo de MEMIF_UNINIT via MEMIF_BUSY_INTERNAL para MEMIF_IDLE e MEMIF_BUSY. A transição na conclusão regular da requisição está marcada como uma suposição. Fontes: [SWS_Fee_00090], SWS Fee p. 42, SWS Fee p. 28, SWS Fee p. 29.

Fee_GetJobResult refere-se à última requisição aceita [SWS_Fee_00091], SWS Fee p. 31. Ele distingue seis resultados:

  • MEMIF_JOB_OK: a requisição foi concluída com sucesso.
  • MEMIF_JOB_PENDING: a requisição está em espera ou ainda em execução.
  • MEMIF_JOB_CANCELED: o trabalho foi cancelado.
  • MEMIF_JOB_FAILED: a requisição falhou.
  • MEMIF_BLOCK_INCONSISTENT: o bloco possivelmente contém dados corrompidos.
  • MEMIF_BLOCK_INVALID: o bloco foi invalidado; a leitura não é possível.

O status descreve, portanto, o módulo, e o resultado descreve a requisição individual; ambos devem ser consultados separadamente [SWS_Fee_00090].

Requisições de leitura, escrita e gerenciamento de blocos

Os serviços de requisição operam de forma assíncrona: E_OK significa apenas que a requisição foi aceita [SWS_Fee_00087], [SWS_Fee_00088]. Fee_Read calcula o endereço de leitura a partir do endereço inicial do bloco e de BlockOffset. O deslocamento e o comprimento podem assumir qualquer valor de sua faixa de tipo. Dessa forma, é possível ler qualquer quantidade de bytes a partir de qualquer ponto de um bloco SWS Fee p. 26. Se Fls_BlankCheck estiver configurado no driver de flash, Fee_Read verifica previamente com isso se a área é legível. Isso evita, por exemplo, que células apagadas, mas não programadas, disparem erros de ECC [SWS_Fee_00187].

Fee_Write, por outro lado, sempre grava o bloco inteiro; o deslocamento é fixado em zero SWS Fee p. 28. Isso decorre do requisito de nível superior de que requisições de apagamento e escrita sempre comecem no limite virtual de 64K: um bloco é gravado por inteiro ou não é gravado RS MemHwAb p. 24. Em caso de aceitação, o Fee define o status como MEMIF_BUSY e o resultado como MEMIF_JOB_PENDING, e retorna E_OK. Para Fee_Read aplica-se a mesma condição de aceitação SWS Fee p. 26.

Para que operações de escrita interrompidas permaneçam identificáveis, o Fee mantém uma informação interna de integridade para cada bloco SWS Fee p. 21. No início de um processo de escrita, o bloco é marcado como «corrupted» e, após a conclusão bem-sucedida, novamente como «not corrupted». Essa informação deve ser rigorosamente separada da validade, que a camada superior define com Fee_InvalidateBlock.

Tarefa de escrita através da pilha de memória NVNvMMemIfFeeSchMFlsUse Case: Annahme (synchron)MemIf_Write(DeviceIndex, BlockNumber, DataBufferPtr)Fee_Write(BlockNumber, DataBufferPtr)Offset fest 0 (ganzer Block)Status := MEMIF_BUSYErgebnis := MEMIF_JOB_PENDINGE_OKE_OKUse Case: Abarbeitung (asynchron)Fee_MainFunction()Block als „corrupted“ markierenFls_Write(…) (Annahme)Fee_JobEndNotification()Block als „not corrupted“ markierenErgebnis := MEMIF_JOB_OKoptBenachrichtigung konfiguriertNvM_JobEndNotification()

Diagrama de sequência: uma requisição de escrita é aceita de forma síncrona, mas concluída de forma assíncrona via Fee_MainFunction e a notificação do driver. Durante esse processo, o bloco é marcado primeiro como «corrupted» e, ao final, novamente como «not corrupted». Fontes: [SWS_Fee_00088], [SWS_Fee_00095], [SWS_Fee_00098], SWS Fee p. 28, SWS Fee p. 21, SWS Fee p. 37.

Fee_InvalidateBlock declara um bloco lógico como inválido [SWS_Fee_00092]. Para isso, ele chama a função de apagamento do driver e/ou altera informações de gerenciamento interno, que devem ser armazenadas de forma não volátil SWS Fee p. 32. Se a camada superior ler posteriormente esse bloco, Fee_MainFunction define o resultado como MEMIF_BLOCK_INVALID. Se configurado, ele também chama a notificação de erro da camada superior SWS Fee p. 38.

Fee_EraseImmediateBlock [SWS_Fee_00094] destina-se a serviços de diagnóstico ou serviços de sistema semelhantes. Com ele, eles apagam previamente, se necessário, a área para dados imediatos. A implementação decide se ocorre um apagamento físico SWS Fee p. 35. Para Fee_InvalidateBlock e Fee_EraseImmediateBlock, a R20-11 prevê o retorno E_NOT_OK expressamente apenas com o DET ativado [SWS_Fee_00092], [SWS_Fee_00094].

Notificações, cancelamento e mudanças de modo

O driver de flash reporta a conclusão bem-sucedida de uma requisição do driver por meio de Fee_JobEndNotification [SWS_Fee_00095]. O Fee realiza então o gerenciamento de bloco necessário e, se configurado, chama a notificação de término de job da camada superior. Um resultado que ainda esteja em MEMIF_JOB_PENDING é definido por ele como MEMIF_JOB_OK SWS Fee p. 37. Callbacks podem, dependendo da estrutura da pilha de memória, ser executados em nível de interrupção e propagar-se para cima através de várias camadas. O seu tempo de execução deve, portanto, permanecer curto; o design do sistema decide se chamadas em nível de interrupção são admissíveis SWS Fee p. 36.

Fee_Cancel chama a função de cancelamento do driver de flash [SWS_Fee_00089]. A camada superior acessa o serviço por meio de MemIf_Cancel SWS MemIf p. 20. O cancelamento só se torna efetivo no status MEMIF_BUSY: o Fee chama o cancelamento do driver, redefine suas variáveis internas e retorna para MEMIF_IDLE. Se o DET estiver ativado, o Fee verifica previamente se o módulo está inicializado SWS Fee p. 29.

Em Fee_Cancel, as versões diferem entre si. A referida versão posterior classifica o serviço como assíncrono, ao passo que a R20-11 o classifica como síncrono [SWS_Fee_00089]. Para a R20-11, a classificação síncrona é a determinante.

fee_cancel start aufruf Fee_Cancel() aufgerufen start->aufruf d_det DET ativo e status MEMIF_UNINIT? aufruf->d_det e_uninit FEE_E_UNINIT melden d_det->e_uninit sim d_busy Tarefa pendente (status MEMIF_BUSY)? d_det->d_busy não ende e_uninit->ende Abbruch (Annahme) fls Chamar função de cancelamento do driver de flash d_busy->fls sim e_cancel FEE_E_INVALID_CANCEL melden d_busy->e_cancel não reset redefinir variáveis internas, status := MEMIF_IDLE fls->reset reset->ende e_cancel->ende

Diagrama de atividades: Fee_Cancel ramifica-se após a verificação de DET e o estado do módulo. Apenas uma tarefa pendente é cancelada; caso contrário, é reportado FEE_E_INVALID_CANCEL. Fontes: [SWS_Fee_00089], [SWS_Fee_91002], [SWS_Fee_00010], SWS Fee p. 29.

Fee_SetMode comuta o modo de operação do driver de flash subjacente [SWS_Fee_00086]. O diagrama correspondente mostra a cadeia de chamadas NvM → MemIf_SetMode → Fee_SetMode → Fls_SetMode SWS Fee p. 39. Fee_GetVersionInfo é o único serviço Fee reentrante [SWS_Fee_00093]. Com a DET ativada, ele verifica o ponteiro passado quanto a NULL SWS Fee p. 34.

Configuração e integração

O Fee recebe a configuração por meio do Fee_ConfigType, que é passado para Fee_Init [SWS_Fee_00085], [SWS_Fee_00188]. A estrutura de inclusão de uma versão anterior da especificação mostra a seguinte divisão SWS Fee p. 11:

  • Fee_Cfg.h inclui MemIf_Types.h e Fls.h, e opcionalmente também NvM_Cbk.h.
  • Fee_Lcfg.c e Fee_PBcfg.c contêm os dados de configuração.
  • O escalonador está vinculado através de SchM_Fee.h, e a DET, opcionalmente, através de Det.h.

Para a R20-11, esta figura serve apenas para orientação. Se o Fee for implementado como uma biblioteca específica do fornecedor, os diagramas de sequência são vinculativos apenas para as relações com o EcuM e o MemIf, não para as chamadas ao driver SWS Fee p. 42.

Comportamento em caso de erro

Como erros de desenvolvimento, o Fee define cinco códigos [SWS_Fee_00010]:

  • FEE_E_UNINIT (0x01): serviço chamado antes da inicialização.
  • FEE_E_INVALID_BLOCK_NO (0x02): número de bloco inválido.
  • FEE_E_INVALID_BLOCK_OFS (0x03): deslocamento de bloco inválido.
  • FEE_E_PARAM_POINTER (0x04): ponteiro de dados inválido.
  • FEE_E_INVALID_BLOCK_LEN (0x05): indicação de comprimento inválida.

A R20-11 acrescenta dois outros códigos [SWS_Fee_91002]. FEE_E_BUSY (0x06) aplica-se a chamadas enquanto uma tarefa de usuário estiver sendo processada. FEE_E_INVALID_CANCEL (0x08) aplica-se a Fee_Cancel sem tarefa pendente. Uma nova tarefa solicitada no estado MEMIF_BUSY deve, portanto, ser rejeitada e respondida com E_NOT_OK. Pergunta Q-92062834653929da (aberta) A regra correspondente encontra-se aqui apenas de forma incompleta SWS Fee p. 28.

Erros da memória flash são detectados pelo driver de flash; o modo como o Fee reage a eles é específico da implementação ErrorDescription p. 40. A notificação ocorre por uma de duas vias, dependendo da configuração. Ou o MemIf consulta Fee_GetJobResult e recebe MEMIF_JOB_FAILED, ou o Fee chama ativamente NvM_JobErrorNotification. A recuperação fica a cargo do NVRAM Manager. Um módulo não inicializado é identificado pela camada superior através de MEMIF_UNINIT em Fee_GetStatus ErrorDescription p. 53, [SWS_Fee_00090].

Notificação de uma falha de flashFlsFeeMemIfNvMFee_JobErrorNotification() (Annahme)implementierungsspezifische FehlerbehandlungErgebnis := MEMIF_JOB_FAILEDaltCallback konfiguriertNvM_JobErrorNotification()Abfrage per PollingFee_GetJobResult()MEMIF_JOB_FAILEDRestauração pelo NVRAM Manager

Diagrama de sequência: Um erro de driver chega à camada superior opcionalmente via callback para o NvM ou via polling de Fee_GetJobResult. Fontes: [SWS_Fee_00096], [SWS_Fee_00099], [SWS_Fee_00091], ErrorDescription p. 40.

Para a consistência dos dados, um diagrama da R22-11 descreve a cadeia de informações ErrorDescription p. 64:

  1. O Fee verifica a consistência dos dados lidos e encaminha um erro para o NVRAM Manager.
  2. O NVRAM Manager reporta NVM_E_INTEGRITY_FAILED ao DEM.
  3. Ele inicia as recuperações configuradas: nova leitura, bloco redundante ou bloco de ROM.
  4. Se estas falharem, ele define o resultado NVM_REQ_INTEGRITY_FAILED.

Do lado do Fee, isso corresponde presumivelmente ao resultado MEMIF_BLOCK_INCONSISTENT [SWS_Fee_00091]. Pergunta Q-a1846c349d831e17 (aberta)

fee_konsistenz Fee Fee Fee->Fee (1) Verificar a consistência dos dados lidos NvM NvM (NVRAM Manager) Fee->NvM (2) Fehlerstatus weiterleiten NvM->NvM (4) Wiederherstellung: read retry, redundanter Block, ROM-Block Dem DEM NvM->Dem (3) NVM_E_INTEGRITY_FAILED Ergebnis Resultado do job do NvM NvM->Ergebnis (5)/(6) Wiederherstellung gescheitert: NVM_REQ_INTEGRITY_FAILED

Diagrama de colaboração: Um erro de consistência é encaminhado pelo Fee ao NvM. O NvM o reporta ao DEM, tenta a recuperação e, em caso de falha, define o resultado do NvM (versão R22-11). Fontes: ErrorDescription p. 64.

Evidências mais detalhadas

Regras detalhadas com condições de aceitação, comportamento de callback e função principal provêm em parte de versões posteriores da especificação, p. ex., SWS Fee p. 38. Onde divergem da R20-11, isso é observado acima. As referências mais importantes:

Guia gerado por IA com base em excertos da especificação sobre o Fee (classic, R20-11). Determinantes são os requisitos linkados. Trechos de documentos de outras versões estão identificados como tais; suposições estão marcadas como interpretação.

Flash EEPROM Emulation (Fee)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

função Fee_Init [SWS_Fee_00085] 📄 PDF

void Fee_Init (const Fee_ConfigType* ConfigPtr);

Service to initialize the FEE module.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: bf4a0ee4e182 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Fee_Init serve como serviço central para a inicialização do módulo de emulação Flash EEPROM (FEE) [SWS_Fee_00085]. A chamada é realizada através da interface declarada em Fee.h com o Service-ID 0x00 [SWS_Fee_00085]. O único parâmetro de entrada passado é ConfigPtr, que serve como ponteiro para o conjunto de dados de configuração selecionado do tipo const Fee_ConfigType* [SWS_Fee_00085]. Parâmetros adicionais de entrada/saída ou puramente de saída não estão definidos, e a função não retorna nenhum valor de retorno (void) [SWS_Fee_00085].

Embora se trate de uma função de inicialização fundamental, a semântica de execução é explicitamente classificada na especificação como assíncrona (Asynchronous) [SWS_Fee_00085]. Interpretação: Como a função atua de forma assíncrona, a chamada de Fee_Init provavelmente apenas inicia a inicialização do módulo, enquanto etapas de inicialização demoradas são concluídas em segundo plano de forma não bloqueante [SWS_Fee_00085]. Pergunta Q-7d91ac2e51869606 (aberta)

Para a concorrência e o contexto de chamada, a especificação estabelece que Fee_Init não é reentrante (Non Reentrant) [SWS_Fee_00085]. Consequentemente, a função não pode ser chamada em paralelo ou de forma aninhada a partir de contextos diferentes em momento algum [SWS_Fee_00085].

Esta nota de uso foi gerada por uma IA e baseia-se exclusivamente na especificação AUTOSAR Classic Release R20-11.

Guia do implementador em breve (complexidade I1)

função Fee_SetMode [SWS_Fee_00086] 📄 PDF

void Fee_SetMode (MemIf_ModeType Mode);

Function to switch the mode of the underlying Flash Driver

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 840a1fe0d62e Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

A função Fee_SetMode serve para comutar o modo de operação do driver de flash subjacente ([SWS_Fee_00086]). Ela é disponibilizada por meio do arquivo de cabeçalho Fee.h com o Service-ID 0x01 ([SWS_Fee_00086]). O serviço espera como único parâmetro de entrada Mode (do tipo MemIf_ModeType), que define o modo de operação desejado do driver de flash ([SWS_Fee_00086]). Não são passados parâmetros de saída nem valor de retorno (void) ([SWS_Fee_00086]).

Semântica assíncrona e concorrência

A interface é especificada como assíncrona ([SWS_Fee_00086]). Como nenhum valor funcional é retornado após a chamada, o processo de comutação real do hardware de flash deve ocorrer com atraso temporal em segundo plano. Pergunta Q-9dbc267f51e150af (aberta) Em relação ao contexto de chamada, Fee_SetMode é classificada como não reentrante (Non Reentrant) ([SWS_Fee_00086]). Os chamadores devem, portanto, assegurar que a função não seja chamada simultaneamente ou de forma interruptiva a partir de diferentes threads ou tarefas.

Tratamento de erros e interação

No presente trecho de especificação, não há códigos de erro específicos, mensagens de erro DET ou eventos DEM definidos para Fee_SetMode ([SWS_Fee_00086]). Da mesma forma, não são indicadas relações diretas com outros requisitos. Interpretação: Uma eventual verificação de valores de modo inválidos provavelmente deve ser tratada internamente no driver ou no módulo Fee, sem retorno explícito de erro ao chamador. Pergunta (aberta)

Este texto foi gerado por uma IA e baseia-se exclusivamente nas especificações da release AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função Fee_Read [SWS_Fee_00087] 📄 PDF

Std_ReturnType Fee_Read (uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);

Service to initiate a read job.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 51320bacc37c Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função Fee_Read serve para iniciar uma solicitação de leitura assíncrona no módulo Flash EEPROM Emulation e é declarada através do arquivo de cabeçalho Fee.h [SWS_Fee_00087]. Ela possui o Service-ID 0x02 e aceita os seguintes parâmetros de passagem [SWS_Fee_00087]:

  • Block Number: Número do bloco lógico, que indica simultaneamente o seu endereço inicial na memória flash.
  • Block Offset: Deslocamento (offset) de leitura dentro do bloco em questão.
  • Length: Quantidade de bytes a serem lidos do bloco.
  • Data Buffer Ptr: Ponteiro para o buffer de destino para armazenamento dos dados lidos.

Como valor de retorno, a função fornece Std_ReturnType: E_OK sinaliza que a solicitação de leitura solicitada foi aceita pelo módulo; E_NOT_OK indica que a solicitação foi rejeitada [SWS_Fee_00087].

Simultaneidade e restrições

A chamada de Fee_Read é especificada como não reentrante (Non Reentrant) e assíncrona (Asynchronous) [SWS_Fee_00087].

Interação com o driver de flash

Se a função Fls_BlankCheck estiver configurada no driver flash, Fee_Read deve chamar essa função [SWS_Fee_00187]. Isso serve para a verificação prévia de se a área de memória pode ser lida sem disparar, por exemplo, erros de ECC decorrentes de células flash apagadas, mas ainda não programadas [SWS_Fee_00187].

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função Fee_Write [SWS_Fee_00088] 📄 PDF

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

Service to initiate a write job.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 46c33a39dfc2 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e semântica

A função Fee_Write serve como serviço para iniciar uma solicitação de escrita no módulo de emulação Flash EEPROM de acordo com [SWS_Fee_00088]. A declaração está disponível através do cabeçalho Fee.h. A chamada ocorre de forma assíncrona: a função apenas inicia o processo de escrita e não bloqueia até a conclusão física do processo de escrita.

Para a passagem dos dados de escrita estão definidos dois parâmetros [SWS_Fee_00088]:

  • BlockNumber (uint16): Designa o número do bloco lógico e define simultaneamente o endereço inicial deste bloco na EEPROM.
  • DataBufferPtr (const uint8*): Ponteiro para o buffer de dados que contém os dados úteis a serem escritos.

Valores de retorno e concorrência

O valor de retorno do tipo Std_ReturnType sinaliza imediatamente se a solicitação de escrita pôde ser aceita pelo módulo [SWS_Fee_00088]:

  • E_OK: A solicitação requerida foi aceita pelo módulo.
  • E_NOT_OK: A solicitação não foi aceita pelo módulo.

Em relação à concorrência, Fee_Write é especificada como não reentrante (Non Reentrant) [SWS_Fee_00088]. Os chamadores devem, portanto, assegurar que a função não seja chamada concorrentemente a partir de contextos diferentes. O Service-ID da função é 0x03 [SWS_Fee_00088]. Interpretação: A transferência física dos dados provavelmente será processada em segundo plano de forma assíncrona por ciclos subsequentes do módulo após o retorno de E_OK. Pergunta Q-8bedddcf2371f6bf (aberta)

Este texto foi gerado por uma IA e serve como orientação. São determinantes as especificações AUTOSAR referenciadas.

função Fee_Cancel [SWS_Fee_00089] 📄 PDF

void Fee_Cancel (void);

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e038d068e179 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Fee_Cancel é um serviço síncrono do módulo Fee para encaminhamento de uma solicitação de cancelamento ao driver flash subjacente [SWS_Fee_00089]. Este serviço é declarado através do cabeçalho Fee.h e possui o Service-ID numérico 0x04 [SWS_Fee_00089].

Utilização e contexto de chamada

A interface possui a assinatura void Fee_Cancel (void) [SWS_Fee_00089]. Para a chamada aplicam-se, conforme a especificação, as seguintes características de parâmetros e de execução:

  • Parâmetros: A função não espera parâmetros de passagem; não existem parâmetros de entrada, de entrada/saída nem de saída [SWS_Fee_00089].
  • Valor de retorno: Nenhum valor de retorno é retornado ao chamador [SWS_Fee_00089].
  • Sincronicidade: O processamento da chamada de função é definido como síncrono (Synchronous) [SWS_Fee_00089].

Simultaneidade e restrições

Em relação ao comportamento de concorrência, Fee_Cancel é especificada como não reentrante (Non Reentrant) [SWS_Fee_00089]. Instâncias chamadoras devem, portanto, garantir que a função não seja chamada em paralelo ou de forma aninhada a partir de contextos de tarefa ou de interrupção diferentes.

Interação e tratamento de erros

A tarefa central de Fee_Cancel consiste em chamar a função de cancelamento do driver flash subjacente [SWS_Fee_00089]. Códigos de erro específicos, valores de retorno ou mensagens de erro não estão definidos para esta função no payload. Como nenhum tratamento de erros é descrito, o comportamento em caso de falha provavelmente dependerá da implementação do driver flash chamado. Pergunta Q-bb066b6c05a2eb12 (aberta)

Esta nota de uso foi gerada automaticamente e baseia-se exclusivamente nos conteúdos da especificação do Release AUTOSAR R20-11.

função Fee_GetStatus [SWS_Fee_00090] 📄 PDF

MemIf_StatusType Fee_GetStatus (void);

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

função Fee_GetJobResult [SWS_Fee_00091] 📄 PDF

MemIf_JobResultType Fee_GetJobResult (void);

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

função Fee_InvalidateBlock [SWS_Fee_00092] 📄 PDF

Std_ReturnType Fee_InvalidateBlock (uint16 BlockNumber);

Service to invalidate a logical block.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 93ce420cf23c Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Fee_InvalidateBlock serve como serviço para invalidar um bloco lógico na memória flash [SWS_Fee_00092]. Ela está disponível por meio do cabeçalho Fee.h e possui o Service-ID 0x07 [SWS_Fee_00092].

Utilização e parâmetros

A chamada ocorre de forma assíncrona; a invalidação real é, portanto, disparada como uma solicitação em segundo plano [SWS_Fee_00092]:

  • Block Number (uint16, in): Designa o número do bloco lógico, que ao mesmo tempo determina o endereço inicial do bloco na memória flash [SWS_Fee_00092].
  • Rückgabewert (Std_ReturnType): Retorna E_OK se a solicitação de invalidação tiver sido aceita com sucesso pelo módulo [SWS_Fee_00092].

Tratamento de erros

Se o módulo não puder aceitar a solicitação, E_NOT_OK é retornado – de acordo com a especificação, no entanto, esse retorno de erro é expressamente restrito a configurações com DET ativado (only if DET is enabled) [SWS_Fee_00092]. Interpretação: Se o DET estiver desativado, uma rejeição da solicitação provavelmente não deve ser sinalizada ao chamador por meio de E_NOT_OK, uma vez que a especificação vincula o retorno desse valor de erro à ativação do DET. Pergunta Q-2e54187ddb69e481 (aberta)

Simultaneidade e condições marginais

A interface é declarada como não reentrante (Non Reentrant) [SWS_Fee_00092]. Os chamadores devem, portanto, assegurar que não ocorram chamadas paralelas ou interruptivas de Fee_InvalidateBlock enquanto uma chamada de função anterior estiver ativa [SWS_Fee_00092].

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

função Fee_EraseImmediateBlock [SWS_Fee_00094] 📄 PDF

Std_ReturnType Fee_EraseImmediateBlock (uint16 BlockNumber);

Service to erase a logical block.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c9619585e034 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e parâmetros

A função Fee_EraseImmediateBlock disponibiliza um serviço assíncrono para apagar um bloco lógico e é declarada por meio do arquivo de cabeçalho Fee.h [SWS_Fee_00094]. A função possui o Service-ID hexadecimal 0x09 [SWS_Fee_00094]. Como único parâmetro de entrada serve Block Number do tipo uint16; este especifica o número do bloco lógico e identifica, ao mesmo tempo, seu endereço inicial na EEPROM [SWS_Fee_00094].

Valores de retorno e tratamento de erros

Como valor de retorno, a interface fornece o status Std_ReturnType [SWS_Fee_00094]. O valor E_OK confirma que o módulo recebeu com sucesso a solicitação de exclusão solicitada [SWS_Fee_00094]. Se a solicitação não foi aceita pelo módulo, a função fornece E_NOT_OK; de acordo com a especificação, este valor de retorno ocorre, contudo, apenas com o monitoramento de erros DET ativado [SWS_Fee_00094].

Simultaneidade e restrições

Em relação à concorrência e às condições de chamada, Fee_EraseImmediateBlock é classificada como não reentrante (Non Reentrant) e opera de forma assíncrona [SWS_Fee_00094]. Módulos chamadores devem, portanto, assegurar que nenhuma outra chamada da mesma interface ocorra enquanto o módulo ainda estiver ocupado com o processamento.

Explicação contextual baseada na especificação AUTOSAR.

função Fee_JobEndNotification [SWS_Fee_00095] 📄 PDF

void Fee_JobEndNotification (void);

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 527f9c248660 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Fee_JobEndNotification serve para comunicar ao módulo Fee a conclusão bem-sucedida de uma operação assíncrona ([SWS_Fee_00095]).

Em relação ao uso e à assinatura aplicam-se as seguintes definições:

  • Assinatura e parâmetros: A função possui a assinatura void Fee_JobEndNotification (void);. Ela não espera parâmetros de entrada, de entrada/saída nem de saída e não fornece valor de retorno ([SWS_Fee_00095]).
  • Cabeçalho: A declaração é disponibilizada através de Fee.h ([SWS_Fee_00095]).
  • Service-ID: A função é definida através do Service-ID 0x10 ([SWS_Fee_00095]).
  • Sincronismo: A própria chamada é especificada como síncrona ([SWS_Fee_00095]).
  • Concorrência: A rotina é classificada como não reentrante (Non Reentrant) ([SWS_Fee_00095]).

Interação e contexto de chamada: Tipicamente, este callback provavelmente é chamado por um módulo subjacente (como um driver flash) para sinalizar o fim de uma solicitação de escrita ou apagamento assíncrona. Pergunta Q-8a3ccdba2024001f (aberta) Devido à propriedade Non Reentrant, o chamador deve assegurar que não ocorram chamadas concorrentes ([SWS_Fee_00095]).

Este texto foi gerado por uma IA com base na especificação AUTOSAR para R20-11.

função Fee_JobErrorNotification [SWS_Fee_00096] 📄 PDF

void Fee_JobErrorNotification (void);

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a8e92b7001f6 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Fee_JobErrorNotification serve como serviço de notificação para informar ao módulo Fee a falha de uma operação assíncrona [SWS_Fee_00096]. A interface possui a assinatura void Fee_JobErrorNotification (void) e está disponível por meio do cabeçalho Fee.h [SWS_Fee_00096]. Nenhum parâmetro de entrada, entrada/saída ou saída é passado para o serviço com o identificador 0x11 [SWS_Fee_00096]. Da mesma forma, a chamada não retorna nenhum valor de retorno ao chamador [SWS_Fee_00096].

A semântica de execução da chamada é especificada como síncrona (Synchronous) [SWS_Fee_00096]. Para o comportamento em tempo de execução, aplica-se a restrição central de que a função não é reentrante (Non Reentrant) [SWS_Fee_00096]. Interpretação: O chamador – que provavelmente se trata de um componente de driver subjacente – deve garantir que a notificação nunca seja acionada de forma concorrente ou a partir de contextos interruptivos em paralelo. Pergunta Q-7d4c9618bf385721 (aberta)

Em relação ao tratamento de erros, nenhum código de erro específico é transmitido pela interface sem parâmetros e nenhuma mensagem DET ou DEM específica do módulo é documentada para esta chamada [SWS_Fee_00096]. O módulo Fee deve associar internamente a falha notificada à solicitação assíncrona ativa e ajustar seu status adequadamente. Pergunta Q-1fa43444195edb62 (aberta)

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

função Fee_MainFunction [SWS_Fee_00097] 📄 PDF

void Fee_MainFunction (void);

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 341cf633fe8b Procedência Perguntas em aberto (3)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Fee_MainFunction serve, de acordo com [SWS_Fee_00097], para o processamento central de solicitações de leitura, gravação e exclusão requisitadas, bem como para a execução de operações de gerenciamento interno do módulo. Ela é especificada com a assinatura void Fee_MainFunction (void); e o Service-ID 0x12 [SWS_Fee_00097].

Em relação à interface e ao uso, a função não processa parâmetros de passagem e não possui valor de retorno [SWS_Fee_00097]. A partir da disponibilidade por meio do cabeçalho SchM_Fee.h, pode-se presumir provavelmente que sua chamada ocorre ciclicamente pelo gerenciamento de escalonamento do software básico. Pergunta Q-5ef9bcc5f438cb89 (aberta) A descrição sugere que solicitações previamente transferidas de forma assíncrona devem ser processadas sucessivamente dentro desses ciclos periódicos.

A especificação não contém identificadores ou códigos de erro específicos para cenários de erro, reentrância e condições de chamada específicas [SWS_Fee_00097]. Interpretação: Como função central de controle cíclico para o estado do módulo, Fee_MainFunction provavelmente não é reentrante, razão pela qual uma chamada concorrente a partir de múltiplas tarefas deve ser evitada. Pergunta (aberta)

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

função NvM_JobEndNotification [SWS_Fee_00098] 📄 PDF

void NvM_JobEndNotification (void);

-

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 4ab59e2b5ce3 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Uso e assinatura

A função NvM_JobEndNotification é definida como serviço na especificação da Flash EEPROM Emulation (Fee) e está disponível por meio do arquivo de cabeçalho Nvm.h ([SWS_Fee_00098]). De acordo com sua sintaxe void NvM_JobEndNotification (void);, a função não exige parâmetros de entrada nem de saída e não fornece valor de retorno ([SWS_Fee_00098]). Para o comportamento de execução, está estabelecida uma semântica síncrona (Sync/Async: true) ([SWS_Fee_00098]).

Simultaneidade e restrições

Em relação à reentrância, a função é classificada com Don't care ([SWS_Fee_00098]). Restrições específicas relativas ao contexto de chamada não são predefinidas na especificação. Um tratamento de erros em separado por meio de mensagens DET ou DEM não está especificado para este elemento ([SWS_Fee_00098]).

Interação e enquadramento funcional

Embora a função seja parte integrante da especificação da Flash EEPROM Emulation, o campo de descrição não contém mais detalhes ([SWS_Fee_00098]). Interpretação: Devido ao nome e à declaração em Nvm.h, a função deve provavelmente servir como interface de callback pela qual o módulo Fee sinaliza a conclusão regular de uma solicitação processada assincronamente para o módulo NvM. Pergunta Q-ee00bece2e28a0e4 (aberta)

Esta nota de uso foi gerada automaticamente com base na especificação do AUTOSAR Release R20-11.

função NvM_JobErrorNotification [SWS_Fee_00099] 📄 PDF

void NvM_JobErrorNotification (void);

-

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 8c7c531abb5f Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

A função NvM_JobErrorNotification é definida de acordo com [SWS_Fee_00099] como uma interface síncrona (Sync/ Async true). Sua declaração é disponibilizada por meio do arquivo de cabeçalho Nvm.h ([SWS_Fee_00099]). A assinatura é void NvM_JobErrorNotification (void), não aceitando assim parâmetros de entrada, passagem ou saída e não fornecendo valor de retorno ([SWS_Fee_00099]). De acordo com o identificador e a atribuição ao módulo Fee, esta função de callback deve servir para notificar o gerenciamento de NVRAM em caso de erro ocorrido durante o processamento assíncrono de solicitações no driver de emulação de EEPROM em flash. Pergunta Q-4d70f8d384e04832 (aberta)

Tratamento de erros e simultaneidade

Em [SWS_Fee_00099] não estão listados códigos de erro específicos, mensagens DET ou eventos DEM. Como não são passados parâmetros de status ou de erro, uma análise detalhada de erros deve basear-se provavelmente em estados internos do módulo ou em consultas posteriores do driver. Pergunta Q-c45e72b67236c432 (aberta) Em relação à concorrência, [SWS_Fee_00099] especifica o critério Don't care para a reentrância, não sendo formuladas restrições à reentrância por parte do requisito.

Este texto foi gerado por uma IA com base na especificação.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Fee
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Fee@rel:R20-11#e407fe43
Content hash
e407fe43
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlashEEPROMEmulation.pdf#nameddest=SWS_Fee_00085

Inicialização e estado

Fee_GetStatus função

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

MemIf_StatusType Fee_GetStatus (void);

Service to return the version information of the FEE module.

void Fee_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Fee_Init função

Service to initialize the FEE module.

void Fee_Init (const Fee_ConfigType* ConfigPtr);

Serviços

Fee_Cancel função

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

void Fee_Cancel (void);

Service to erase a logical block.

Std_ReturnType Fee_EraseImmediateBlock (uint16 BlockNumber);

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

MemIf_JobResultType Fee_GetJobResult (void);

Service to invalidate a logical block.

Std_ReturnType Fee_InvalidateBlock (uint16 BlockNumber);

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

void Fee_JobEndNotification (void);

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

void Fee_JobErrorNotification (void);
Fee_Read função

Service to initiate a read job.

Std_ReturnType Fee_Read (uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);
Fee_SetMode função

Function to switch the mode of the underlying Flash Driver

void Fee_SetMode (MemIf_ModeType Mode);
Fee_Write função

Service to initiate a write job.

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

-

void NvM_JobEndNotification (void);

-

void NvM_JobErrorNotification (void);

Cíclico

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

void Fee_MainFunction (void);

Tipos

Configuration data structure of the Fee module.