DEENESPTFRRUARHIKOZHNL

Flash EEPROM Emulation (Fee)

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

Guide du moduleGÉNÉRÉ PAR IA

Émule une EEPROM avec des blocs logiques sur de la mémoire flash et traite les requêtes asynchrones de lecture et d'écriture.
GÉNÉRÉ PAR IA non vérifié Modèle : claude-opus-5-5 · Effort : high · Température : non réglable · Prompt : 82b558e5a038 Provenance Questions ouvertes (6)
Ancre causale : R20-11 Valable à partir de R20-11 Synthétisé pour cette version de spécification.
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Émule une EEPROM avec des blocs logiques sur de la mémoire flash et traite les requêtes asynchrones de lecture et d'écriture.

Fee mappe les blocs logiques d'une EEPROM émulée sur la mémoire flash et dessert les requêtes émises par le NVRAM Manager via MemIf. Les requêtes de lecture, d'écriture et d'effacement ne sont qu'acceptées, puis traitées de manière asynchrone dans Fee_MainFunction [SWS_Fee_00097]. La progression et le résultat sont indiqués par Fee_GetStatus et Fee_GetJobResult. Après Fee_Init, le module peut d'abord être occupé par une gestion interne (MEMIF_BUSY_INTERNAL), mais accepte déjà des requêtes SWS Fee p. 42. Les requêtes d'écriture concernent toujours le bloc entier.

Fee mappe les blocs logiques d'une EEPROM émulée sur la mémoire flash. Le BlockNumber désigne également l'adresse de début du bloc [SWS_Fee_00087]. Les appels proviennent du NVRAM Manager via la Memory Abstraction Interface, qui sélectionne le service approprié au moyen de DeviceIndex SWS MemIf p. 18. Le pilote flash Fls fonctionne sous-jacent. Fee transmet des retours directement au NVRAM Manager via NvM_JobEndNotification et 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)

Diagramme de contexte : Fee entre MemIf et Fls, initialisé par l'EcuM, déclenché cycliquement par le SchM, avec des retours directs au NvM. Sources : [SWS_Fee_00085], [SWS_Fee_00097], [SWS_Fee_00105].

L'EcuM appelle Fee_Init avec le jeu de configuration sélectionné ; R20-11 répertorie ce service comme asynchrone [SWS_Fee_00085]. Ensuite, le statut est défini sur MEMIF_BUSY_INTERNAL, mais les requêtes sont déjà acceptées. Seuls des appels répétés de Fee_MainFunction terminent la gestion interne et mènent à MEMIF_IDLE SWS Fee p. 42. Fee_GetStatus indique l'état du module, Fee_GetJobResult le résultat de la dernière requête acceptée [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 (gestion en cours) 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)

Diagramme d'états : statut du module de MEMIF_UNINIT à MEMIF_IDLE et MEMIF_BUSY en passant par MEMIF_BUSY_INTERNAL ; le retour après la fin normale d'une requête est une hypothèse. Sources : [SWS_Fee_00090], SWS Fee p. 28.

Les requêtes de lecture, d'écriture, d'invalidation et d'effacement ne signalent avec E_OK que leur acceptation ; elles sont traitées de manière asynchrone dans Fee_MainFunction [SWS_Fee_00097]. Fee_Read lit des portions arbitraires d'un bloc, Fee_Write lit toujours l'ensemble du bloc avec un décalage de zéro SWS Fee p. 28. Pendant l'écriture, le bloc est considéré en interne comme « corrupted ». Ce marquage doit être distingué d'une invalidation par Fee_InvalidateBlock SWS Fee p. 21.

Fee_Cancel est synchrone dans R20-11 et annule une requête en attente par l'intermédiaire du pilote flash [SWS_Fee_00089]. Sans requête en attente, il signale FEE_E_INVALID_CANCEL [SWS_Fee_91002]. Le pilote détecte les erreurs flash. Selon la configuration, Fee les signale de deux manières : sous forme de MEMIF_JOB_FAILED à interroger ou via NvM_JobErrorNotification. La récupération est prise en charge par le NVRAM Manager ErrorDescription p. 40. Fee signale les mauvaises manipulations, telles qu'une initialisation manquante ou des numéros de bloc non valides, comme des erreurs de développement [SWS_Fee_00010].

Rôle dans la pile de mémoire NV : mémoire flash comme EEPROM émulée

La Flash EEPROM Emulation (Fee) fournit des blocs logiques à la couche supérieure et les mappe sur la mémoire flash. Le BlockNumber désigne ainsi également l'adresse de début du bloc dans la mémoire [SWS_Fee_00087], [SWS_Fee_00088]. Le NVRAM Manager n'appelle pas Fee directement, mais via la Memory Abstraction Interface. MemIf_Read et MemIf_Write appellent la fonction du module d'abstraction sélectionné via DeviceIndex et transmettent sa valeur de retour SWS MemIf p. 18, SWS MemIf p. 19. Vers le bas, Fee s'appuie sur le pilote flash Fls. De là, il importe Fls_AddressType et Fls_LengthType, et de MemIf les types d'état, de résultat et de mode [SWS_Fee_00084].

Les retours contournent MemIf. MemIf lui-même ne fournit pas de callbacks ; les routines de rappel pour les modules d'abstraction sous-jacents sont fournies par le NVRAM Manager SWS MemIf p. 24. Fee appelle à cet effet NvM_JobEndNotification et NvM_JobErrorNotification [SWS_Fee_00098], [SWS_Fee_00099]. Inversement, le pilote signale la fin de ses requêtes à Fee via Fee_JobEndNotification et Fee_JobErrorNotification [SWS_Fee_00095], [SWS_Fee_00096]. Fee est initialisé par l'EcuM et déclenché cycliquement par le 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)

