DEENESPTFRRUARHIKOZHNL

Flash EEPROM Emulation (Fee)

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

Руководство по модулюСОЗДАНО ИИ

Эмулирует EEPROM с логическими блоками на флэш-памяти и обслуживает асинхронные запросы на чтение и запись.
СОЗДАНО ИИ не проверено Модель: claude-opus-5-5 · Усилие: high · Температура: не регулируется · Промпт: 82b558e5a038 Происхождение Открытые вопросы (6)
Причинный якорь: R20-11 Действует с R20-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Эмулирует EEPROM с логическими блоками на флэш-памяти и обслуживает асинхронные запросы на чтение и запись.

Fee отображает логические блоки эмулированного EEPROM на флэш-память и обслуживает запросы, поступающие от NVRAM Manager через MemIf. Запросы на чтение, запись и стирание только принимаются, а затем асинхронно обрабатываются в Fee_MainFunction [SWS_Fee_00097]. Прогресс и результат отображают Fee_GetStatus и Fee_GetJobResult. После Fee_Init модуль сначала может быть занят внутренним управлением (MEMIF_BUSY_INTERNAL), однако уже принимает запросы SWS Fee с. 42. Запросы на запись всегда затрагивают блок целиком.

Fee отображает логические блоки эмулированного EEPROM на флэш-память. При этом BlockNumber одновременно обозначает начальный адрес блока [SWS_Fee_00087]. Вызовы поступают от NVRAM Manager через Memory Abstraction Interface, который выбирает подходящую службу с помощью DeviceIndex SWS MemIf с. 18. Ниже работает драйвер флэш-памяти Fls. Ответные уведомления Fee отправляет через NvM_JobEndNotification и NvM_JobErrorNotification напрямую в NVRAM Manager [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)

Контекстная диаграмма: Fee между MemIf и Fls, инициализируемый EcuM, циклически запускаемый SchM, с передачей подтверждений напрямую в NvM. Источники: [SWS_Fee_00085], [SWS_Fee_00097], [SWS_Fee_00105].

EcuM вызывает Fee_Init с выбранным набором конфигурации; R20-11 определяет эту службу как асинхронную [SWS_Fee_00085]. После этого статус устанавливается в MEMIF_BUSY_INTERNAL, однако запросы уже принимаются. Лишь повторные вызовы Fee_MainFunction завершают внутреннее управление и приводят к MEMIF_IDLE SWS Fee с. 42. Fee_GetStatus показывает состояние модуля, Fee_GetJobResult — результат последнего принятого запроса [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 (администрирование выполняется) 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)

Диаграмма состояний: статус модуля от MEMIF_UNINIT через MEMIF_BUSY_INTERNAL к MEMIF_IDLE и MEMIF_BUSY; возврат после штатного завершения запроса является предположением. Источники: [SWS_Fee_00090], SWS Fee с. 28.

Запросы на чтение, запись, аннулирование и стирание сообщают с помощью E_OK только о своем принятии; их обработка выполняется асинхронно в Fee_MainFunction [SWS_Fee_00097]. Fee_Read считывает произвольные фрагменты блока, Fee_Write — всегда весь блок со смещением ноль SWS Fee с. 28. Во время записи блок внутренне считается «corrupted». Эту отметку следует отличать от признания недействительным с помощью Fee_InvalidateBlock SWS Fee с. 21.

Fee_Cancel в R20-11 является синхронной и отменяет незавершенный запрос через драйвер флэш-памяти [SWS_Fee_00089]. При отсутствии незавершенного запроса она возвращает FEE_E_INVALID_CANCEL [SWS_Fee_91002]. Ошибки флэш-памяти распознаются драйвером. Fee сообщает о них в зависимости от конфигурации двумя путями: как MEMIF_JOB_FAILED для опроса или через NvM_JobErrorNotification. Восстановление берет на себя NVRAM Manager ErrorDescription с. 40. Некорректные действия, такие как отсутствие инициализации или недопустимые номера блоков, Fee регистрирует как ошибки разработки [SWS_Fee_00010].

Роль в стеке энергонезависимой памяти: флэш-память как эмулированный EEPROM

Flash EEPROM Emulation (Fee) предоставляет верхнему уровню логические блоки и отображает их на флэш-память. При этом BlockNumber одновременно обозначает начальный адрес блока в памяти [SWS_Fee_00087], [SWS_Fee_00088]. NVRAM Manager вызывает Fee не напрямую, а через Memory Abstraction Interface. MemIf_Read и MemIf_Write вызывают функцию модуля абстракции, выбранного с помощью DeviceIndex, и передают ее возвращаемое значение SWS MemIf с. 18, SWS MemIf с. 19. На нижнем уровне Fee опирается на драйвер флэш-памяти Fls. Оттуда он импортирует Fls_AddressType и Fls_LengthType, а из MemIf — типы статуса, результата и режима [SWS_Fee_00084].

Ответные уведомления передаются в обход MemIf. Сам MemIf не предоставляет функций обратного вызова; процедуры обратного вызова для нижележащих модулей абстракции предоставляет NVRAM Manager SWS MemIf с. 24. Для этого Fee вызывает NvM_JobEndNotification и NvM_JobErrorNotification [SWS_Fee_00098], [SWS_Fee_00099]. И наоборот, драйвер сообщает об окончании выполнения своих запросов через Fee_JobEndNotification и Fee_JobErrorNotification в Fee [SWS_Fee_00095], [SWS_Fee_00096]. Инициализацию Fee выполняет EcuM, а циклический запуск — Basic Software Scheduler SWS Fee с. 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)