Diagramme de contexte : Fee se situe entre MemIf et Fls. Il est initialisé par l'EcuM, déclenché cycliquement par le SchM et signale les fins de requête directement au NvM. Sources : [SWS_Fee_00085], [SWS_Fee_00097], [SWS_Fee_00098], [SWS_Fee_00104], [SWS_Fee_00105], SWS MemIf p. 18.

R20-11 mentionne notamment les fonctions suivantes parmi les services de pilote requis [SWS_Fee_00105] :

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

De manière optionnelle s'ajoutent Det_ReportError et Fls_BlankCheck [SWS_Fee_00104]. Une version ultérieure de la même exigence mentionne à la place MemAcc_BlankCheck SWS Fee p. 40. La variante Fls reste normative pour R20-11.

Démarrage : de Fee_Init à la disponibilité d'acceptation

L'EcuM appelle Fee_Init avec un pointeur vers le jeu de configuration sélectionné [SWS_Fee_00085]. Le type Fee_ConfigType est une structure comportant des éléments spécifiques à l'implémentation [SWS_Fee_00188]. Il est remarquable que R20-11 répertorie Fee_Init comme asynchrone [SWS_Fee_00085]. Selon l'historique des modifications, l'initialisation ne doit pas nécessairement être achevée au sein de Fee_Init, et la machine à états a été adaptée en conséquence SWS Fee p. 4.

Le diagramme de séquence de la spécification montre le déroulement SWS Fee p. 42 :

  1. Après Fee_Init, l'état du module est MEMIF_BUSY_INTERNAL.
  2. Les requêtes peuvent déjà être acceptées dans cet état.
  3. Le planificateur appelle Fee_MainFunction jusqu'à ce que la gestion interne soit terminée.

Une version ultérieure stipule que Fee_MainFunction fait ensuite passer le statut de MEMIF_BUSY_INTERNAL à MEMIF_IDLE. La gestion peut alors durer plus d'un appel SWS Fee p. 38. La version plus ancienne du schéma ne montre que l'appel synchrone par l'EcuM SWS Fee p. 38.

Hochlauf von FeeEcuMFeeSchMFee_Init(ConfigPtr)Modulstatus := MEMIF_BUSY_INTERNALFee_Init()Les requêtes sont déjà acceptées à partir d’iciloopgestion interne encore requiseFee_MainFunction()interne VerwaltungsoperationStatus bleibt MEMIF_BUSY_INTERNALFee_MainFunction()Fee_MainFunction()Verwaltung beendetModulstatus := MEMIF_IDLEFee_MainFunction()

Diagramme de séquence : Fee_Init fait passer le module à l'état MEMIF_BUSY_INTERNAL. Seuls des appels répétés de Fee_MainFunction terminent la gestion interne et mènent à MEMIF_IDLE. Sources : [SWS_Fee_00085], [SWS_Fee_00097], SWS Fee p. 42.

Fee_MainFunction traite les requêtes de lecture, d'écriture et d'effacement demandées ainsi que les opérations de gestion internes [SWS_Fee_00097]. En tant que fonction planifiée, elle est appelée directement par le Basic Software Scheduler. Elle n'a ni paramètres ni valeur de retour et n'est pas réentrante SWS Fee p. 40.

Statut du module et résultat de requête comme grandeurs de commande

La couche supérieure pilote ses appels via deux interrogations synchrones. Fee_GetStatus renvoie l'une des quatre valeurs [SWS_Fee_00090] :

  • MEMIF_UNINIT : le module n'est pas initialisé.
  • MEMIF_IDLE : le module est inactif.
  • MEMIF_BUSY : une requête de la couche supérieure est en cours de traitement.
  • MEMIF_BUSY_INTERNAL : une opération de gestion interne est en cours.

Comme exemple d'opération de gestion interne, la spécification cite la réorganisation de la mémoire flash utilisée (Garbage Collection) SWS Fee p. 30. Les nouvelles requêtes sont acceptées aussi bien dans MEMIF_IDLE que dans MEMIF_BUSY_INTERNAL et mènent à MEMIF_BUSY SWS Fee p. 28. Après la fin normale d'une requête, le statut devrait revenir à MEMIF_IDLE. Question Q-beae785a1ba1cbec (ouverte) Le retour à MEMIF_IDLE n'est ici explicitement documenté que pour l'annulation 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 (gestion en cours) 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)

Diagramme d'états : cycle de vie du statut du module de MEMIF_UNINIT à MEMIF_IDLE et MEMIF_BUSY en passant par MEMIF_BUSY_INTERNAL. La transition lors de la fin normale d'une requête est indiquée comme une hypothèse. Sources : [SWS_Fee_00090], SWS Fee p. 42, SWS Fee p. 28, SWS Fee p. 29.

Fee_GetJobResult se rapporte à la dernière requête acceptée [SWS_Fee_00091], SWS Fee p. 31. Il distingue six résultats :

  • MEMIF_JOB_OK : la requête s'est terminée avec succès.
  • MEMIF_JOB_PENDING : la requête est en attente ou toujours en cours.
  • MEMIF_JOB_CANCELED : la tâche a été annulée.
  • MEMIF_JOB_FAILED : la requête a échoué.
  • MEMIF_BLOCK_INCONSISTENT : le bloc contient éventuellement des données endommagées.
  • MEMIF_BLOCK_INVALID : le bloc a été invalidé ; la lecture est impossible.

Le statut décrit donc le module, le résultat la requête individuelle ; tous deux doivent être interrogés séparément [SWS_Fee_00090].

Requêtes de lecture, d'écriture et de gestion de bloc

Les services de requête fonctionnent de manière asynchrone : E_OK signifie seulement que la requête a été acceptée [SWS_Fee_00087], [SWS_Fee_00088]. Fee_Read calcule l'adresse de lecture à partir de l'adresse de début du bloc et de BlockOffset. Le décalage et la longueur peuvent prendre n'importe quelle valeur de leur plage de types. Il est ainsi possible de lire un nombre quelconque d'octets à partir d'un emplacement quelconque d'un bloc SWS Fee p. 26. Si Fls_BlankCheck est configuré dans le pilote flash, Fee_Read l'utilise pour vérifier au préalable si la zone est lisible. Cela permet par exemple d'éviter que des cellules effacées mais non programmées ne déclenchent des erreurs ECC [SWS_Fee_00187].

En revanche, Fee_Write écrit toujours l'ensemble du bloc ; le décalage est fixé à zéro SWS Fee p. 28. Cela découle de l'exigence de niveau supérieur stipulant que les requêtes d'effacement et d'écriture commencent toujours à la limite virtuelle de 64K : un bloc est écrit en entier ou pas du tout RS MemHwAb p. 24. Lors de l'acceptation, Fee définit le statut sur MEMIF_BUSY, le résultat sur MEMIF_JOB_PENDING et renvoie E_OK. La même condition d'acceptation s'applique à Fee_Read SWS Fee p. 26.

Afin que les opérations d'écriture interrompues restent détectables, Fee maintient pour chaque bloc une information interne d'exactitude SWS Fee p. 21. Au début d'une opération d'écriture, le bloc est marqué comme « corrupted », puis à nouveau comme « not corrupted » après une fin réussie. Cette information doit être strictement séparée de la validité que la couche supérieure définit avec Fee_InvalidateBlock.

Requête d’écriture via la pile de mémoire 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()

Diagramme de séquence : une requête d'écriture est acceptée de manière synchrone, mais achevée de manière asynchrone via Fee_MainFunction et la notification de retour du pilote. À cette occasion, le bloc est d'abord marqué comme « corrupted », puis à la fin de nouveau comme « not corrupted ». Sources : [SWS_Fee_00088], [SWS_Fee_00095], [SWS_Fee_00098], SWS Fee p. 28, SWS Fee p. 21, SWS Fee p. 37.

Fee_InvalidateBlock invalide un bloc logique [SWS_Fee_00092]. Pour cela, il appelle la fonction d'effacement du pilote et/ou modifie des informations de gestion internes qui doivent elles-mêmes être stockées de manière non volatile SWS Fee p. 32. Si la couche supérieure lit ultérieurement un tel bloc, Fee_MainFunction définit le résultat sur MEMIF_BLOCK_INVALID. Si cela est configuré, il appelle en outre la notification d'erreur de la couche supérieure SWS Fee p. 38.

Fee_EraseImmediateBlock [SWS_Fee_00094] est destiné aux services de diagnostic ou aux services système similaires. Ils effacent ainsi préalablement, en cas de besoin, la zone dédiée aux données immédiates. L'implémentation détermine si un effacement physique est effectué à cette occasion SWS Fee p. 35. Pour Fee_InvalidateBlock et Fee_EraseImmediateBlock, R20-11 ne prévoit expressément le retour E_NOT_OK que lorsque la DET est activée [SWS_Fee_00092], [SWS_Fee_00094].

Notifications, annulation et changement de mode

Le pilote flash signale la fin réussie d'une tâche de pilote via Fee_JobEndNotification [SWS_Fee_00095]. Fee effectue ensuite la gestion des blocs nécessaire puis appelle, si configuré, la notification de fin de tâche de la couche supérieure. Il définit un résultat valant encore MEMIF_JOB_PENDING sur MEMIF_JOB_OK SWS Fee p. 37. Selon la structure de la pile mémoire, les callbacks peuvent s'exécuter au niveau interruption et se propager vers le haut à travers plusieurs couches. Leur temps d'exécution doit donc rester court ; la conception du système décide si les appels au niveau interruption sont autorisés SWS Fee p. 36.

Fee_Cancel appelle la fonction d'annulation du pilote flash [SWS_Fee_00089]. La couche supérieure accède au service via MemIf_Cancel SWS MemIf p. 20. L'annulation n'est effective que dans l'état MEMIF_BUSY : Fee appelle l'annulation du pilote, réinitialise ses variables internes et retourne à MEMIF_IDLE. Si la DET est activée, Fee vérifie préalablement si le module est initialisé SWS Fee p. 29.

Pour Fee_Cancel, les versions divergent. La version ultérieure mentionnée présente le service comme asynchrone, tandis que R20-11 le présente comme synchrone [SWS_Fee_00089]. Pour R20-11, la classification synchrone fait foi.

fee_cancel start aufruf Fee_Cancel() aufgerufen start->aufruf d_det DET actif et état MEMIF_UNINIT ? aufruf->d_det e_uninit FEE_E_UNINIT melden d_det->e_uninit Oui d_busy Requête en attente (état MEMIF_BUSY) ? d_det->d_busy Non ende e_uninit->ende Abbruch (Annahme) fls Appeler la fonction d’annulation du pilote Flash d_busy->fls Oui e_cancel FEE_E_INVALID_CANCEL melden d_busy->e_cancel Non reset réinitialiser les variables internes, état := MEMIF_IDLE fls->reset reset->ende e_cancel->ende