Контекстная диаграмма: Fee расположен между MemIf и Fls. Он инициализируется EcuM, циклически запускается SchM и передает отчеты о завершении запросов напрямую в NvM. Источники: [SWS_Fee_00085], [SWS_Fee_00097], [SWS_Fee_00098], [SWS_Fee_00104], [SWS_Fee_00105], SWS MemIf с. 18.

В качестве требуемых служб драйвера R20-11 называет, в частности, следующие функции [SWS_Fee_00105]:

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

Опционально добавляются Det_ReportError и Fls_BlankCheck [SWS_Fee_00104]. Более поздняя редакция того же требования вместо этого указывает MemAcc_BlankCheck SWS Fee с. 40. Нормативным для R20-11 остается вариант с Fls.

Запуск: от Fee_Init до готовности к приему запросов

EcuM вызывает Fee_Init с указателем на выбранный набор конфигурации [SWS_Fee_00085]. Тип Fee_ConfigType представляет собой структуру с элементами, зависящими от реализации [SWS_Fee_00188]. Примечательно, что R20-11 определяет Fee_Init как асинхронную [SWS_Fee_00085]. Согласно истории изменений, инициализация не обязана завершаться в пределах Fee_Init, и конечный автомат был соответствующим образом адаптирован SWS Fee с. 4.

Диаграмма последовательности из спецификации демонстрирует этот процесс SWS Fee с. 42:

  1. После Fee_Init статус модуля находится в MEMIF_BUSY_INTERNAL.
  2. Запросы могут приниматься уже в этом состоянии.
  3. Планировщик вызывает Fee_MainFunction до тех пор, пока не завершится внутреннее управление.

Более поздняя редакция определяет, что Fee_MainFunction затем переводит статус из MEMIF_BUSY_INTERNAL в MEMIF_IDLE. При этом управление может потребовать более одного вызова SWS Fee с. 38. Более старая редакция диаграммы показывает только синхронный вызов со стороны EcuM SWS Fee с. 38.

Hochlauf von FeeEcuMFeeSchMFee_Init(ConfigPtr)Modulstatus := MEMIF_BUSY_INTERNALFee_Init()Начиная с этого момента задания уже принимаютсяloopвсе еще требуется внутреннее администрированиеFee_MainFunction()interne VerwaltungsoperationStatus bleibt MEMIF_BUSY_INTERNALFee_MainFunction()Fee_MainFunction()Verwaltung beendetModulstatus := MEMIF_IDLEFee_MainFunction()

Диаграмма последовательности: Fee_Init переводит модуль в MEMIF_BUSY_INTERNAL. Только повторные вызовы Fee_MainFunction завершают внутреннее управление и приводят к MEMIF_IDLE. Источники: [SWS_Fee_00085], [SWS_Fee_00097], SWS Fee с. 42.

Fee_MainFunction обрабатывает запрошенные операции чтения, записи и стирания, а также внутренние операции управления [SWS_Fee_00097]. Являясь запланированной функцией, она вызывается напрямую из Basic Software Scheduler. Она не имеет ни параметров, ни возвращаемого значения и не является реентерабельной SWS Fee с. 40.

Статус модуля и результат запроса как управляющие величины

Верхний уровень управляет своими вызовами с помощью двух синхронных запросов. Fee_GetStatus возвращает одно из четырех значений [SWS_Fee_00090]:

  • MEMIF_UNINIT: модуль не инициализирован.
  • MEMIF_IDLE: модуль неактивен.
  • MEMIF_BUSY: запрос верхнего уровня находится в обработке.
  • MEMIF_BUSY_INTERNAL: выполняется внутренняя операция управления.

В качестве примера внутренней операции управления спецификация называет реорганизацию используемой флэш-памяти (сборку мусора) SWS Fee с. 30. Новые запросы принимаются как в MEMIF_IDLE, так и в MEMIF_BUSY_INTERNAL, и приводят к MEMIF_BUSY SWS Fee с. 28. После штатного завершения запроса статус, предположительно, снова снижается до MEMIF_IDLE. Вопрос Q-beae785a1ba1cbec (открытый) Явное подтверждение возврата к MEMIF_IDLE здесь приведено только для отмены SWS Fee с. 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 (администрирование выполняется) 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)

Диаграмма состояний: жизненный цикл статуса модуля от MEMIF_UNINIT через MEMIF_BUSY_INTERNAL к MEMIF_IDLE и MEMIF_BUSY. Переход при штатном завершении запроса помечен как предположение. Источники: [SWS_Fee_00090], SWS Fee с. 42, SWS Fee с. 28, SWS Fee с. 29.

Fee_GetJobResult относится к последнему принятому запросу [SWS_Fee_00091], SWS Fee с. 31. Она различает шесть результатов:

  • MEMIF_JOB_OK: запрос успешно завершен.
  • MEMIF_JOB_PENDING: запрос ожидает или еще выполняется.
  • MEMIF_JOB_CANCELED: задание было отменено.
  • MEMIF_JOB_FAILED: произошел сбой запроса.
  • MEMIF_BLOCK_INCONSISTENT: блок, возможно, содержит поврежденные данные.
  • MEMIF_BLOCK_INVALID: блок был помечен как недействительный; чтение невозможно.