Diagramme d'activité : Fee_Cancel bifurque après la vérification de la DET et de l'état du module. Seule une tâche en attente est annulée ; dans le cas contraire, FEE_E_INVALID_CANCEL est signalé. Sources : [SWS_Fee_00089], [SWS_Fee_91002], [SWS_Fee_00010], SWS Fee p. 29.

Fee_SetMode commute le mode de fonctionnement du pilote flash sous-jacent [SWS_Fee_00086]. Le schéma correspondant illustre la chaîne d'appels NvM → MemIf_SetMode → Fee_SetMode → Fls_SetMode SWS Fee p. 39. Fee_GetVersionInfo est le seul service Fee réentrant [SWS_Fee_00093]. Lorsque la DET est activée, il vérifie le pointeur transmis quant à NULL SWS Fee p. 34.

Configuration et intégration

Fee reçoit la configuration via Fee_ConfigType, qui est transmis à Fee_Init [SWS_Fee_00085], [SWS_Fee_00188]. La structure d'inclusion d'une version antérieure de la spécification présente la répartition suivante SWS Fee p. 11 :

  • Fee_Cfg.h inclut MemIf_Types.h et Fls.h, et de manière optionnelle NvM_Cbk.h.
  • Fee_Lcfg.c et Fee_PBcfg.c contiennent les données de configuration.
  • Le planificateur est rattaché via SchM_Fee.h, la DET optionnellement via Det.h.

Pour R20-11, cette illustration ne sert qu'à titre d'orientation. Si Fee est réalisé sous forme de bibliothèque spécifique au fournisseur, les diagrammes de séquence ne sont contraignants que pour les relations avec EcuM et MemIf, et non pour les appels adressés au pilote SWS Fee p. 42.

Comportement en cas d'erreur

Fee définit cinq codes comme erreurs de développement [SWS_Fee_00010] :

  • FEE_E_UNINIT (0x01) : service appelé avant l'initialisation.
  • FEE_E_INVALID_BLOCK_NO (0x02) : numéro de bloc invalide.
  • FEE_E_INVALID_BLOCK_OFS (0x03) : décalage de bloc invalide.
  • FEE_E_PARAM_POINTER (0x04) : pointeur de données invalide.
  • FEE_E_INVALID_BLOCK_LEN (0x05) : indication de longueur invalide.

R20-11 ajoute deux autres codes [SWS_Fee_91002]. FEE_E_BUSY (0x06) s'applique aux appels effectués pendant le traitement d'une tâche utilisateur. FEE_E_INVALID_CANCEL (0x08) s'applique à Fee_Cancel sans tâche en attente. Une nouvelle tâche soumise dans l'état MEMIF_BUSY devrait donc être rejetée et faire l'objet d'une réponse avec E_NOT_OK. Question Q-92062834653929da (ouverte) La règle correspondante n'est ici que partiellement disponible SWS Fee p. 28.

Le pilote flash détecte les erreurs de la mémoire flash ; la manière dont Fee y réagit est spécifique à l'implémentation ErrorDescription p. 40. Selon la configuration, la notification s'effectue par l'une des deux voies. Soit MemIf interroge Fee_GetJobResult et reçoit MEMIF_JOB_FAILED, soit Fee appelle activement NvM_JobErrorNotification. La restauration est prise en charge par le NVRAM Manager. La couche supérieure reconnaît un module non initialisé grâce à MEMIF_UNINIT dans Fee_GetStatus ErrorDescription p. 53, [SWS_Fee_00090].

Signalement d’une erreur FlashFlsFeeMemIfNvMFee_JobErrorNotification() (Annahme)implementierungsspezifische FehlerbehandlungErgebnis := MEMIF_JOB_FAILEDaltCallback konfiguriertNvM_JobErrorNotification()Abfrage per PollingFee_GetJobResult()MEMIF_JOB_FAILEDRestauration par le NVRAM Manager

Diagramme de séquence : une erreur de pilote parvient à la couche supérieure soit par un callback vers le NvM, soit par scrutation de Fee_GetJobResult. Sources : [SWS_Fee_00096], [SWS_Fee_00099], [SWS_Fee_00091], ErrorDescription p. 40.

Pour la cohérence des données, un schéma issu de R22-11 décrit la chaîne d'information ErrorDescription p. 64 :

  1. Fee vérifie la cohérence des données lues et transmet une erreur au NVRAM Manager.
  2. Le NVRAM Manager signale NVM_E_INTEGRITY_FAILED au DEM.
  3. Il engage les restaurations configurées : nouvelle lecture, bloc redondant ou bloc ROM.
  4. En cas d'échec de celles-ci, il positionne le résultat NVM_REQ_INTEGRITY_FAILED.

Côté Fee, cela correspond probablement au résultat MEMIF_BLOCK_INCONSISTENT [SWS_Fee_00091]. Question Q-a1846c349d831e17 (ouverte)

fee_konsistenz Fee Fee Fee->Fee (1) Vérifier la cohérence des données lues 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 Résultat de travail du NvM NvM->Ergebnis (5)/(6) Wiederherstellung gescheitert: NVM_REQ_INTEGRITY_FAILED

Diagramme de collaboration : une erreur de cohérence est transmise par Fee au NvM. Le NvM la signale au DEM, tente la restauration et, en cas d'échec, définit le résultat NvM (état R22-11). Sources : ErrorDescription p. 64.

Preuves détaillées supplémentaires