Таким образом, статус описывает модуль, а результат — отдельный запрос; оба запрашиваются раздельно [SWS_Fee_00090].

Запросы на чтение, запись и управление блоками

Службы обработки запросов работают асинхронно: E_OK означает лишь то, что запрос был принят [SWS_Fee_00087], [SWS_Fee_00088]. Fee_Read вычисляет адрес чтения из начального адреса блока и BlockOffset. Смещение и длина могут принимать любое значение из своего диапазона типов. Таким образом можно считывать произвольное количество байтов, начиная с произвольного места блока SWS Fee с. 26. Если в драйвере флэш-памяти сконфигурирована Fls_BlankCheck, Fee_Read предварительно проверяет с ее помощью возможность чтения области. Это позволяет, например, избежать ситуации, когда стертые, но не запрограммированные ячейки вызывают ошибки ECC [SWS_Fee_00187].

Fee_Write, напротив, всегда записывает весь блок; смещение зафиксировано на нуле SWS Fee с. 28. Это следует из вышестоящего требования о том, что запросы на стирание и запись всегда начинаются на виртуальной границе 64K: блок записывается либо полностью, либо не записывается вовсе RS MemHwAb с. 24. При принятии Fee устанавливает статус в MEMIF_BUSY, а результат — в MEMIF_JOB_PENDING и возвращает E_OK. Для Fee_Read действует то же условие принятия SWS Fee с. 26.

Чтобы прерванные операции записи оставались распознаваемыми, Fee ведет внутреннюю информацию о целостности для каждого блока SWS Fee с. 21. В начале операции записи блок помечается как «corrupted», а после успешного завершения — снова как «not corrupted». Эту информацию следует строго отделять от статуса действительности, который верхний уровень устанавливает с помощью Fee_InvalidateBlock.

Задание на запись через стек энергонезависимой памятиNvMMemIfFeeSchMFlsUse 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()

Диаграмма последовательности: запрос на запись принимается синхронно, но завершается асинхронно через Fee_MainFunction и ответное уведомление драйвера. При этом блок сначала помечается как «corrupted», а в конце — снова как «not corrupted». Источники: [SWS_Fee_00088], [SWS_Fee_00095], [SWS_Fee_00098], SWS Fee с. 28, SWS Fee с. 21, SWS Fee с. 37.

Fee_InvalidateBlock объявляет логический блок недействительным [SWS_Fee_00092]. Для этого она вызывает функцию стирания драйвера и/или изменяет внутреннюю управляющую информацию, которая сама должна храниться энергонезависимо SWS Fee с. 32. Если верхний уровень позже считывает такой блок, Fee_MainFunction устанавливает результат в MEMIF_BLOCK_INVALID. Если сконфигурировано, она также вызывает уведомление об ошибке верхнего уровня SWS Fee с. 38.

Fee_EraseImmediateBlock [SWS_Fee_00094] предназначена для диагностических или аналогичных системных служб. С ее помощью при необходимости предварительно стирают область для Immediate-данных. Выполняется ли при этом физическое стирание, определяется реализацией SWS Fee с. 35. Для Fee_InvalidateBlock и Fee_EraseImmediateBlock в R20-11 возврат E_NOT_OK предусмотрен исключительно при включенном DET [SWS_Fee_00092], [SWS_Fee_00094].

Обратные вызовы, отмена и смена режима

Флеш-драйвер сообщает об успешном завершении задания драйвера через Fee_JobEndNotification [SWS_Fee_00095]. После этого Fee выполняет необходимое управление блоками и затем, если это сконфигурировано, вызывает уведомление о завершении задания вышележащего уровня. Результат, все еще находящийся в состоянии MEMIF_JOB_PENDING, модуль переводит в MEMIF_JOB_OK SWS Fee с. 37. В зависимости от структуры стека памяти функции обратного вызова могут выполняться на уровне прерываний и распространяться вверх через несколько уровней. Поэтому время их выполнения должно оставаться коротким; допустимы ли вызовы на уровне прерываний, определяется архитектурой системы SWS Fee с. 36.

Fee_Cancel вызывает функцию отмены флеш-драйвера [SWS_Fee_00089]. Вышележащий уровень обращается к сервису через MemIf_Cancel SWS MemIf с. 20. Отмена вступает в силу только в состоянии MEMIF_BUSY: Fee вызывает отмену в драйвере, сбрасывает свои внутренние переменные и возвращается в MEMIF_IDLE. Если DET активирован, Fee предварительно проверяет, инициализирован ли модуль SWS Fee с. 29.

В Fee_Cancel релизы отличаются друг от друга. Указанная более поздняя редакция определяет сервис как асинхронный, тогда как R20-11 — как синхронный [SWS_Fee_00089]. Для R20-11 определяющей является синхронная классификация.

fee_cancel start aufruf Fee_Cancel() aufgerufen start->aufruf d_det DET активен и статус MEMIF_UNINIT? aufruf->d_det e_uninit FEE_E_UNINIT melden d_det->e_uninit да d_busy Задание ожидает выполнения (статус MEMIF_BUSY)? d_det->d_busy нет ende e_uninit->ende Abbruch (Annahme) fls Вызвать функцию отмены драйвера Flash d_busy->fls да e_cancel FEE_E_INVALID_CANCEL melden d_busy->e_cancel нет reset сбросить внутренние переменные, статус := MEMIF_IDLE fls->reset reset->ende e_cancel->ende

Диаграмма деятельности: Fee_Cancel ветвится после проверки DET и состояния модуля. Отменяется только ожидающее задание; в противном случае сообщается о FEE_E_INVALID_CANCEL. Источники: [SWS_Fee_00089], [SWS_Fee_91002], [SWS_Fee_00010], SWS Fee с. 29.

Fee_SetMode переключает рабочий режим нижележащего флеш-драйвера [SWS_Fee_00086]. Соответствующая диаграмма показывает цепочку вызовов NvM → MemIf_SetMode → Fee_SetMode → Fls_SetMode SWS Fee с. 39. Fee_GetVersionInfo является единственным реентерабельным сервисом Fee [SWS_Fee_00093]. При активированном DET он проверяет переданный указатель на NULL SWS Fee с. 34.

Конфигурация и интеграция

Конфигурацию Fee получает через Fee_ConfigType, который передается в Fee_Init [SWS_Fee_00085], [SWS_Fee_00188]. Структура включений (include) более ранней редакции спецификации демонстрирует следующее разделение SWS Fee с. 11:

  • Fee_Cfg.h подключает MemIf_Types.h и Fls.h, а также опционально NvM_Cbk.h.
  • Fee_Lcfg.c и Fee_PBcfg.c содержат конфигурационные данные.
  • Планировщик подключен через SchM_Fee.h, DET — опционально через Det.h.

Для R20-11 эта схема служит только для ориентировки. Если Fee реализован как специфичная для производителя библиотека, диаграммы последовательности являются обязательными только для связей с EcuM и MemIf, но не для вызовов драйвера SWS Fee с. 42.

Поведение при ошибке

В качестве ошибок разработки Fee определяет пять кодов [SWS_Fee_00010]:

  • FEE_E_UNINIT (0x01): сервис вызван до инициализации.
  • FEE_E_INVALID_BLOCK_NO (0x02): недействительный номер блока.
  • FEE_E_INVALID_BLOCK_OFS (0x03): недействительное смещение блока.
  • FEE_E_PARAM_POINTER (0x04): недействительный указатель на данные.
  • FEE_E_INVALID_BLOCK_LEN (0x05): недействительное указание длины.

R20-11 добавляет еще два кода [SWS_Fee_91002]. FEE_E_BUSY (0x06) применяется для вызовов во время обработки пользовательского задания. FEE_E_INVALID_CANCEL (0x08) применяется для Fee_Cancel без ожидающего задания. Соответственно, новое задание, поданное в состоянии MEMIF_BUSY, должно быть отклонено с ответом E_NOT_OK. Вопрос Q-92062834653929da (открытый) Соответствующее правило представлено здесь лишь неполно SWS Fee с. 28.

Ошибки флеш-памяти обнаруживает флеш-драйвер; реакция Fee на них зависит от реализации ErrorDescription с. 40. В зависимости от конфигурации сообщение передается одним из двух способов. Либо MemIf опрашивает Fee_GetJobResult и получает MEMIF_JOB_FAILED, либо Fee активно вызывает NvM_JobErrorNotification. Восстановление берет на себя NVRAM Manager. Неинициализированный модуль распознается вышележащим уровнем по MEMIF_UNINIT в Fee_GetStatus ErrorDescription с. 53, [SWS_Fee_00090].

Сообщение об ошибке FlashFlsFeeMemIfNvMFee_JobErrorNotification() (Annahme)implementierungsspezifische FehlerbehandlungErgebnis := MEMIF_JOB_FAILEDaltCallback konfiguriertNvM_JobErrorNotification()Abfrage per PollingFee_GetJobResult()MEMIF_JOB_FAILEDВосстановление с помощью менеджера NVRAM

Диаграмма последовательности: ошибка драйвера достигает вышележащего уровня либо через обратный вызов в NvM, либо путем опроса Fee_GetJobResult. Источники: [SWS_Fee_00096], [SWS_Fee_00099], [SWS_Fee_00091], ErrorDescription с. 40.

Для целостности данных диаграмма из R22-11 описывает информационную цепочку ErrorDescription с. 64:

  1. Fee проверяет целостность прочитанных данных и передает ошибку в NVRAM Manager.
  2. NVRAM Manager сообщает NVM_E_INTEGRITY_FAILED в DEM.
  3. Он инициирует сконфигурированные процедуры восстановления: повторное чтение, избыточный блок или блок ROM.
  4. Если они завершаются неудачей, он устанавливает результат NVM_REQ_INTEGRITY_FAILED.

На стороне Fee этому, предположительно, соответствует результат MEMIF_BLOCK_INCONSISTENT [SWS_Fee_00091]. Вопрос Q-a1846c349d831e17 (открытый)

fee_konsistenz Fee Fee Fee->Fee (1) Проверить целостность прочитанных данных 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 Результат задания NvM NvM->Ergebnis (5)/(6) Wiederherstellung gescheitert: NVM_REQ_INTEGRITY_FAILED

Диаграмма кооперации: ошибка целостности передается от Fee в NvM. NvM сообщает о ней в DEM, предпринимает попытку восстановления и в случае неудачи устанавливает результат NvM (по состоянию на R22-11). Источники: ErrorDescription с. 64.