Les règles détaillées relatives aux conditions préalables, au comportement des callbacks et à la fonction principale proviennent en partie de versions ultérieures de la spécification, par exemple SWS Fee p. 38. Les divergences par rapport à R20-11 sont mentionnées ci-dessus. Les références principales :

Guide généré par IA sur la base d'extraits de spécification relatifs à Fee (Classic, R20-11). Les exigences liées font foi. Les passages de documents issus d'autres versions sont signalés comme tels ; les suppositions sont indiquées comme interprétation.

Flash EEPROM Emulation (Fee)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

fonction Fee_Init [SWS_Fee_00085] 📄 PDF

void Fee_Init (const Fee_ConfigType* ConfigPtr);

Service to initialize the FEE module.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : bf4a0ee4e182 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction Fee_Init sert de service central pour l'initialisation du module d'émulation EEPROM Flash (FEE) [SWS_Fee_00085]. L'appel s'effectue via l'interface déclarée dans Fee.h avec l'identifiant de service 0x00 [SWS_Fee_00085]. Le seul paramètre d'entrée transmis est ConfigPtr, qui sert de pointeur vers l'ensemble de données de configuration sélectionné de type const Fee_ConfigType* [SWS_Fee_00085]. Aucun paramètre d'entrée/sortie supplémentaire ni aucun paramètre de sortie pur n'est défini, et la fonction ne renvoie aucune valeur de retour (void) [SWS_Fee_00085].

Bien qu'il s'agisse d'une fonction d'initialisation fondamentale, la sémantique d'exécution est expressément classée comme asynchrone (Asynchronous) dans la spécification [SWS_Fee_00085]. Interprétation : la fonction agissant de manière asynchrone, l'appel de Fee_Init ne devrait vraisemblablement faire que déclencher l'initialisation du module, tandis que les étapes d'initialisation coûteuses en temps sont achevées en arrière-plan sans blocage [SWS_Fee_00085]. Question Q-7d91ac2e51869606 (ouverte)

Pour la concurrence et le contexte d'appel, la spécification stipule que Fee_Init n'est pas réentrante (Non Reentrant) [SWS_Fee_00085]. Par conséquent, la fonction ne doit à aucun moment être appelée en parallèle ou de manière imbriquée depuis différents contextes [SWS_Fee_00085].

Cette note d'utilisation a été créée par une IA et s'appuie exclusivement sur la spécification AUTOSAR Classic Release R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction Fee_SetMode [SWS_Fee_00086] 📄 PDF

void Fee_SetMode (MemIf_ModeType Mode);

Function to switch the mode of the underlying Flash Driver

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 840a1fe0d62e Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et contexte d'appel

La fonction Fee_SetMode sert à commuter le mode de fonctionnement du pilote Flash sous-jacent ([SWS_Fee_00086]). Elle est mise à disposition via le fichier d'en-tête Fee.h avec la Service-ID 0x01 ([SWS_Fee_00086]). Le service attend comme unique paramètre d'entrée Mode (de type MemIf_ModeType), qui définit le mode de fonctionnement souhaité du pilote Flash ([SWS_Fee_00086]). Aucun paramètre de sortie ni aucune valeur de retour (void) ne sont transmis ([SWS_Fee_00086]).

Sémantique asynchrone et concurrence

L'interface est spécifiée comme asynchrone ([SWS_Fee_00086]). Aucune valeur de fonction n'étant renvoyée après l'appel, le processus de commutation proprement dit du matériel Flash devrait se dérouler de manière différée en arrière-plan. Question Q-9dbc267f51e150af (ouverte) Concernant le contexte d'appel, Fee_SetMode est classée comme non réentrante (Non Reentrant) ([SWS_Fee_00086]). Les appelants doivent donc s'assurer que la fonction n'est pas appelée simultanément ou de manière interruptive depuis différents threads ou tâches.

Traitement des erreurs et interaction

Dans le présent extrait de spécification, aucun code d'erreur spécifique, message d'erreur DET ou événement DEM n'est défini pour Fee_SetMode ([SWS_Fee_00086]). De même, aucune relation directe avec d'autres exigences n'est indiquée. Interprétation : une éventuelle vérification de valeurs de mode non valides devrait être gérée en interne dans le pilote ou dans le module Fee, sans retour d'erreur explicite à l'appelant. Question (ouverte)

Ce texte a été généré par une IA et se base exclusivement sur les spécifications de la version AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction Fee_Read [SWS_Fee_00087] 📄 PDF

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

Service to initiate a read job.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 51320bacc37c Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation

La fonction Fee_Read sert à initier une tâche de lecture asynchrone dans le module Flash EEPROM Emulation et est déclarée via le fichier d'en-tête Fee.h [SWS_Fee_00087]. Elle possède l'identifiant de service 0x02 et accepte les paramètres de transmission suivants [SWS_Fee_00087] :

  • Block Number : numéro du bloc logique, qui indique également son adresse de départ dans la mémoire Flash.
  • Block Offset : décalage de lecture au sein du bloc concerné.
  • Length : nombre d'octets à lire à partir du bloc.
  • Data Buffer Ptr : pointeur vers le tampon de destination destiné au stockage des données lues.

Comme valeur de retour, la fonction fournit Std_ReturnType : E_OK signale que la tâche de lecture demandée a été acceptée par le module ; E_NOT_OK indique que la tâche a été rejetée [SWS_Fee_00087].

Concurrence et restrictions

L'appel de Fee_Read est spécifié comme non réentrant (Non Reentrant) et asynchrone (Asynchronous) [SWS_Fee_00087].

Interaction avec le pilote Flash

Si la fonction Fls_BlankCheck est configurée dans le pilote Flash, Fee_Read doit appeler cette fonction [SWS_Fee_00187]. Cela sert à vérifier au préalable si la zone de mémoire peut être lue sans déclencher par exemple des erreurs ECC dues à des cellules Flash effacées mais pas encore programmées [SWS_Fee_00187].

Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification AUTOSAR CP R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction Fee_Write [SWS_Fee_00088] 📄 PDF

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

Service to initiate a write job.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 46c33a39dfc2 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et sémantique

La fonction Fee_Write sert de service pour initier une tâche d'écriture dans le module d'émulation EEPROM Flash conformément à [SWS_Fee_00088]. La déclaration est disponible via l'en-tête Fee.h. L'appel s'effectue de manière asynchrone : la fonction ne fait qu'amorcer l'opération d'écriture et ne bloque pas jusqu'à l'achèvement physique de l'opération d'écriture.

Deux paramètres sont définis pour la transmission des données d'écriture [SWS_Fee_00088] :

  • BlockNumber (uint16) : désigne le numéro de bloc logique et définit également l'adresse de départ de ce bloc dans l'EEPROM.
  • DataBufferPtr (const uint8*) : pointeur vers le tampon de données contenant les données utiles à écrire.

Valeurs de retour et concurrence

La valeur de retour de type Std_ReturnType signale immédiatement si la tâche d'écriture a pu être acceptée par le module [SWS_Fee_00088] :

  • E_OK : la tâche demandée a été acceptée par le module.
  • E_NOT_OK : la tâche n'a pas été acceptée par le module.

Concernant la concurrence, Fee_Write est spécifiée comme non réentrante (Non Reentrant) [SWS_Fee_00088]. Les appelants doivent donc s'assurer que la fonction n'est pas appelée de manière concurrente depuis différents contextes. L'identifiant de service de la fonction est 0x03 [SWS_Fee_00088]. Interprétation : le transfert physique des données devrait vraisemblablement être traité en arrière-plan de manière asynchrone par des cycles de module ultérieurs après le retour de E_OK. Question Q-8bedddcf2371f6bf (ouverte)

Ce texte a été généré par une IA et sert de guide d'orientation. Seules les spécifications AUTOSAR référencées font foi.

fonction Fee_Cancel [SWS_Fee_00089] 📄 PDF

void Fee_Cancel (void);

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : e038d068e179 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction Fee_Cancel est un service synchrone du module Fee servant à transmettre une requête d'annulation au pilote Flash sous-jacent [SWS_Fee_00089]. Ce service est déclaré via l'en-tête Fee.h et possède l'identifiant de service numérique 0x04 [SWS_Fee_00089].

Utilisation et contexte d'appel

L'interface possède la signature void Fee_Cancel (void) [SWS_Fee_00089]. Conformément à la spécification, les caractéristiques de paramètres et d'exécution suivantes s'appliquent à l'appel :

  • Paramètres : la fonction n'attend aucun paramètre de transmission ; il n'y a ni paramètre d'entrée, ni d'entrée/sortie, ni de sortie [SWS_Fee_00089].
  • Valeur de retour : aucune valeur de retour n'est renvoyée à l'appelant [SWS_Fee_00089].
  • Synchronicité : le traitement de l'appel de fonction est défini comme synchrone (Synchronous) [SWS_Fee_00089].

Concurrence et restrictions

En ce qui concerne le comportement de concurrence, Fee_Cancel est spécifiée comme non réentrante (Non Reentrant) [SWS_Fee_00089]. Les instances appelantes doivent donc s'assurer que la fonction n'est pas appelée en parallèle ou de manière imbriquée depuis différents contextes de tâche ou d'interruption.

Interaction et gestion des erreurs

La tâche centrale de Fee_Cancel consiste à appeler la fonction d'annulation du pilote Flash sous-jacent [SWS_Fee_00089]. Aucun code d'erreur spécifique, valeur de retour ou message d'erreur n'est défini pour cette fonction dans la charge utile. Comme aucun traitement d'erreur n'est décrit, le comportement en cas d'erreur devrait vraisemblablement dépendre de l'implémentation du pilote Flash appelé. Question Q-bb066b6c05a2eb12 (ouverte)

Cette note d'utilisation a été générée de manière automatisée et repose exclusivement sur les contenus de la spécification de la version AUTOSAR R20-11.

fonction 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

fonction 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.

fonction Fee_InvalidateBlock [SWS_Fee_00092] 📄 PDF

Std_ReturnType Fee_InvalidateBlock (uint16 BlockNumber);

Service to invalidate a logical block.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 93ce420cf23c Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction Fee_InvalidateBlock sert de service pour invalider un bloc logique dans la mémoire flash [SWS_Fee_00092]. Elle est disponible via le fichier d'en-tête Fee.h et possède l'identifiant de service 0x07 [SWS_Fee_00092].

Utilisation et paramètres

L'appel s'effectue de manière asynchrone ; l'invalidation proprement dite est ainsi déclenchée en tant que tâche de fond [SWS_Fee_00092] :

  • Block Number (uint16, in) : désigne le numéro de bloc logique, qui détermine également l'adresse de départ du bloc dans la mémoire flash [SWS_Fee_00092].
  • Rückgabewert (Std_ReturnType) : renvoie E_OK si la demande d'invalidation a été acceptée avec succès par le module [SWS_Fee_00092].

Gestion des erreurs