Дальнейшие подробные доказательства

Подробные правила с условиями приема, поведением обратных вызовов и главной функцией частично взяты из более поздних редакций спецификации, например SWS Fee с. 38. Там, где они отличаются от R20-11, это отмечено выше. Основные подтверждающие источники:

Руководство, сгенерированное ИИ на основе выдержек из спецификаций Fee (classic, R20-11). Определяющими являются связанные требования. Фрагменты документов из других релизов обозначены как таковые; предположения помечены как интерпретация.

Flash EEPROM Emulation (Fee)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

функция Fee_Init [SWS_Fee_00085] 📄 PDF

void Fee_Init (const Fee_ConfigType* ConfigPtr);

Service to initialize the FEE module.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: bf4a0ee4e182 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция Fee_Init служит центральной службой для инициализации модуля эмуляции Flash EEPROM (FEE) [SWS_Fee_00085]. Вызов осуществляется через интерфейс, объявленный в Fee.h, с Service ID 0x00 [SWS_Fee_00085]. В качестве единственного входного параметра передается ConfigPtr, который служит указателем на выбранный набор конфигурационных данных типа const Fee_ConfigType* [SWS_Fee_00085]. Дополнительные входные/выходные или чисто выходные параметры не определены, и функция не возвращает значения (void) [SWS_Fee_00085].

Хотя речь идет о базовой функции инициализации, семантика выполнения в спецификации явно классифицирована как асинхронная (Asynchronous) [SWS_Fee_00085]. Интерпретация: поскольку функция действует асинхронно, вызов Fee_Init, предположительно, лишь запускает инициализацию модуля, тогда как ресурсоемкие шаги инициализации завершаются неблокирующим образом в фоновом режиме [SWS_Fee_00085]. Вопрос Q-7d91ac2e51869606 (открытый)

Для параллелизма и контекста вызова спецификация определяет, что Fee_Init не является реентерабельной (Non Reentrant) [SWS_Fee_00085]. Следовательно, функция ни в какой момент времени не должна вызываться параллельно или вложенно из различных контекстов [SWS_Fee_00085].

Это указание по использованию создано ИИ и опирается исключительно на спецификацию AUTOSAR Classic Release R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Fee_SetMode [SWS_Fee_00086] 📄 PDF

void Fee_SetMode (MemIf_ModeType Mode);

Function to switch the mode of the underlying Flash Driver

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 840a1fe0d62e Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Функция Fee_SetMode служит для переключения режима работы нижележащего драйвера флэш-памяти ([SWS_Fee_00086]). Она предоставляется через заголовочный файл Fee.h с Service-ID 0x01 ([SWS_Fee_00086]). Служба ожидает в качестве единственного входного параметра Mode (типа MemIf_ModeType), который задает желаемый режим работы драйвера флэш-памяти ([SWS_Fee_00086]). Не передаются ни выходные параметры, ни возвращаемое значение (void) ([SWS_Fee_00086]).

Асинхронная семантика и параллелизм

Интерфейс специфицирован как асинхронный ([SWS_Fee_00086]). Поскольку после вызова значение функции не возвращается, сам процесс переключения оборудования флэш-памяти, вероятно, протекает с задержкой по времени в фоновом режиме. Вопрос Q-9dbc267f51e150af (открытый) Что касается контекста вызова, Fee_SetMode классифицирована как нереентрабельная (Non Reentrant) ([SWS_Fee_00086]). Поэтому вызывающие стороны должны гарантировать, что функция не вызывается одновременно или с прерыванием из различных потоков или задач.

Обработка ошибок и взаимодействие

В приведенной выдержке из спецификации для Fee_SetMode не определены специфические коды ошибок, сообщения об ошибках DET или события DEM ([SWS_Fee_00086]). Также не указаны прямые связи с другими требованиями. Интерпретация: возможная проверка недопустимых значений режима, вероятно, обрабатывается внутри драйвера или в модуле Fee без явного возврата ошибки вызывающей стороне. Вопрос (открытый)

Этот текст создан ИИ и основан исключительно на спецификациях релиза AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Fee_Read [SWS_Fee_00087] 📄 PDF

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

Service to initiate a read job.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 51320bacc37c Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Функция Fee_Read служит для инициации асинхронного запроса на чтение в модуле Flash EEPROM Emulation и объявляется в заголовочном файле Fee.h [SWS_Fee_00087]. Она имеет Service ID 0x02 и принимает следующие входные параметры [SWS_Fee_00087]:

  • Block Number: номер логического блока, который также указывает его начальный адрес во флеш-памяти.
  • Block Offset: смещение чтения внутри соответствующего блока.
  • Length: количество байтов, считываемых из блока.
  • Data Buffer Ptr: указатель на целевой буфер для сохранения считанных данных.

В качестве возвращаемого значения функция выдает Std_ReturnType: E_OK сигнализирует о том, что запрошенная задача чтения принята модулем; E_NOT_OK указывает, что запрос отклонен [SWS_Fee_00087].

Параллелизм и ограничения

Вызов Fee_Read специфицирован как нереентерабельный (Non Reentrant) и асинхронный (Asynchronous) [SWS_Fee_00087].

Взаимодействие с драйвером Flash

Если во флеш-драйвере сконфигурирована функция Fls_BlankCheck, Fee_Read должна вызывать эту функцию [SWS_Fee_00187]. Это служит для предварительной проверки возможности считывания области памяти без возникновения, например, ошибок ECC из-за стертых, но еще не запрограммированных ячеек флеш-памяти [SWS_Fee_00187].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Fee_Write [SWS_Fee_00088] 📄 PDF

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

Service to initiate a write job.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 46c33a39dfc2 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и семантика

Функция Fee_Write служит службой для инициации запроса на запись в модуле эмуляции Flash EEPROM согласно [SWS_Fee_00088]. Объявление доступно в заголовочном файле Fee.h. Вызов происходит асинхронно: функция лишь запускает процесс записи и не блокирует выполнение до физического завершения операции записи.

Для передачи данных записи определены два параметра [SWS_Fee_00088]:

  • BlockNumber (uint16): обозначает логический номер блока и одновременно определяет начальный адрес этого блока в EEPROM.
  • DataBufferPtr (const uint8*): указатель на буфер данных, содержащий записываемые полезные данные.

Возвращаемые значения и параллелизм

Возвращаемое значение типа Std_ReturnType непосредственно сигнализирует о том, смог ли модуль принять запрос на запись [SWS_Fee_00088]:

  • E_OK: запрошенная операция принята модулем.
  • E_NOT_OK: операция не была принята модулем.

С точки зрения параллелизма Fee_Write специфицирована как нереентерабельная (Non Reentrant) [SWS_Fee_00088]. Поэтому вызывающие компоненты должны гарантировать, что функция не будет вызываться параллельно из различных контекстов. Service ID функции — 0x03 [SWS_Fee_00088]. Интерпретация: физическая передача данных, вероятно, должна выполняться асинхронно в фоновом режиме последующими циклами модуля после возврата E_OK. Вопрос Q-8bedddcf2371f6bf (открытый)

Этот текст был сгенерирован ИИ и служит в качестве справочного руководства. Преимущественную силу имеют упомянутые спецификации AUTOSAR.

функция Fee_Cancel [SWS_Fee_00089] 📄 PDF