Si le module n'a pas pu accepter la requête, E_NOT_OK est renvoyé – selon la spécification, ce retour d'erreur est toutefois expressément limité aux configurations avec DET activé (only if DET is enabled) [SWS_Fee_00092]. Interprétation : si le DET est désactivé, un rejet de commande ne devrait pas être signalé à l'appelant via E_NOT_OK, étant donné que la spécification lie le renvoi de cette valeur d'erreur à l'activation du DET. Question Q-2e54187ddb69e481 (ouverte)

Concurrence et contraintes

L'interface est déclarée non réentrante (Non Reentrant) [SWS_Fee_00092]. Les appelants doivent donc s'assurer qu'aucun appel parallèle ou interruptif de Fee_InvalidateBlock n'a lieu tant qu'un appel de fonction précédent est actif [SWS_Fee_00092].

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R20-11.

fonction Fee_EraseImmediateBlock [SWS_Fee_00094] 📄 PDF

Std_ReturnType Fee_EraseImmediateBlock (uint16 BlockNumber);

Service to erase a logical block.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : c9619585e034 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et paramètres

La fonction Fee_EraseImmediateBlock fournit un service asynchrone pour effacer un bloc logique et est déclarée via le fichier d'en-tête Fee.h [SWS_Fee_00094]. La fonction possède l'identifiant de service hexadécimal 0x09 [SWS_Fee_00094]. Le paramètre Block Number de type uint16 constitue le seul paramètre d'entrée ; celui-ci spécifie le numéro du bloc logique et indique en même temps son adresse de départ dans l'EEPROM [SWS_Fee_00094].

Valeurs de retour et gestion des erreurs

Comme valeur de retour, l'interface fournit le statut Std_ReturnType [SWS_Fee_00094]. La valeur E_OK confirme que le module a accepté avec succès la commande d'effacement demandée [SWS_Fee_00094]. Si la commande n'a pas été acceptée par le module, la fonction renvoie E_NOT_OK ; d'après la spécification, cette valeur de retour ne se produit toutefois que lorsque la surveillance des erreurs DET est activée [SWS_Fee_00094].

Concurrence et restrictions

Concernant la concurrence et les conditions d'appel, Fee_EraseImmediateBlock est classée comme non réentrante (Non Reentrant) et fonctionne de manière asynchrone [SWS_Fee_00094]. Les modules appelants doivent donc garantir qu'aucun autre appel à la même interface n'est effectué tant que le module est encore occupé par le traitement.

Explication contextuelle basée sur la spécification AUTOSAR.

fonction 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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 527f9c248660 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction Fee_JobEndNotification sert à notifier au module Fee l'achèvement réussi d'une opération asynchrone ([SWS_Fee_00095]).

Concernant l'utilisation et la signature, les stipulations suivantes s'appliquent :

  • Signature et paramètres : la fonction possède la signature void Fee_JobEndNotification (void);. Elle n'attend aucun paramètre d'entrée, d'entrée/sortie ou de sortie et ne renvoie aucune valeur de retour ([SWS_Fee_00095]).
  • En-tête : la déclaration est fournie via Fee.h ([SWS_Fee_00095]).
  • Service-ID : la fonction est définie via l'identifiant de service 0x10 ([SWS_Fee_00095]).
  • Synchronicité : l'appel lui-même est spécifié comme synchrone ([SWS_Fee_00095]).
  • Concurrence : la routine est classée comme non réentrante (Non Reentrant) ([SWS_Fee_00095]).

Interaction et contexte d'appel : généralement, ce callback devrait être appelé par un module sous-jacent (comme un pilote Flash) pour signaler la fin d'une tâche asynchrone d'écriture ou d'effacement. Question Q-8a3ccdba2024001f (ouverte) En raison de la propriété Non Reentrant, l'appelant doit s'assurer qu'aucun appel concurrent n'a lieu ([SWS_Fee_00095]).

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR pour R20-11.

fonction Fee_JobErrorNotification [SWS_Fee_00096] 📄 PDF

void Fee_JobErrorNotification (void);

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : a8e92b7001f6 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction Fee_JobErrorNotification sert de service de notification pour signaler au module Fee l'échec d'une opération asynchrone [SWS_Fee_00096]. L'interface possède la signature void Fee_JobErrorNotification (void) et est disponible via le fichier d'en-tête Fee.h [SWS_Fee_00096]. Aucun paramètre d'entrée, d'entrée/sortie ou de sortie n'est transmis au service portant l'identifiant 0x11 [SWS_Fee_00096]. De même, l'appel ne renvoie aucune valeur de retour à l'appelant [SWS_Fee_00096].

La sémantique d'exécution de l'appel est spécifiée comme étant synchrone (Synchronous) [SWS_Fee_00096]. Pour le comportement à l'exécution, la restriction centrale s'applique selon laquelle la fonction n'est pas réentrante (Non Reentrant) [SWS_Fee_00096]. Interprétation : l'appelant – qui est probablement un composant pilote sous-jacent – doit s'assurer que la notification n'est jamais déclenchée de façon concurrente ou en parallèle à partir de contextes interruptifs. Question Q-7d4c9618bf385721 (ouverte)

Concernant le traitement des erreurs, aucun code d'erreur spécifique n'est transmis par l'interface sans paramètre, et aucun message DET ou DEM propre au module n'est documenté pour cet appel [SWS_Fee_00096]. Le module Fee devrait associer en interne le cas d'erreur signalé à la tâche asynchrone active et adapter son statut en conséquence. Question Q-1fa43444195edb62 (ouverte)

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R20-11.