void Fee_Cancel (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e038d068e179 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция Fee_Cancel представляет собой синхронную службу модуля Fee для передачи запроса на отмену в нижележащий драйвер флеш-памяти [SWS_Fee_00089]. Эта служба объявлена в заголовочном файле Fee.h и имеет числовой Service ID 0x04 [SWS_Fee_00089].

Использование и контекст вызова

Интерфейс имеет сигнатуру void Fee_Cancel (void) [SWS_Fee_00089]. Для вызова в соответствии со спецификацией действуют следующие характеристики параметров и выполнения:

  • Параметры: функция не ожидает входных параметров; отсутствуют входные, входные/выходные или выходные параметры [SWS_Fee_00089].
  • Возвращаемое значение: вызывающей стороне возвращаемое значение не возвращается [SWS_Fee_00089].
  • Синхронность: выполнение вызова функции определено как синхронное (Synchronous) [SWS_Fee_00089].

Параллелизм и ограничения

В отношении поведения при параллелизме Fee_Cancel специфицирована как нереентерабельная (Non Reentrant) [SWS_Fee_00089]. Поэтому вызывающие сущности должны гарантировать, что функция не будет вызываться параллельно или вложенно из различных контекстов задач или прерываний.

Взаимодействие и обработка ошибок

Основная задача Fee_Cancel состоит в том, чтобы вызвать функцию прерывания (отмены) базового драйвера флеш-памяти [SWS_Fee_00089]. Специфические коды ошибок, возвращаемые значения или сообщения об ошибках для этой функции в полезной нагрузке не определены. Поскольку обработка ошибок не описана, поведение в случае ошибки, вероятно, зависит от реализации вызываемого драйвера флеш-памяти. Вопрос Q-bb066b6c05a2eb12 (открытый)

Это указание по использованию было сгенерировано автоматически и основано исключительно на содержании спецификации релиза AUTOSAR R20-11.

функция 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

функция 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.

функция Fee_InvalidateBlock [SWS_Fee_00092] 📄 PDF

Std_ReturnType Fee_InvalidateBlock (uint16 BlockNumber);

Service to invalidate a logical block.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 93ce420cf23c Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция Fee_InvalidateBlock служит сервисом для аннулирования логического блока во флэш-памяти [SWS_Fee_00092]. Она доступна через заголовочный файл Fee.h и имеет Service-ID 0x07 [SWS_Fee_00092].

Использование и параметры

Вызов происходит асинхронно; таким образом, фактическое объявление недействительным инициируется как фоновая задача [SWS_Fee_00092]:

  • Block Number (uint16, in): обозначает логический номер блока, который одновременно определяет начальный адрес блока во флэш-памяти [SWS_Fee_00092].
  • Возвращаемое значение (Std_ReturnType): возвращает E_OK, если задание на аннулирование было успешно принято модулем [SWS_Fee_00092].

Обработка ошибок

Если модуль не смог принять запрос, возвращается E_NOT_OK — однако, согласно спецификации, этот возврат ошибки явно ограничен конфигурациями с включенным DET (only if DET is enabled) [SWS_Fee_00092]. Интерпретация: если DET деактивирован, отклонение задания, вероятно, не должно сигнализироваться вызывающей стороне через E_NOT_OK, поскольку спецификация связывает возврат этого значения ошибки с активацией DET. Вопрос Q-2e54187ddb69e481 (открытый)

Параллелизм и граничные условия

Интерфейс объявлен как нереентрабельный (Non Reentrant) [SWS_Fee_00092]. Поэтому вызывающие стороны должны гарантировать, что параллельные или прерывающие вызовы Fee_InvalidateBlock не осуществляются, пока активен предыдущий вызов функции [SWS_Fee_00092].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

функция Fee_EraseImmediateBlock [SWS_Fee_00094] 📄 PDF

Std_ReturnType Fee_EraseImmediateBlock (uint16 BlockNumber);

Service to erase a logical block.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c9619585e034 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и параметры

Функция Fee_EraseImmediateBlock предоставляет асинхронную службу для удаления логического блока и объявлена в заголовочном файле Fee.h [SWS_Fee_00094]. Функция имеет шестнадцатеричный Service-ID 0x09 [SWS_Fee_00094]. Единственным входным параметром служит Block Number типа uint16; он указывает номер логического блока и одновременно определяет его начальный адрес в EEPROM [SWS_Fee_00094].

Возвращаемые значения и обработка ошибок

В качестве возвращаемого значения интерфейс возвращает статус Std_ReturnType [SWS_Fee_00094]. Значение E_OK подтверждает, что модуль успешно принял запрошенное задание на удаление [SWS_Fee_00094]. Если задание не было принято модулем, функция возвращает E_NOT_OK; согласно спецификации, это возвращаемое значение возникает, однако, только при активированном контроле ошибок DET [SWS_Fee_00094].

Параллелизм и ограничения

С точки зрения параллелизма и условий вызова Fee_EraseImmediateBlock классифицируется как нереентерабельная (Non Reentrant) и работает асинхронно [SWS_Fee_00094]. Поэтому вызывающие модули должны гарантировать отсутствие повторного вызова того же интерфейса, пока модуль всё ещё занят обработкой.

Контекстное пояснение на основе спецификации AUTOSAR.

функция 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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 527f9c248660 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция Fee_JobEndNotification служит для уведомления модуля Fee об успешном завершении асинхронной операции ([SWS_Fee_00095]).

В отношении использования и сигнатуры действуют следующие положения:

  • Сигнатура и параметры: функция имеет сигнатуру void Fee_JobEndNotification (void);. Она не ожидает ни входных, ни входных/выходных, ни выходных параметров и не возвращает значения ([SWS_Fee_00095]).
  • Заголовочный файл: объявление предоставляется через Fee.h ([SWS_Fee_00095]).
  • Идентификатор сервиса (Service-ID): функция определена через Service-ID 0x10 ([SWS_Fee_00095]).
  • Синхронность: сам вызов специфицирован как синхронный ([SWS_Fee_00095]).
  • Конкурентный доступ: подпрограмма классифицирована как нереентерабельная (Non Reentrant) ([SWS_Fee_00095]).

Взаимодействие и контекст вызова: как правило, этот callback, вероятно, вызывается нижележащим модулем (таким как драйвер флеш-памяти) для сигнализации об окончании асинхронного задания записи или стирания. Вопрос Q-8a3ccdba2024001f (открытый) В силу свойства Non Reentrant вызывающая сторона должна гарантировать отсутствие конкурирующих вызовов ([SWS_Fee_00095]).

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR для R20-11.

функция Fee_JobErrorNotification [SWS_Fee_00096] 📄 PDF

void Fee_JobErrorNotification (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a8e92b7001f6 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция Fee_JobErrorNotification служит службой уведомления, сообщающей модулю Fee о сбое асинхронной операции [SWS_Fee_00096]. Интерфейс имеет сигнатуру void Fee_JobErrorNotification (void) и доступен через заголовочный файл Fee.h [SWS_Fee_00096]. Службе с идентификатором 0x11 не передаются ни входные, ни входные/выходные, ни выходные параметры [SWS_Fee_00096]. Также вызов не возвращает вызывающей стороне никакого значения [SWS_Fee_00096].

Семантика выполнения вызова специфицирована как синхронная (Synchronous) [SWS_Fee_00096]. Для поведения во время выполнения действует ключевое ограничение: функция не является реентерабельной (Non Reentrant) [SWS_Fee_00096]. Интерпретация: вызывающая сторона — которой, предположительно, является нижележащий компонент драйвера — должна гарантировать, что уведомление никогда не инициируется параллельно или конкурентно из прерывающих контекстов. Вопрос Q-7d4c9618bf385721 (открытый)

Что касается обработки ошибок, то через интерфейс без параметров не передаются никакие специфические коды ошибок, и для этого вызова не задокументированы модулеспецифичные сообщения DET или DEM [SWS_Fee_00096]. Модуль Fee, вероятно, внутренне сопоставляет зарегистрированный сбой с активным асинхронным заданием и соответствующим образом корректирует его статус. Вопрос Q-1fa43444195edb62 (открытый)

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

функция Fee_MainFunction [SWS_Fee_00097] 📄 PDF

void Fee_MainFunction (void);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 341cf633fe8b Происхождение Открытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция Fee_MainFunction служит согласно [SWS_Fee_00097] для централизованной обработки запрошенных заданий на чтение, запись и удаление, а также для выполнения внутренних операций управления модуля. Она специфицирована с сигнатурой void Fee_MainFunction (void); и Service-ID 0x12 [SWS_Fee_00097].

Что касается интерфейса и использования, функция не обрабатывает входных параметров и не имеет возвращаемого значения [SWS_Fee_00097]. Из доступности через заголовочный файл SchM_Fee.h можно, предположительно, сделать вывод, что её вызов выполняется циклически диспетчером расписания базового программного обеспечения. Вопрос Q-5ef9bcc5f438cb89 (открытый) Описание наводит на мысль, что ранее переданные асинхронно задания должны последовательно отрабатываться в рамках этих периодических циклов.

Относительно сценариев ошибок, реентерабельности и специфических условий вызова спецификация не содержит отдельных идентификаторов или кодов ошибок [SWS_Fee_00097]. Интерпретация: являясь центральной циклической управляющей функцией для состояния модуля, Fee_MainFunction, вероятно, нереентерабельна, поэтому параллельного вызова из нескольких задач следует избегать. Вопрос (открытый)

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

функция NvM_JobEndNotification [SWS_Fee_00098] 📄 PDF

void NvM_JobEndNotification (void);

-

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4ab59e2b5ce3 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и сигнатура

Функция NvM_JobEndNotification определена в спецификации Flash EEPROM Emulation (Fee) как служба и доступна через заголовочный файл Nvm.h ([SWS_Fee_00098]). Согласно её синтаксису void NvM_JobEndNotification (void);, функция не требует ни входных, ни выходных параметров и не возвращает значения ([SWS_Fee_00098]). Для поведения при выполнении установлена синхронная семантика (Sync/Async: true) ([SWS_Fee_00098]).

Параллелизм и ограничения

Относительно реентерабельности функция классифицирована как Don't care ([SWS_Fee_00098]). Специфические ограничения касательно контекста вызова в спецификации не задаются. Отдельная обработка ошибок посредством сообщений DET или DEM для этого элемента не специфицирована ([SWS_Fee_00098]).

Взаимодействие и функциональная классификация

Хотя функция является составной частью спецификации Flash EEPROM Emulation, поле описания не содержит дополнительных подробностей ([SWS_Fee_00098]). Интерпретация: судя по наименованию и объявлению в Nvm.h, функция, предположительно, служит интерфейсом обратного вызова, через который модуль Fee сигнализирует модулю NvM о штатном завершении асинхронно обрабатываемого задания. Вопрос Q-ee00bece2e28a0e4 (открытый)

Данное указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR Release R20-11.

функция NvM_JobErrorNotification [SWS_Fee_00099] 📄 PDF

void NvM_JobErrorNotification (void);

-

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8c7c531abb5f Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Функция NvM_JobErrorNotification согласно [SWS_Fee_00099] определена как синхронный интерфейс (Sync/ Async true). Её объявление предоставляется через заголовочный файл Nvm.h ([SWS_Fee_00099]). Сигнатура имеет вид void NvM_JobErrorNotification (void), в силу чего функция не принимает ни входных, ни сквозных, ни выходных параметров и не возвращает значения ([SWS_Fee_00099]). Судя по идентификатору и принадлежности к модулю Fee, эта функция обратного вызова, вероятно, служит для уведомления управления NVRAM при возникновении ошибки во время асинхронной обработки задания в драйвере эмуляции Flash-EEPROM. Вопрос Q-4d70f8d384e04832 (открытый)

Обработка ошибок и параллелизм

В [SWS_Fee_00099] не приведены никакие специфические коды ошибок, сообщения DET или события DEM. Поскольку параметры статуса или ошибки не передаются, детальный анализ ошибок, вероятно, основан на внутренних состояниях модуля или последующих запросах драйвера. Вопрос Q-c45e72b67236c432 (открытый) Относительно параллелизма [SWS_Fee_00099] указывает для реентерабельности критерий Don't care, в результате чего со стороны требования не формулируется ограничивающих предписаний по реентерабельности.

Этот текст сгенерирован ИИ на основе спецификации.

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

Карта тем

Подробный вид

Выберите элемент в оглавлении.

Инициализация и состояние

Fee_GetStatus функция

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

MemIf_StatusType Fee_GetStatus (void);
Fee_GetVersionInfo функция

Service to return the version information of the FEE module.

void Fee_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Fee_Init функция

Service to initialize the FEE module.

void Fee_Init (const Fee_ConfigType* ConfigPtr);

Сервисы

Fee_Cancel функция

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);
Fee_GetJobResult функция

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

MemIf_JobResultType Fee_GetJobResult (void);
Fee_InvalidateBlock функция

Service to invalidate a logical block.

Std_ReturnType Fee_InvalidateBlock (uint16 BlockNumber);
Fee_JobEndNotification функция

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 функция

Service to initiate a read job.

Std_ReturnType Fee_Read (uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);
Fee_SetMode функция

Function to switch the mode of the underlying Flash Driver

void Fee_SetMode (MemIf_ModeType Mode);
Fee_Write функция

Service to initiate a write job.

Std_ReturnType Fee_Write (uint16 BlockNumber, const uint8* DataBufferPtr);
NvM_JobEndNotification функция

-

void NvM_JobEndNotification (void);

-

void NvM_JobErrorNotification (void);

Циклические

Fee_MainFunction функция

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

void Fee_MainFunction (void);

Типы

Configuration data structure of the Fee module.