fonction Fee_MainFunction [SWS_Fee_00097] 📄 PDF

void Fee_MainFunction (void);

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 341cf633fe8b Provenance Questions ouvertes (3)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction Fee_MainFunction sert, conformément à [SWS_Fee_00097], au traitement centralisé des demandes de lecture, d'écriture et d'effacement ainsi qu'à l'exécution des opérations de gestion internes du module. Elle est spécifiée avec la signature void Fee_MainFunction (void); et l'identifiant de service 0x12 [SWS_Fee_00097].

En ce qui concerne l'interface et l'utilisation, la fonction ne traite aucun paramètre de transmission et ne possède pas de valeur de retour [SWS_Fee_00097]. De sa disponibilité via le fichier d'en-tête SchM_Fee.h, on peut probablement déduire que son appel est effectué de manière cyclique par le gestionnaire d'ordonnancement du logiciel de base. Question Q-5ef9bcc5f438cb89 (ouverte) La description suggère que les commandes précédemment transmises de manière asynchrone devraient être exécutées successivement au sein de ces cycles périodiques.

Concernant les scénarios d'erreur, la réentrance et les conditions d'appel spécifiques, la spécification ne contient aucun identifiant ni code d'erreur distinct [SWS_Fee_00097]. Interprétation : en tant que fonction de commande cyclique centrale pour l'état du module, Fee_MainFunction ne devrait pas être réentrante, raison pour laquelle un appel concurrent depuis plusieurs tâches doit être évité. Question (ouverte)

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R20-11.

fonction NvM_JobEndNotification [SWS_Fee_00098] 📄 PDF

void NvM_JobEndNotification (void);

-

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 4ab59e2b5ce3 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et signature

La fonction NvM_JobEndNotification est définie comme un service dans la spécification de la Flash EEPROM Emulation (Fee) et est disponible via le fichier d'en-tête Nvm.h ([SWS_Fee_00098]). Conformément à sa syntaxe void NvM_JobEndNotification (void);, la fonction ne requiert aucun paramètre d'entrée ni de sortie et ne fournit aucune valeur de retour ([SWS_Fee_00098]). Une sémantique synchrone est définie pour le comportement d'exécution (Sync/Async: true) ([SWS_Fee_00098]).

Concurrence et restrictions

Concernant la réentrance, la fonction est classée avec Don't care ([SWS_Fee_00098]). Aucune restriction spécifique relative au contexte d'appel n'est définie dans la spécification. Aucun traitement d'erreur distinct par le biais de messages DET ou DEM n'est spécifié pour cet élément ([SWS_Fee_00098]).

Interaction et classification fonctionnelle

Bien que la fonction fasse partie de la spécification de la Flash EEPROM Emulation, le champ de description ne contient pas d'autres détails ([SWS_Fee_00098]). Interprétation : en raison de sa dénomination et de sa déclaration dans Nvm.h, la fonction devrait probablement servir d'interface de rappel par laquelle le module Fee signale au module NvM l'achèvement régulier d'une tâche traitée de manière asynchrone. Question Q-ee00bece2e28a0e4 (ouverte)

Cette note d'utilisation a été générée automatiquement sur la base de la spécification d'AUTOSAR Release R20-11.

fonction NvM_JobErrorNotification [SWS_Fee_00099] 📄 PDF

void NvM_JobErrorNotification (void);

-

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 8c7c531abb5f Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et contexte d'appel

La fonction NvM_JobErrorNotification est définie conformément à [SWS_Fee_00099] comme une interface synchrone (Sync/ Async true). Sa déclaration est mise à disposition via le fichier d'en-tête Nvm.h ([SWS_Fee_00099]). La signature est void NvM_JobErrorNotification (void), de sorte qu'elle n'accepte aucun paramètre d'entrée, de passage ou de sortie et ne renvoie aucune valeur de retour ([SWS_Fee_00099]). D'après l'identifiant et l'attribution au module Fee, cette fonction de rappel devrait servir à notifier la gestion NVRAM lorsqu'une erreur survient pendant le traitement asynchrone d'une tâche dans le pilote d'émulation flash EEPROM. Question Q-4d70f8d384e04832 (ouverte)

Gestion des erreurs et concurrence

Dans [SWS_Fee_00099], aucun code d'erreur spécifique, message DET ou événement DEM n'est répertorié. Étant donné qu'aucun paramètre d'état ou d'erreur n'est transmis, une analyse détaillée des erreurs devrait probablement reposer sur des états internes du module ou des interrogations en aval du pilote. Question Q-c45e72b67236c432 (ouverte) Concernant la concurrence, [SWS_Fee_00099] spécifie le critère Don't care pour la réentrance, ce qui signifie qu'aucune exigence restrictive n'est formulée du côté de l'exigence quant à la réentrance.

Ce texte a été généré par une IA sur la base de la spécification.

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#ab2d57c8
Content hash
ab2d57c8
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlashEEPROMEmulation.pdf#nameddest=SWS_Fee_00085

Initialisation et état

Fee_GetStatus fonction

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 fonction

Service to initialize the FEE module.

void Fee_Init (const Fee_ConfigType* ConfigPtr);

Services

Fee_Cancel fonction

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 fonction

Service to initiate a read job.

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

Function to switch the mode of the underlying Flash Driver

void Fee_SetMode (MemIf_ModeType Mode);
Fee_Write fonction

Service to initiate a write job.

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

-

void NvM_JobEndNotification (void);

-

void NvM_JobErrorNotification (void);

Cyclique

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

void Fee_MainFunction (void);

Types

Configuration data structure of the Fee module.