NVRAM Manager (NvM)
Provides synchronous and asynchronous block-based data management for non-volatile storage (EEPROM, Flash).
Funktionen — Übersicht
void NvM_Init (const NvM_ConfigType* ConfigPtr);Service for resetting all internal variables.Std_ReturnType NvM_SetDataIndex (NvM_BlockIdType BlockId, uint8 DataIndex);Service for setting the Data Inde x of a dataset NVRAM block.Std_ReturnType NvM_GetDataIndex (NvM_BlockIdType BlockId, uint8* DataIndexPtr);Service for getting the currently set Data Index of a datase t NVRAM blockStd_ReturnType NvM_SetBlockProtection (NvM_BlockIdType BlockId, boolean ProtectionEnabled);Service for setting/ resetting the write protection for a NV block.Std_ReturnType NvM_GetErrorStatus (NvM_BlockIdType BlockId, NvM_RequestResultType* RequestResultPtr);Service to read the block dependent error/ status information.void NvM_GetVersionInfo (Std_VersionInfoType* versioninfo);Service to get the version information of the Nv M module.Std_ReturnType NvM_SetRamBlockStatus (NvM_BlockIdType BlockId, boolean BlockChanged);Service for setting the RAM block status of a permanent RAM block or the status of the explicit synchronization of a NVRAM block.void NvM_SetBlockLockStatus (NvM_BlockIdType BlockId, boolean BlockLocked);Service for setting the lock status of a permanent RAM block or of the explicit synchronization of a NVRAM block.Std_ReturnType NvM_CancelJobs (NvM_BlockIdType BlockId);Service to cancel all jobs pending for a NV block.Std_ReturnType NvM_ReadBlock (NvM_BlockIdType BlockId, void* NvM_DstPtr);Service to copy the data of the NV block to its corresponding RAM block.Std_ReturnType NvM_WriteBlock (NvM_BlockIdType BlockId, const void* NvM_SrcPtr);Service to copy the data of the RAM block to its corresponding NV block.Std_ReturnType NvM_RestoreBlockDefaults (NvM_BlockIdType BlockId, void* NvM_DestPtr);Service to restore the default data to its corr esponding RAM block.Std_ReturnType NvM_EraseNvBlock (NvM_BlockIdType BlockId);Service to erase a NV block.Std_ReturnType NvM_InvalidateNvBlock (NvM_BlockIdType BlockId);Service to invalidate a NV block.Std_ReturnType NvM_ReadPRAMBlock (NvM_BlockIdType BlockId);Service to copy the data of the NV block to its corresponding permanent RAM block.Std_ReturnType NvM_WritePRAMBlock (NvM_BlockIdType BlockId);Service to copy the data of the permanent RAM block to its corresponding NV block.Std_ReturnType NvM_RestorePRAMBlockDefaults (NvM_BlockIdType BlockId);Service to restore the default data to its corresponding permanent RAM block.void NvM_ReadAll (void);Initiates a multi block read request.void NvM_WriteAll (void);Initiates a multi block write request.void NvM_CancelWriteAll (void);Service to cancel a running Nv M_ Write All request.void NvM_ValidateAll (void);Initiates a multi block validation request.void NvM_FirstInitAll (void);The function initiates a multi block first initialization request.void NvM_JobEndNotification (void);Function to be used by the underlying memory abstraction to signal end of job without error.void NvM_JobErrorNotification (void);Function to be used by the underlying memory abstraction to signal end of job with error.void NvM_MainFunction (void);Service for performing the processing of the Nv M jobs.Std_ReturnType NvM_SingleBlockCallbackFunction (NvM_BlockRequestType BlockRequest, NvM_RequestResultType JobResult);Per block callback routine to notify the upper layer that an asynchronous single block request has been finished.Std_ReturnType NvM_MultiBlockCallbackFunction (NvM_MultiBlockRequestType MultiBlockRequest, NvM_RequestResultType JobResult);Common callback routine to notify the upper layer that an asynchronous multi block request has been finished.Std_ReturnType NvM_InitBlockCallbackFunction (NvM_InitBlockRequestType InitBlockRequest);Per block callback routine which shall be called by the Nv M module when default data needs to be restored in RAM, and a RO M...Std_ReturnType NvM_WriteRamBlockToNvm (void* NvMBuffer);Block specific callback routine which shall be called in order to let the application copy data from RAM block to Nv M...Std_ReturnType NvM_ReadRamBlockFromNvm (const void* NvMBuffer);Block specific callback routine which shall be called in order to let the application copy data from Nv M module's mirror to...
Typen — Übersicht
struct NvM_ConfigTypeConfiguration data structure of the Nv M module.NvM_MultiBlockRequestTypeIdentifies the type of request performed on multi block when signaled via the callback function or when reporting to Bsw Menum NvM_RequestResultTypeType NvM_RequestResultType.NvM_BlockIdTypeIdentification of a NVRAM block via a unique block identifier.NvM_InitBlockRequestTypeIdentifies the type of request performed on a block when signaled via the callback functionNvM_BlockRequestTypeIdentifies the type of reques t performed on a block when signaled via the callback function
Funktionen & Typen — Detailansicht
функция NvM_Init [SWS_NvM_00447] 📄 PDF
void NvM_Init (const NvM_ConfigType* ConfigPtr);
Service for resetting all internal variables.
Использование и контекст вызова
Функция NvM_Init служит для синхронного сброса всех внутренних переменных NVRAM Manager [SWS_NvM_00447]. В качестве входного параметра ConfigPtr она ожидает указатель на выбранный набор конфигурационных данных и не имеет возвращаемого значения [SWS_NvM_00447]. Будучи API типа 4, она входит в состав классов конфигурации 2 и 3 [SWS_NvM_00560], [SWS_NvM_00561]. Функция не является реентерабельной и может вызываться исключительно через BSW Mode Manager [SWS_NvM_00447], [SWS_NvM_00693].
Задачи инициализации
Во время вызова функция выполняет следующие действия:
- сброс всех внутренних переменных, включая конечные автоматы, очереди заданий и флаги запросов, в их начальные значения [SWS_NvM_00399];
- установка индекса набора данных всех блоков NVRAM типа
NVM_BLOCK_DATASETв ноль [SWS_NvM_00192]; - внутренняя установка сигнала «INIT DONE», который является предпосылкой для обработки заданий, управления очередями и пересчёта CRC в модуле [SWS_NvM_00257], [SWS_NvM_00399].
Ограничения и взаимодействие
Из-за строгих требований ко времени запуска электронного блока управления (ECU) NvM_Init не инициализирует сконфигурированные блоки NVRAM [SWS_NvM_00091]. Постоянное содержимое блоков RAM не изменяется, а функции обратного вызова синхронизации не вызываются; это закреплено за функцией NvM_ReadAll [SWS_NvM_00400]. Кроме того, NvM_Init не инициализирует ни нижележащие драйверы, ни аппаратную абстракцию памяти, ни сторонние модули, так как их инициализация предполагается выполненной через BSW Mode Manager [SWS_NvM_00157], [SWS_NvM_00193].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_SetDataIndex [SWS_NvM_00448] 📄 PDF
Std_ReturnType NvM_SetDataIndex (NvM_BlockIdType BlockId, uint8 DataIndex);
Service for setting the Data Inde x of a dataset NVRAM block.
функция NvM_GetDataIndex [SWS_NvM_00449] 📄 PDF
Std_ReturnType NvM_GetDataIndex (NvM_BlockIdType BlockId, uint8* DataIndexPtr);
Service for getting the currently set Data Index of a datase t NVRAM block
функция NvM_SetBlockProtection [SWS_NvM_00450] 📄 PDF
Std_ReturnType NvM_SetBlockProtection (NvM_BlockIdType BlockId, boolean ProtectionEnabled);
Service for setting/ resetting the write protection for a NV block. Availabl e via Nv M.h
Использование и семантика
Синхронная и реентерабельная функция NvM_SetBlockProtection служит для установки или сброса защиты от записи для блока NVRAM через соответствующий атрибут в административном блоке [SWS_NvM_00450], [SWS_NvM_00016]. Она относится к классу конфигурации API 3 [SWS_NvM_00560]. Окружение модуля NvM может целенаправленно включать или отключать защиту от записи через параметр ProtectionEnabled [SWS_NvM_00578]. Функция возвращает E_OK при успешном выполнении и E_NOT_OK в случае ошибки [SWS_NvM_00450].
Ограничения и параллелизм
Изменение защиты от записи разрешено только для блоков, у которых NvMWriteBlockOnce настроен на FALSE, независимо от значения параметра NvMBlockWriteProt [SWS_NvM_00325]. Если NvMWriteBlockOnce настроен на TRUE, защиту от записи запрещено как включать, так и отключать [SWS_NvM_00398], [SWS_NvM_00577]; эта защита не может быть снята даже после операций чтения [SWS_NvM_00314], [SWS_NvM_00316], [SWS_NvM_00784]. Кроме того, состояние блокировки, установленное через NvM_SetBlockLockStatus, не может быть изменено с помощью NvM_SetBlockProtection [SWS_NvM_00754]. Пока запрос для отдельного блока активен или находится в очереди для того же блока, вызов не допускается [SWS_NvM_00704].
Обработка ошибок
При включённом обнаружении ошибок разработки (DET) функция сообщает о специфических состояниях ошибок:
NVM_E_UNINIT, если модуль NvM ещё не инициализирован [SWS_NvM_00606];NVM_E_PARAM_BLOCK_ID, если переданныйBlockIdнаходится вне допустимого диапазона [SWS_NvM_00609].NVM_E_BLOCK_PENDING, если для блока операция уже активна или находится в очереди [SWS_NvM_00607];NVM_E_BLOCK_CONFIG, если блок сконфигурирован сNvMWriteBlockOnce = TRUE[SWS_NvM_00608];NVM_E_BLOCK_LOCKED, если блок заблокирован [SWS_NvM_00759].
Это указание по использованию основано на спецификации NVRAM Manager в AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_GetErrorStatus [SWS_NvM_00451] 📄 PDF
Std_ReturnType NvM_GetErrorStatus (NvM_BlockIdType BlockId, NvM_RequestResultType* RequestResultPtr);
Service to read the block dependent error/ status information.
функция NvM_GetVersionInfo [SWS_NvM_00452] 📄 PDF
void NvM_GetVersionInfo (Std_VersionInfoType* versioninfo);
Service to get the version information of the Nv M module.
функция NvM_SetRamBlockStatus [SWS_NvM_00453] 📄 PDF
Std_ReturnType NvM_SetRamBlockStatus (NvM_BlockIdType BlockId, boolean BlockChanged);
Service for setting the RAM block status of a permanent RAM block or the status of the explicit synchronization of a NVRAM block.
Синхронная и реентерабельная функция NvM_SetRamBlockStatus служит для установки статуса блока RAM для постоянных блоков RAM или для блоков с явной синхронизацией [SWS_NvM_00453]. Она доступна в классах конфигурации API 2 и 3 [SWS_NvM_00561], [SWS_NvM_00560], если она была активирована через конфигурационный параметр NvMSetRamBlockStatusApi [SWS_NvM_00408].
Через параметр BlockChanged управляется, помечается ли блок как действительный и изменённый (TRUE) или как недействительный и неизменённый (FALSE) [SWS_NvM_00453], [SWS_NvM_00406]. При передаче TRUE модуль исходит из действительности данных [SWS_NvM_00241]. Функция возвращает E_OK при успешном изменении статуса и E_NOT_OK в случае ошибки [SWS_NvM_00453].
Если BlockChanged устанавливается в TRUE, функция запрашивает в фоновом режиме перерасчет контрольной суммы в NvM_MainFunction, если сконфигурирован NvMCalcRamBlockCrc [SWS_NvM_00121]. Для блоков без постоянного RAM с явной синхронизацией это задание использует функцию обратного вызова записи для получения данных [SWS_NvM_00906]. Если она завершается сбоем, выполняются сконфигурированные повторные попытки на каждый вызов NvM_MainFunction [SWS_NvM_00907], [SWS_NvM_00908]. Если все попытки остаются безуспешными, задание тем не менее считается завершенным, а блок остается помеченным как измененный [SWS_NvM_00909].
Перед вызовом модуль NvM должен быть инициализирован [SWS_NvM_00711]. При активном обнаружении ошибок разработки функция сообщает NVM_E_UNINIT при неинициализированном модуле [SWS_NvM_00643], NVM_E_PARAM_BLOCK_ID при недействительном BlockId [SWS_NvM_00645] и NVM_E_BLOCK_PENDING при уже выполняющихся или находящихся в очереди заданиях [SWS_NvM_00644]. Пока активно задание для одного блока, функцию нельзя вызывать для этого блока [SWS_NvM_00704]. Блокировку блока, установленную через NvM_SetBlockLockStatus, изменить с помощью этого невозможно [SWS_NvM_00754].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_SetBlockLockStatus [SWS_NvM_00548] 📄 PDF
void NvM_SetBlockLockStatus (NvM_BlockIdType BlockId, boolean BlockLocked);
Service for setting the lock status of a permanent RAM block or of the explicit synchronization of a NVRAM block.
Использование и контекст вызова
Синхронная и реентерабельная функция NvM_SetBlockLockStatus служит для блокировки (BlockLocked = TRUE) или разблокировки (BlockLocked = FALSE) постоянно сконфигурированного RAM-блока или явной синхронизации блока NVRAM [SWS_NvM_00548]. Она входит в состав функционала классов конфигурации API 2 и 3 [SWS_NvM_00561], [SWS_NvM_00560]. Функция не содержится в интерфейсе ServicePort и вызывается преимущественно DCM, а также сложными драйверами устройств (CDD) [SWS_NvM_00732].
Ограничения и взаимодействие
Вызов действует исключительно на блоки NVRAM с постоянным RAM-блоком или сконфигурированной явной синхронизацией; для всех остальных блоков он остается без эффекта [SWS_NvM_00732]. Если блок блокируется (BlockLocked = TRUE), NvM гарантирует, что связанные NV-данные не будут модифицированы: блок пропускается при NvM_WriteAll, а службы NvM_WriteBlock, NvM_WritePRAMBlock, NvM_InvalidateNvBlock и NvM_EraseNvBlock отклоняются [SWS_NvM_00751]. При следующем запуске NvM гарантированно загружает блок при NvM_ReadBlock или NvM_ReadPRAMBlock из NV-памяти [SWS_NvM_00752]. Установленное состояние блокировки не может быть изменено ни через NvM_SetRamBlockStatus, ни через NvM_SetBlockProtection [SWS_NvM_00754]. Передача BlockLocked = FALSE восстанавливает штатную обработку [SWS_NvM_00753].
Обработка ошибок
При активированном обнаружении ошибок разработки (DET) функция сообщает о специфических ошибках разработки:
NVM_E_UNINIT, если модуль NvM на момент вызова еще не инициализирован [SWS_NvM_00728].NVM_E_PARAM_BLOCK_ID, если параметрBlockIdнаходится вне допустимого диапазона [SWS_NvM_00731].NVM_E_BLOCK_CONFIG, если указанный блок NVRAM сконфигурирован с параметромNvMWriteBlockOnce = TRUE[SWS_NvM_00730].
Данное указание по использованию основано на спецификации AUTOSAR Classic R20-11 и обобщает требования к вызову, защитному действию и обработке ошибок API.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_CancelJobs [SWS_NvM_00535] 📄 PDF
Std_ReturnType NvM_CancelJobs (NvM_BlockIdType BlockId);
Service to cancel all jobs pending for a NV block.
Использование и семантика
Функция NvM_CancelJobs, доступная через NvM.h, служит для синхронной отмены всех стоящих в очереди заданий для определенного блока NVRAM [SWS_NvM_00535], [SWS_NvM_00536]. Функция спроектирована как реентерабельная и ожидает в качестве параметра BlockId, который однозначно идентифицирует дескриптор блока соответствующего блока NVRAM [SWS_NvM_00535]. Вызов возвращает E_OK, если ожидающие задания удалось успешно удалить из очереди, и E_NOT_OK, если для указанного блока задание в очереди обнаружено не было [SWS_NvM_00535].
Последовательность и параллелизм
Задание, которое на момент вызова функции уже активно обрабатывается, не прерывается с помощью NvM_CancelJobs, а продолжает выполняться до конца [SWS_NvM_00537]. Если запрос на отмену для ожидающих заданий принят, служба предварительно устанавливает зависящий от блока результат запроса в NVM_REQ_CANCELED [SWS_NvM_00225], [SWS_NvM_00536]. Цель этой очистки заключается в том, чтобы освободить очередь, например, при завершении или перезапуске раздела, предотвратив тем самым последующие уведомления о завершенных заданиях [SWS_NvM_00225].
Обработка ошибок и конфигурация
При активированном обнаружении ошибок разработки (DET) функция проверяет предусловия: если модуль еще не инициализирован, сообщается об ошибке NVM_E_UNINIT [SWS_NvM_00648]. Если переданный BlockId находится вне допустимого диапазона, формируется DET-сообщение NVM_E_PARAM_BLOCK_ID [SWS_NvM_00649]. NvM_CancelJobs классифицируется как API типа 2 и доступна в классах конфигурации API 2 и 3 [SWS_NvM_00561], [SWS_NvM_00560].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_ReadBlock [SWS_NvM_00454] 📄 PDF
Std_ReturnType NvM_ReadBlock (NvM_BlockIdType BlockId, void* NvM_DstPtr);
Service to copy the data of the NV block to its corresponding RAM block.
Использование и семантика
Функция NvM_ReadBlock служит для асинхронного копирования пользовательских данных из NV-памяти в соответствующий RAM-блок [SWS_NvM_00010], [SWS_NvM_00454]. Вызов является реентерабельным [SWS_NvM_00454]. Она принимает параметры, помещает запрос на чтение во внутреннюю очередь заданий и немедленно возвращает E_OK при успешном принятии или E_NOT_OK при отклонении [SWS_NvM_00195], [SWS_NvM_00454].
При передаче указателя NvM_DstPtr данные могут считываться во временный RAM-буфер в отличие от конфигурации блока; недопустимый указатель NULL в этом сценарии приводит к ошибке DET [SWS_NvM_00196], [SWS_NvM_00278]. Сконфигурированный постоянный RAM-блок помечается как невалидный непосредственно при постановке в очередь или при запуске обработки задания [SWS_NvM_00198]. Только после успешного процесса копирования RAM-блок считается валидным и неизменённым [SWS_NvM_00200], а результат выполнения задания переходит в NVM_REQ_OK [SWS_NvM_00206].
Обработка ошибок и целостность данных
Если для блока активирована контрольная сумма (NvMCalRamBlockCrC == TRUE), задание запрашивает перерасчёт после копирования [SWS_NvM_00201]:
- При ошибках CRC в DEM передаётся
NVM_E_INTEGRITY_FAILED[SWS_NvM_00203]. Если стандартные значения присутствуют, они загружаются, а результат устанавливается вNVM_REQ_RESTORED_DEFAULTS[SWS_NvM_00202]. При отсутствии ROM-данных и callback-функций инициализации результатом являетсяNVM_REQ_INTEGRITY_FAILED[SWS_NvM_00204]. - Если драйвер памяти сообщает
MEMIF_JOB_FAILEDи замещающие значения недоступны, задание завершается сNVM_REQ_NOT_OK[SWS_NvM_00359].
Особенности типов блоков
- Redundant: если чтение первой копии завершается сбоем, автоматически используется вторая NV-копия [SWS_NvM_00199]. Если обе копии невалидны, весь блок инвалидируется [SWS_NvM_00317].
- Dataset: если блок, выбранный по индексу набора данных, помечен как невалидный, копирование в RAM не выполняется [SWS_NvM_00355].
- Write-Once: непротиворечиво прочитанные блоки с установленным
NVM_WRITE_BLOCK_ONCEстановятся постоянно защищёнными от записи [SWS_NvM_00316].
Этот текст был создан ИИ и основан исключительно на спецификациях релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_WriteBlock [SWS_NvM_00455] 📄 PDF
Std_ReturnType NvM_WriteBlock (NvM_BlockIdType BlockId, const void* NvM_SrcPtr);
Service to copy the data of the RAM block to its corresponding NV block. Available vi a Nv M.h
Функция NvM_WriteBlock служит для копирования данных RAM-блока в назначенный NV-блок [SWS_NvM_00455], [SWS_NvM_00410]. Вызов выполняется реентерабельно и асинхронно: функция принимает переданные параметры BlockId, а также NvM_SrcPtr, помещает задание на запись во внутреннюю очередь заданий и немедленно возвращает управление [SWS_NvM_00208]. Возвращаемое значение сигнализирует с помощью E_OK об успешном принятии или с помощью E_NOT_OK об отклонении задания [SWS_NvM_00455].
В отношении параметризации и источника данных действуют следующие требования:
- Если через
NvM_SrcPtrпередается допустимый RAM-адрес, задание на запись использует этот буфер [SWS_NvM_00210]. Это также позволяет сохранять временные RAM-блоки для блоков, сконфигурированных как постоянные, или при явной синхронизации [SWS_NvM_00280]. - Сконфигурированный постоянный RAM-блок предполагается действительным или автоматически валидируется перед процессом копирования [SWS_NvM_00303].
- Если для NV-блока сконфигурирована контрольная сумма, задание перед процессом записи запрашивает перерасчет CRC [SWS_NvM_00212].
- Для блоков наборов данных (
NVM_BLOCK_DATASET) целевой объект выбирается через индекс данных, сохраненный в административном блоке [SWS_NvM_00338]. - Для избыточных блоков (
NVM_BLOCK_REDUNDANT) задание завершается сNVM_REQ_OK, как только хотя бы одна копия была успешно записана [SWS_NvM_00284]. - Если установлен
NvMWriteBlockOnce == TRUE, задание после успешной записи незамедлительно активирует защиту от записи в административном блоке [SWS_NvM_00328]. - Задания на запись для зарезервированного ID блока 1 разрешены только при активированном
NvMDynamicConfiguration[SWS_NvM_00311].
Обработка ошибок и параллелизм:
- Если обнаружение ошибок разработки активно,
NvM_WriteBlockсообщает об ошибке DETNVM_E_UNINITпри неинициализированном модуле [SWS_NvM_00619], а также оNVM_E_BLOCK_PENDING, если тот же блок уже находится в обработке или поставлен в очередь [SWS_NvM_00620]. Отсутствующий указатель на источник для временных буферов приводит к ошибке параметров DET [SWS_NvM_00280]. - Отрицательные подтверждения от интерфейса памяти увеличивают счетчик повторов; после превышения
NVM_MAX_NUM_OF_WRITE_RETRIESзадание завершается сNVM_REQ_NOT_OK[SWS_NvM_00213], [SWS_NvM_00216]. - Если блок сконфигурирован с немедленным приоритетом,
NvM_WriteBlockдеструктивно прерывает выполняющееся в данный момент задание, чтобы задание на запись было обработано следующим [SWS_NvM_00300].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_RestoreBlockDefaults [SWS_NvM_00456] 📄 PDF
Std_ReturnType NvM_RestoreBlockDefaults (NvM_BlockIdType BlockId, void* NvM_DestPtr);
Service to restore the default data to its corr esponding RAM block.
Использование и семантика
Функция NvM_RestoreBlockDefaults восстанавливает стандартные данные в назначенном RAM-блоке ([SWS_NvM_00456], [SWS_NvM_00012]). Она работает асинхронно: после вызова она принимает параметры, ставит запрос во внутреннюю очередь заданий и немедленно возвращает E_OK при успешном принятии или E_NOT_OK при отклонении ([SWS_NvM_00456], [SWS_NvM_00224]). Если через выходной параметр NvM_DestPtr передан валидный RAM-адрес, он используется в качестве целевого адреса ([SWS_NvM_00435]). Чтобы скопировать ROM-данные во временный RAM-блок, даже если сконфигурированы постоянный RAM-блок или callback-функции синхронизации, вызывающая сторона обязательно должна передать указатель, отличный от NULL ([SWS_NvM_00436]).
Обработка ошибок и граничные условия
Функция не является реентерабельной ([SWS_NvM_00456]) и входит в классы конфигурации API 2 и 3 ([SWS_NvM_00561], [SWS_NvM_00560]). Если включено обнаружение ошибок разработки (DET), она сообщает NVM_E_UNINIT, если модуль ещё не инициализирован ([SWS_NvM_00625]), NVM_E_PARAM_BLOCK_ID при невалидном BlockId ([SWS_NvM_00630]), а также ошибку параметра, если для постоянно сконфигурированных блоков при временном копировании не передан валидный целевой указатель ([SWS_NvM_00436]). Функция синхронно завершается сбоем с E_NOT_OK, если блок относится к типу NVM_BLOCK_DATASET, существует как минимум один ROM-блок и текущий индекс данных указывает на NV-блок ([SWS_NvM_00353]).
Обработка заданий и взаимодействие
В рамках асинхронной обработки заданий сервис загружает стандартные значения из сконфигурированного ROM-блока ([SWS_NvM_00267]). Если запрошен постоянный RAM-блок или используется явная callback-функция синхронизации (NvMReadRamBlockFromNvCallback), RAM-блок инвалидируется перед процессом копирования или перед вызовом callback-функции ([SWS_NvM_00227]). После успешного процесса копирования или после возврата callback-функции синхронизации со значением E_OK RAM-блок валидируется и помечается как изменённый ([SWS_NvM_00228]). Если для блока сконфигурирована контрольная сумма, задание в завершение запрашивает перерасчёт CRC ([SWS_NvM_00229]). Эту же логику восстановления используют NvM_ReadBlock и NvM_ReadAll в качестве резервного механизма при сбое чтения из памяти или ошибках CRC ([SWS_NvM_00202], [SWS_NvM_00293], [SWS_NvM_00657]).
Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_EraseNvBlock [SWS_NvM_00457] 📄 PDF
Std_ReturnType NvM_EraseNvBlock (NvM_BlockIdType BlockId);
Service to erase a NV block.
Реентерабельная асинхронная функция NvM_EraseNvBlock ([SWS_NvM_00457]) класса конфигурации API 3 ([SWS_NvM_00560]) служит для стирания блока энергонезависимой памяти по переданному BlockId. Если защита от записи не активна, функция принимает параметры, ставит задание на стирание во внутреннюю очередь заданий и немедленно возвращает управление ([SWS_NvM_00231], [SWS_NvM_00418]). Возвращаемое значение E_OK сигнализирует об успешном принятии задания, тогда как E_NOT_OK указывает на отклонение ([SWS_NvM_00457]).
Перед вызовом модуль NvM должен быть полностью инициализирован ([SWS_NvM_00715]). После постановки в очередь защита от записи повторно не проверяется перед извлечением задания из очереди ([SWS_NvM_00662]). Для избыточных блоков типа NVM_BLOCK_REDUNDANT операция стирания считается успешной только после того, как стёрты оба избыточных NV-блока ([SWS_NvM_00269]). Содержимое данных назначенного RAM-блока всегда остаётся неизменным в результате выполнения задания ([SWS_NvM_00416]).
Вызов отклоняется, если адресуется ROM-блок блока набора данных ([SWS_NvM_00661]) или блок заблокирован с помощью NvM_SetBlockLockStatus ([SWS_NvM_00751]). При активном обнаружении ошибок разработки (DET) функция сообщает NVM_E_UNINIT при неинициализированном модуле ([SWS_NvM_00631]), NVM_E_PARAM_BLOCK_ID при невалидном BlockId ([SWS_NvM_00635]), а также NVM_E_BLOCK_LOCKED при заблокированном блоке ([SWS_NvM_00757]). Если блок не имеет немедленного приоритета («immediate priority») или сконфигурирован стандартный приоритет, при активном DET сообщается об ошибке NVM_E_BLOCK_CONFIG и возвращается E_NOT_OK ([SWS_NvM_00357], [SWS_NvM_00636]). Если последующее асинхронное выполнение завершается неудачно, статус запроса устанавливается в NVM_REQ_NOT_OK ([SWS_NvM_00271]) и в DEM сообщается NVM_E_REQ_FAILED ([SWS_NvM_00663]).
Это указание по использованию было сгенерировано автоматически на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_InvalidateNvBlock [SWS_NvM_00459] 📄 PDF
Std_ReturnType NvM_InvalidateNvBlock (NvM_BlockIdType BlockId);
Service to invalidate a NV block.
Функция NvM_InvalidateNvBlock представляет собой асинхронный и реентерабельный сервис класса конфигурации API 3 для инвалидации NV-блока [SWS_NvM_00459], [SWS_NvM_00560]. Условием вызова является предварительная инициализация модуля NvM окружением модуля [SWS_NvM_00717]. Вызов принимает параметр BlockId, при отключённой защите от записи помещает запрос в очередь и возвращает E_OK [SWS_NvM_00239], [SWS_NvM_00424]. Если задание не может быть принято, функция возвращает E_NOT_OK [SWS_NvM_00459].
Вызов синхронно отклоняется с E_NOT_OK, если через BlockId был указан ROM-блок блока набора данных (Dataset) [SWS_NvM_00664]. Если блок ранее был заблокирован через NvM_SetBlockLockStatus, NvM отклоняет задание [SWS_NvM_00751] и при активном интерфейсе разработки сообщает об ошибке DET NVM_E_BLOCK_LOCKED [SWS_NvM_00756]. Если блок уже находится в очереди или выполняется, выдаётся сообщение DET NVM_E_BLOCK_PENDING [SWS_NvM_00639].
Собственно асинхронное задание инвалидирует адресуемый NV-блок [SWS_NvM_00421] с учётом следующих граничных условий:
- Для избыточных блоков (
NVM_BLOCK_REDUNDANT) результат выполнения задания устанавливается вNVM_REQ_OKтолько тогда, когда успешно инвалидированы оба избыточных NV-блока [SWS_NvM_00274]; тот же механизм применяется и дляNvM_FirstInitAll[SWS_NvM_00919], [SWS_NvM_00920]. - Для блоков с
NVM_WRITE_BLOCK_ONCEзадание оставляет защиту от записи без изменений [SWS_NvM_00960]. Если операция чтения не предшествовала, задание сообщает об ошибке DETNVM_E_WRITE_ONCE_STATUS_UNKNOWN[SWS_NvM_00958]. - Если во время асинхронной обработки возникает ошибка, результат запроса устанавливается в
NVM_REQ_NOT_OK[SWS_NvM_00275], а производственная ошибкаNVM_E_REQ_FAILEDпередаётся в DEM [SWS_NvM_00666].
Данное указание по применению было сгенерировано ИИ и основано исключительно на данных спецификации из AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_ReadPRAMBlock [SWS_NvM_00764] 📄 PDF
Std_ReturnType NvM_ReadPRAMBlock (NvM_BlockIdType BlockId);
Service to copy the data of the NV block to its corresponding permanent RAM block.
Использование
Асинхронная и реентерабельная функция [SWS_NvM_00764] служит для копирования данных NV-блока в назначенный постоянный RAM-блок. Вызов принимает BlockId, помещает запрос на чтение во внутреннюю очередь заданий и немедленно возвращает управление [SWS_NvM_00766]. Возвращаемое значение E_OK подтверждает принятие задания, тогда как E_NOT_OK сигнализирует об отклонении [SWS_NvM_00764]. Функция входит в состав функционала классов конфигурации API 2 и 3 [SWS_NvM_00560], [SWS_NvM_00561].
Порядок выполнения и синхронизация
При успешной постановке задания в очередь или начале обработки постоянный RAM-блок незамедлительно инвалидируется [SWS_NvM_00767]. Если для блока настроена явная синхронизация, приложению разрешается изменять RAM-блок вплоть до вызова рутины синхронизации; инвалидация в этом случае происходит непосредственно перед вызовом NvMReadRamBlockFromNvCallback [SWS_NvM_00706], [SWS_NvM_00767]. Если NV-данные были безошибочно переданы в RAM, задание завершается со статусом NVM_REQ_OK [SWS_NvM_00765], [SWS_NvM_00775].
Обработка ошибок и избыточность
Для блоков типа NVM_BLOCK_REDUNDANT задание автоматически запускает попытку чтения со второго блока, если первая попытка чтения завершается неудачей [SWS_NvM_00768]. Для наборов данных (NVM_BLOCK_DATASET) копирование блокируется, если выбранный через индекс NV-блок является несогласованным [SWS_NvM_00771]; если индекс указывает на ROM-данные, они загружаются, а результат устанавливается в NVM_REQ_OK [SWS_NvM_00772]. Если сконфигурированы стандартные данные и NV-блок не читается при недействительном состоянии RAM, выполняется неявное восстановление [SWS_NvM_00575], классифицирующее RAM-блок как действительный и измененный [SWS_NvM_00774]; без сконфигурированных значений по умолчанию восстановление не выполняется [SWS_NvM_00572]. Если ранее был активен NvM_SetBlockLockStatus, принудительно выполняется дозагрузка из NV-памяти [SWS_NvM_00752].
Это указание по использованию было сгенерировано автоматически на основе состояния спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_WritePRAMBlock [SWS_NvM_00793] 📄 PDF
Std_ReturnType NvM_WritePRAMBlock (NvM_BlockIdType BlockId);
Service to copy the data of the permanent RAM block to its corresponding NV block.
Реентерабельная асинхронная функция NvM_WritePRAMBlock инициирует запись данных постоянного RAM-блока в соответствующий NV-блок [SWS_NvM_00793], [SWS_NvM_00794]. Функция доступна в классах конфигурации API 2 и 3 [SWS_NvM_00561], [SWS_NvM_00560]. Зарезервированный ID блока 1 разрешается передавать только в том случае, если NvMDynamicConfiguration установлен в TRUE [SWS_NvM_00311].
При передаче функция возвращает E_OK при успешном принятии или E_NOT_OK [SWS_NvM_00793]. Если указанный блок заблокирован, вызов завершается с ошибкой E_NOT_OK, и модуль сообщает об ошибке DET [SWS_NvM_00797]. Защита блока проверяется уже при постановке в очередь заданий и повторно не валидируется перед выполнением задания [SWS_NvM_00799]. Если блок NVRAM обладает немедленным приоритетом (immediate priority), текущее выполняемое задание немедленно деструктивно прерывается, и это задание записи обрабатывается следующим [SWS_NvM_00800].
Перед фактической передачей в NV-память задание запрашивает пересчет CRC, если блок сконфигурирован с CRC [SWS_NvM_00801]. Еще недействительный постоянный RAM-блок автоматически валидируется [SWS_NvM_00803]. Для избыточных блоков (NVM_BLOCK_REDUNDANT) записываются оба NV-блока, начиная с того, который не читался при предшествующих заданиях чтения [SWS_NvM_00807], [SWS_NvM_00808]. При ошибках записи количество повторов ограничивается параметром NVM_MAX_NUM_OF_WRITE_RETRIES [SWS_NvM_00806]; при переполнении NvM устанавливает результат задания в NVM_REQ_NOT_OK [SWS_NvM_00804] и сообщает NVM_E_REQ_FAILED в DEM [SWS_NvM_00805].
Что касается параллелизма: при неявной синхронизации приложению после вызова и вплоть до завершения задания запрещается модифицировать данные буфера, доступ по чтению остается разрешенным [SWS_NvM_00698]. При явной синхронизации буфер разрешается изменять до тех пор, пока не будет вызвана callback-рутина NvMWriteRamBlockToNvCallback [SWS_NvM_00705].
Этот текст был сгенерирован ИИ и служит для технической ориентации на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_RestorePRAMBlockDefaults [SWS_NvM_00813] 📄 PDF
Std_ReturnType NvM_RestorePRAMBlockDefaults (NvM_BlockIdType BlockId);
Service to restore the default data to its corresponding permanent RAM block.
Использование и семантика
Функция NvM_RestorePRAMBlockDefaults восстанавливает стандартные данные в соответствующем постоянном RAM-блоке ([SWS_NvM_00813], [SWS_NvM_00814]). Служба работает асинхронно и принимает через параметр BlockId идентификатор дескриптора блока NVRAM ([SWS_NvM_00813]). При вызове запрос помещается во внутреннюю очередь заданий ([SWS_NvM_00815]). Возвращаемое значение E_OK сигнализирует об успешном принятии, тогда как E_NOT_OK указывает на отклонение ([SWS_NvM_00813]). Если сконфигурирован ROM-блок, данные загружаются из него в рамках асинхронной обработки ([SWS_NvM_00816]).
Обработка ошибок и граничные условия
Если для блока не сохранены ни стандартные ROM-данные, ни callback-рутина NvMInitBlockCallback, статус блока остается без изменений, а вызов возвращает E_NOT_OK ([SWS_NvM_00884]). При активированном обнаружении ошибок разработки (DET) формируются сообщения о специфических ошибках:
NVM_E_UNINIT: модуль еще не инициализирован ([SWS_NvM_00831]).NVM_E_PARAM_BLOCK_ID: переданныйBlockIdнаходится вне допустимого диапазона ([SWS_NvM_00834]).NVM_E_BLOCK_PENDING: для ID блока задание уже поставлено в очередь или находится в обработке ([SWS_NvM_00832]).NVM_E_BLOCK_WITHOUT_DEFAULTS: отсутствуют как стандартные данные ROM, так и callback-функция инициализации ([SWS_NvM_00886]).NVM_E_PARAM_ADDRESS: не сконфигурированы ни постоянный RAM-блок, ни явная синхронизация ([SWS_NvM_00894]).
Параллелизм и взаимодействие
Служба специфицирована как нереентерабельная ([SWS_NvM_00813]) и доступна в классах конфигурации API 2 и 3 ([SWS_NvM_00561], [SWS_NvM_00560]). Та же логика восстановления используется также внутри NvM_ReadPRAMBlock в случае, если нижележащая операция чтения завершается неудачей ([SWS_NvM_00789], [SWS_NvM_00882]).
Это указание по использованию основано на спецификациях AUTOSAR Classic Release R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_ReadAll [SWS_NvM_00460] 📄 PDF
void NvM_ReadAll (void);
Initiates a multi block read request.
Функция NvM_ReadAll асинхронно запускает многоблочное задание на чтение для инициализации блоков данных RAM [SWS_NvM_00460], [SWS_NvM_00158]. Она не имеет параметров, не возвращает значения и не является реентерабельной [SWS_NvM_00460]. Вызов сигнализирует запрос модулю NvM и немедленно возвращает управление; фактическая обработка, однако, откладывается до тех пор, пока все очереди заданий для отдельных блоков не опустеют [SWS_NvM_00243].
В начале задание во время запуска системы валидирует ID конфигурации путем сравнения сохраненного значения со скомпилированным [SWS_NvM_00073], [SWS_NvM_00246]:
- При совпадении выполняется обычная подготовка для всех сконфигурированных блоков [SWS_NvM_00247].
- Различие конфигураций игнорируется, если установлен
NvMDynamicConfiguration == FALSE[SWS_NvM_00248]. - Если
NvMDynamicConfiguration == TRUEиNvMResistantToChangedSw == FALSE, при несовпадении выполняется расширенная подготовка [SWS_NvM_00249].
Затем задание выполняет итерацию по всем пользовательским блокам, начиная с наименьшего ID блока (за исключением зарезервированных ID 0 и 1) [SWS_NvM_00244]. Учитываются постоянные RAM-блоки или блоки со сконфигурированной функцией обратного вызова синхронизации NvM_ReadRamBlockFromNvm, если сконфигурирован NvmSelectBlockForReadall == TRUE [SWS_NvM_00118]. Не прочитанные, но выбранные блоки получают результат NVM_REQ_BLOCK_SKIPPED [SWS_NvM_00287].
Для избыточных блоков (NVM_BLOCK_REDUNDANT) при сбое первой попытки чтения автоматически считывается второй NV-блок [SWS_NvM_00288]. После успешной загрузки в RAM статус блока устанавливается в «valid/unmodified», а результат задания — в NVM_REQ_OK [SWS_NvM_00251], [SWS_NvM_00290], [SWS_NvM_00291]. Для блоков с NvMCalRamBlockCrC == TRUE задание запрашивает перерасчет CRC [SWS_NvM_00292]. Если сконфигурировано, для каждого блока вызывается NvMSingleBlockCallback, а после последнего блока — MultiBlockCallback [SWS_NvM_00281].
Этот указание по использованию основано на требованиях спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция NvM_WriteAll [SWS_NvM_00461] 📄 PDF
void NvM_WriteAll (void);
Initiates a multi block write request.
Использование и контекст вызова
Функция NvM_WriteAll асинхронно запускает многоблочное задание на запись и не имеет ни параметров, ни возвращаемых значений [SWS_NvM_00461]. После вызова функция сигнализирует запрос модулю NvM и немедленно возвращает управление [SWS_NvM_00254]. Фактическая обработка откладывается до тех пор, пока все очереди для одноблочных заданий не будут полностью обработаны [SWS_NvM_00254]. Вызов обычно выполняется в рамках базового процесса выключения (Shutdown) диспетчером BSW Mode Manager [SWS_NvM_00092].
Последовательность выполнения и обработка блоков
Во время останова задание синхронизирует постоянные RAM-блоки с соответствующими NV-блоками или выполняет явный обратный вызов синхронизации NvM_WriteRamBlockToNvm [SWS_NvM_00018]. При этом учитываются исключительно блоки, для которых параметр конфигурации NvMSelectBlockForWriteAll установлен в true [SWS_NvM_00252], а также блок 1 в случае несовпадающих ID конфигурации при активной динамической конфигурации [SWS_NvM_00310]. Если для NVRAM-блока сконфигурирован CRC, задание перед операцией записи запрашивает перерасчет и обновляет контрольную сумму [SWS_NvM_00253]. Для блоков с NvMWriteBlockOnce == TRUE задание после успешной записи сразу устанавливает флаг защиты от записи в административном блоке [SWS_NvM_00329].
Параллелизм и обработка ошибок
- Реентерабельность: функция не является реентерабельной [SWS_NvM_00461].
- Контроль ошибок: во избежание бесконечных циклов счетчик повторов отслеживает повторные попытки при неуспешных ответах от модуля MemIf [SWS_NvM_00296].
- Результаты задания: если обработка хотя бы одного блока завершается неудачно, общий результат устанавливается в
NVM_REQ_NOT_OK[SWS_NvM_00318]. Для сконфигурированных блоков, которые не были записаны, устанавливается индивидуальный результатNVM_REQ_BLOCK_SKIPPED[SWS_NvM_00298]. Для избыточных блоков (NVM_BLOCK_REDUNDANT) индивидуальное задание считаетсяNVM_REQ_OK, как только хотя бы один из NV-блоков был успешно записан [SWS_NvM_00337]. - Прерывание: выполняющееся задание может быть прервано с помощью
NvM_CancelWriteAll[SWS_NvM_00019]. Это приводит к общему результатуNVM_REQ_CANCELED[SWS_NvM_00237], при этом обрабатываемый в данный момент блок завершается без разрушения и с сохранением целостности данных [SWS_NvM_00238].
Этот текст был сгенерирован ИИ и служит в качестве справочного руководства. Определяющей является спецификация AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция NvM_CancelWriteAll [SWS_NvM_00458] 📄 PDF
void NvM_CancelWriteAll (void);
Service to cancel a running Nv M_ Write All request.
Использование и семантика
Функция NvM_CancelWriteAll служит для досрочного прерывания текущей операции многоблочной записи (NvM_WriteAll) [SWS_NvM_00458], [SWS_NvM_00019]. Вызов является асинхронным, нереентерабельным, не принимает параметров и не возвращает значения [SWS_NvM_00458]. Функция напрямую сигнализирует модулю о запросе на прерывание и немедленно возвращает управление [SWS_NvM_00232]. Запрос не ставится в очередь заданий; в каждый момент времени может ожидать выполнения только один запрос этого типа [SWS_NvM_00420]. Если на момент вызова операция не активна, вызов не производит никакого действия [SWS_NvM_00233].
Последовательность выполнения и согласованность данных
Прерывание выполняется таким образом, чтобы согласованность данных блока NVRAM, обрабатываемого в момент прерывания, не нарушалась [SWS_NvM_00019]. Модуль штатно завершает этот активный блок и устанавливает его атрибут состояния в зависимости от успеха в NVM_REQ_OK или NVM_REQ_NOT_OK, в то время как все оставшиеся ещё ожидающие блоки переводятся в NVM_REQ_CANCELED [SWS_NvM_00236]. Общий результат неявно предопределяется результатом прерванной операции [SWS_NvM_00235], сохраняется в отдельной переменной [SWS_NvM_00393] и может быть запрошен через NvM_GetErrorStatus с указанием зарезервированного ID блока 0 [SWS_NvM_00394]. Кроме того, опционально может быть уведомлена вышестоящая callback-функция (NvMMultiBlockCallback) [SWS_NvM_00260]. Если это сконфигурировано через NvMDrvModeSwitch, после прерывания задание переключает устройства памяти в медленный рабочий режим («slow-mode») [SWS_NvM_00681].
Ограничения и обработка ошибок
Вызов NvM_CancelWriteAll функционально ограничен и может осуществляться исключительно BSW Mode Manager (BswM) [SWS_NvM_00703]. Кроме того, функция относится к классу конфигурации API 2 [SWS_NvM_00561]. Перед вызовом модуль должен быть инициализирован [SWS_NvM_00716]; при активированном обнаружении ошибок разработки (DET) вызов в неинициализированном состоянии приводит к сообщению об ошибке NVM_E_UNINIT [SWS_NvM_00637].
Данное указание по использованию было создано автоматически на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция NvM_ValidateAll [SWS_NvM_00855] 📄 PDF
void NvM_ValidateAll (void);
Initiates a multi block validation request.
Функция NvM_ValidateAll инициирует асинхронную валидацию нескольких блоков NVRAM ([SWS_NvM_00855]) и относится к классу конфигурации API 3 ([SWS_NvM_00560]). Она является нереентерабельной, не ожидает параметров и не возвращает значения ([SWS_NvM_00855]). Перед вызовом модуль NvM должен быть инициализирован ([SWS_NvM_00859]).
При вызове функция сигнализирует запрос модулю и немедленно возвращает управление ([SWS_NvM_00858]). Однако фактическая обработка откладывается до тех пор, пока очереди заданий для отдельных блоков не будут полностью обработаны ([SWS_NvM_00858]). Для мультиблочных заданий в очереди заданий доступно в общей сложности только одно место ([SWS_NvM_00380]). Общий результат асинхронного задания сохраняется в отдельной переменной состояния ([SWS_NvM_00393]).
В рамках обработки задания как результат мультиблочного задания, так и результаты затронутых отдельных блоков предварительно устанавливаются в NVM_REQ_PENDING ([SWS_NvM_00861]). Обработка учитывает исключительно блоки, для которых NvMBlockUseAutoValidation сконфигурирован как TRUE ([SWS_NvM_00856], [SWS_NvM_00860]):
- обрабатываются постоянные RAM-блоки или выполняется явная синхронизация через callback
NvM_WriteRamBlockToNvm([SWS_NvM_00860]); - статус RAM-блока устанавливается в «VALID / CHANGED» ([SWS_NvM_00856]);
- если дополнительно сконфигурировано вычисление CRC в RAM, задание запрашивает пересчет в фоновом режиме, обрабатываемый через
NvM_MainFunction([SWS_NvM_00857]); - после успешной валидации RAM-блока зависящий от блока результат переходит в
NVM_REQ_OK([SWS_NvM_00862]).
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция NvM_FirstInitAll [SWS_NvM_91001] 📄 PDF
void NvM_FirstInitAll (void);
The function initiates a multi block first initialization request. The job of the function does not care if a block exists in the non - volatile memory or not OR if it is valid (i.e. not corrupted) or not, when processing it.
Функция NvM_FirstInitAll инициирует асинхронную первичную инициализацию нескольких сконфигурированных блоков ([SWS_NvM_91001]). Служба является нереентерабельной, не ожидает параметров и не возвращает значения ([SWS_NvM_91001]). При обработке не учитывается, существует ли блок в энергонезависимой памяти, является ли он действительным или поврежденным ([SWS_NvM_91001]). Длина очереди для мультиблочных заданий (в том числе из NvM_FirstInitAll) равна единице, поэтому одновременно может быть поставлено в очередь только одно мультиблочное задание ([SWS_NvM_00380]).
Обработка различается в зависимости от типа управления блоком:
- NATIVE: если стандартные данные присутствуют, NV-блок записывается ими ([SWS_NvM_00913]). Если блок имеет постоянную RAM или явную синхронизацию, RAM обновляется стандартными данными (ROM или callback-функция инициализации), как в
NvM_RestoreBlockDefaults([SWS_NvM_00915]); без постоянной RAM и без явной синхронизации внутренний буфер NvM служит в качестве RAM, при этом состояние RAM остается нетронутым ([SWS_NvM_00914]). Если стандартные данные отсутствуют ([SWS_NvM_00919]) или сконфигурированная callback-функция инициализации завершается ошибкой с возвращаемым значением, отличным отE_OK([SWS_NvM_00921]), блок инвалидируется. - REDUNDANT: если стандартные данные присутствуют, ими записываются оба экземпляра блока ([SWS_NvM_00916]), и при наличии постоянной RAM или явной синхронизации RAM обновляется ([SWS_NvM_00918]); в противном случае используется внутренний буфер ([SWS_NvM_00917]). Если callback-функция инициализации возвращает значение, отличное от
E_OK, оба экземпляра инвалидируются ([SWS_NvM_00922]). - DATASET: все сконфигурированные для обработки блоки или экземпляры NV-блоков этого типа инвалидируются без исключения ([SWS_NvM_00923], [SWS_NvM_00924]).
Если запись блока NATIVE со стандартными данными ([SWS_NvM_00925]), инвалидация блока NATIVE ([SWS_NvM_00927]) или запись обоих экземпляров блока REDUNDANT ([SWS_NvM_00926]) завершается неудачей, задание устанавливает общий результат в NVM_REQ_NOT_OK.
Этот текст был сгенерирован ИИ на основе спецификации R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция NvM_JobEndNotification [SWS_NvM_00462] 📄 PDF
void NvM_JobEndNotification (void);
Function to be used by the underlying memory abstraction to signal end of job without error.
Использование
Синхронная callback-функция NvM_JobEndNotification вызывается нижележащей абстракцией памяти для сигнализации менеджеру NVRAM о безошибочном окончании задания [SWS_NvM_00462]. Функция не имеет ни параметров, ни возвращаемого значения и доступна через заголовочный файл NvM_MemIf.h с service ID 0x11 [SWS_NvM_00462]. Успешное уведомление абстракции памяти охватывает безошибочно завершённые операции чтения, записи или стирания [SWS_NvM_00111].
Параллелизм и ограничения
Интерфейс специфицирован как нереентерабельный [SWS_NvM_00462]. В зависимости от вызывающей функции внутри абстракции памяти эта процедура может выполняться в контексте прерывания [SWS_NvM_00111]. Все модули абстракции памяти должны быть сконфигурированы таким образом, чтобы они единообразно использовали один и тот же режим — callback или опрос (polling) [SWS_NvM_00111].
Конфигурация и взаимодействие
Модуль NvM предоставляет callback-функцию NvM_JobEndNotification только в том случае, если режим опроса отключён через конфигурационный параметр NvMPollingMode [SWS_NvM_00440]. Кроме того, на функцию влияют общие конфигурационные параметры NvM [SWS_NvM_00440].
Это указание по использованию основано на спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция NvM_JobErrorNotification [SWS_NvM_00463] 📄 PDF
void NvM_JobErrorNotification (void);
Function to be used by the underlying memory abstraction to signal end of job with error.
Callback-функция NvM_JobErrorNotification ([SWS_NvM_00463]) служит нижележащему уровню абстракции памяти для сигнализации модулю менеджера NVRAM (NvM) об ошибочном окончании асинхронного задания. Вызов выполняется синхронно и специфицирован как нереентерабельный ([SWS_NvM_00463]).
Использование и сигнатура
- Интерфейс: объявление функции предоставляется через заголовочный файл
NvM_MemIf.h([SWS_NvM_00463]). - Сигнатура: согласно
void NvM_JobErrorNotification(void), функция не имеет ни входных, ни выходных, ни входных/выходных параметров и не возвращает значения ([SWS_NvM_00463]). - Service-ID: функция идентифицируется через шестнадцатеричный идентификатор
0x12([SWS_NvM_00463]).
Зависимость от конфигурации и взаимодействие
Модуль NvM предоставляет callback-функцию NvM_JobErrorNotification только тогда, когда режим опроса отключён через конфигурационный параметр NvMPollingMode ([SWS_NvM_00441]). Если используется опрос, данный механизм уведомления не применяется. Кроме того, на функцию влияют общие конфигурационные параметры согласно [SWS_NvM_00028] текст ещё не импортирован ([SWS_NvM_00441]).
Обработка ошибок и параллелизм
Функция служит исключительно для сообщения об ошибках заданий и не определяет ни собственных кодов ошибок, ни откликов DET или DEM ([SWS_NvM_00463]). В силу классификации как Non Reentrant вызывающая сторона в абстракции памяти, вероятно, обязана гарантировать отсутствие перекрывающихся или прерывающих вызовов ([SWS_NvM_00463]). Вопрос Q-5f72d9d605c25922 (открытый)
Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция NvM_MainFunction [SWS_NvM_00464] 📄 PDF
void NvM_MainFunction (void);
Service for performing the processing of the Nv M jobs.
Использование
Функция NvM_MainFunction не имеет ни передаваемых параметров, ни возвращаемого значения (void NvM_MainFunction(void)) и объявлена через SchM_NvM.h ([SWS_NvM_00464]). Она служит для обработки заданий менеджера NVRAM ([SWS_NvM_00464], [SWS_NvM_00256]). После завершения асинхронного сервиса она выполняет сконфигурированные callback-процедуры для уведомления верхнего уровня ([SWS_NvM_00347]). Кроме того, она берёт на себя запрошенные в фоновом режиме перерасчёты CRC для блоков NVRAM ([SWS_NvM_00333]), например вследствие NvM_SetRamBlockStatus ([SWS_NvM_00121]) или NvM_ValidateAll ([SWS_NvM_00857]).
Управление последовательностью выполнения и приоритизация
Если это сконфигурировано, функция отслеживает очередь немедленного приоритета (Immediate-Priority-Queue) на наличие запросов с немедленным приоритетом ([SWS_NvM_00259]). Если регулярный запрос был деструктивно прерван немедленным заданием, NvM_MainFunction перезапускает его после его завершения ([SWS_NvM_00258]). При активном режиме опроса она проверяет статус заданий, переданных на нижний уровень ([SWS_NvM_00346]). Во время обработки NvM_WriteAll она циклически опрашивает состояние абстракции драйвера памяти через MemIf_GetStatus для MEMIF_BROADCAST_ID и задерживает callback-вызовы к верхнему уровню до тех пор, пока сообщается MEMIF_BUSY_INTERNAL ([SWS_NvM_00350]).
Обработка ошибок и повторные попытки
Если прикладные callback-функции завершаются сбоем, NvM_MainFunction управляет повторными попытками:
- Если
NvMReadRamBlockFromNvCallbackвозвращает значениеE_NOT_OK, модуль повторяет вызов в следующем циклеNvM_MainFunction([SWS_NvM_00839]). - Если
NvMWriteRamBlockToNvCallbackвозвращаетE_NOT_OK, повтор также происходит при следующем вызовеNvM_MainFunction([SWS_NvM_00840]). - Если явная callback-функция синхронизации при
NvM_SetRamBlockStatusвозвращаетE_NOT_OK, модуль выполняет сконфигурированные повторные попытки с одной попыткой на каждый вызовNvM_MainFunction([SWS_NvM_00908]).
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция NvM_SingleBlockCallbackFunction [SWS_NvM_00467] 📄 PDF
Std_ReturnType NvM_SingleBlockCallbackFunction (NvM_BlockRequestType BlockRequest, NvM_RequestResultType JobResult);
Per block callback routine to notify the upper layer that an asynchronous single block request has been finished.
Использование
Callback-процедура NvM_SingleBlockCallbackFunction синхронно уведомляет вышележащий уровень о завершении ранее запущенного асинхронного одноблочного запроса [SWS_NvM_00467].
Функция обрабатывает два передаваемых параметра [SWS_NvM_00467]:
BlockRequest(типNvM_BlockRequestType): передаёт вид ранее выполненного запроса блока, например операции чтения или записи [SWS_NvM_00467].JobResult(типNvM_RequestResultType): сообщает общий результат обработанного задания блока [SWS_NvM_00467].
В качестве возвращаемого значения функция передаёт тип Std_ReturnType [SWS_NvM_00467]. Об успешной обработке callback-функции сигнализирует возврат E_OK; любое другое возвращаемое значение указывает на неуспешное выполнение [SWS_NvM_00467].
Обработка ошибок и параллелизм
Интерфейс не специфицирует собственных сообщений об ошибках DET или DEM [SWS_NvM_00467]. Результат предыдущего задания передаётся через параметр JobResult, в то время как ошибки внутри самой обработки callback-функции передаются через возвращаемое значение функции [SWS_NvM_00467].
Что касается параллелизма, процедура объявлена как нереентерабельная (Non Reentrant) [SWS_NvM_00467]. Она предоставляется через заголовочный файл NvM_Externals.h [SWS_NvM_00467]. Вызов со стороны модуля NvM, вероятно, происходит синхронно в контексте задачи циклической обработки заданий NvM (интерпретация). Вопрос Q-f50640211851274f (открытый)
Данное указание по применению было сгенерировано ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция NvM_MultiBlockCallbackFunction [SWS_NvM_00468] 📄 PDF
Std_ReturnType NvM_MultiBlockCallbackFunction (NvM_MultiBlockRequestType MultiBlockRequest, NvM_RequestResultType JobResult);
Common callback routine to notify the upper layer that an asynchronous multi block request has been finished. Available v ia Nv M_ Externals.h
Callback-процедура NvM_MultiBlockCallbackFunction уведомляет вышестоящий уровень о том, что ранее инициированное асинхронное многоблочное задание было завершено [SWS_NvM_00468]. Объявление функции предоставляется через заголовочный файл NvM_Externals.h [SWS_NvM_00468].
Контекст вызова и параметры
Вызов со стороны менеджера NVRAM выполняется синхронно с обработкой в потоке выполнения [SWS_NvM_00468]. При вызове процедуре передаются два параметра:
MultiBlockRequest(типNvM_MultiBlockRequestType): обозначает конкретный тип запроса ранее обработанного многоблочного задания, например обращения на чтение или запись [SWS_NvM_00468].JobResult(типNvM_RequestResultType): передаёт окончательный результат обработки предыдущего многоблочного задания вышестоящему уровню [SWS_NvM_00468].
Возвращаемое значение и обработка ошибок
Процедура возвращает вызывающему модулю значение типа Std_ReturnType [SWS_NvM_00468]. Возвращаемое значение E_OK показывает, что callback-функция была успешно обработана; любое другое возвращаемое значение, напротив, сигнализирует о неудавшейся обработке [SWS_NvM_00468]. Специфические коды ошибок, сообщения DET или DEM в объёме спецификации для данной функции не определены. Интерпретация: конкретные последствия возвращаемого значения, отличного от E_OK, вероятно, зависят от реализации, поскольку стандарт не предписывает последующей обработки ошибок. Вопрос Q-462dea7f3074ae9c (открытый)
Параллелизм и ограничения
Функция специфицирована как нереентерабельная (Non Reentrant) [SWS_NvM_00468]. Поэтому внутри вызывающей системы необходимо гарантировать отсутствие параллельных или прерывающих многократных вызовов данного callback-интерфейса.
Этот текст сгенерирован ИИ на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
функция NvM_InitBlockCallbackFunction [SWS_NvM_00469] 📄 PDF
Std_ReturnType NvM_InitBlockCallbackFunction (NvM_InitBlockRequestType InitBlockRequest);
Per block callback routine which shall be called by the Nv M module when default data needs to be restored in RAM, and a RO M block is not configured. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_NVRAMManager
Использование и контекст вызова
Пользовательская callback-процедура NvM_InitBlockCallbackFunction вызывается модулем NvM, когда стандартные данные для блока NVRAM должны быть восстановлены в RAM и соответствующий ROM-блок не сконфигурирован [SWS_NvM_00469]. Вызов происходит синхронно, а интерфейс объявлен через заголовочный файл NvM_Externals.h [SWS_NvM_00469].
В качестве передаваемого параметра функция получает InitBlockRequest типа NvM_InitBlockRequestType [SWS_NvM_00469]. Это значение информирует процедуру о специфическом типе запроса текущего обрабатываемого блока, таком как чтение или восстановление данных (read, restore) [SWS_NvM_00469].
Возвращаемые значения и обработка ошибок
Процедура возвращает значение статуса типа Std_ReturnType [SWS_NvM_00469]:
E_OK: сигнализирует модулю NvM, что callback-функция успешно инициализировала и обработала данные в RAM [SWS_NvM_00469].- Любое другое возвращаемое значение: показывает, что инициализация не могла быть успешно завершена [SWS_NvM_00469].
Специфические коды ошибок для DET или DEM для самого интерфейса не специфицированы [SWS_NvM_00469].
Параллелизм и ограничения выполнения
Интерфейс определён как синхронный и нереентерабельный (Non Reentrant) [SWS_NvM_00469]. Поскольку менеджер NVRAM синхронно ожидает возврата функции, блокирующее выполнение внутри процедуры, вероятно, непосредственно остановит дальнейшую обработку NvM (интерпретация). Вопрос Q-c0e43c9871c4f2d0 (открытый)
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция NvM_WriteRamBlockToNvm [SWS_NvM_00539] 📄 PDF
Std_ReturnType NvM_WriteRamBlockToNvm (void* NvMBuffer);
Block specific callback routine which shall be called in order to let the application copy data from RAM block to Nv M module's mirror.
Специфичная для блока callback-функция NvM_WriteRamBlockToNvm служит для явной синхронизации с целью копирования данных приложения из RAM-блока во внутреннее RAM-зеркало модуля NvM [SWS_NvM_00539]. Она декларативно доступна через NvM_Externals.h и синхронно вызывается NvM [SWS_NvM_00539].
Использование и параметры
Функция передает в качестве выходного параметра указатель NvMBuffer, представляющий собой целевой адрес зеркала NvM, по которому должны быть записаны данные [SWS_NvM_00539]. В качестве возвращаемого значения callback-рутина возвращает E_OK при успешной обработке или любое другое значение в случае ошибки [SWS_NvM_00539].
Параллелизм и ограничения
Согласно спецификации NvM_WriteRamBlockToNvm спроектирована как нереентерабельная (Non Reentrant) [SWS_NvM_00539].
Взаимодействие в модуле
- При завершении работы задание
NvM_WriteAllсинхронизирует постоянные RAM-блоки или вызывает callback-рутинуNvM_WriteRamBlockToNvmдля явной синхронизации [SWS_NvM_00018], если параметрNvMSelectBlockForWriteAllдля блока NVRAM сконфигурирован какtrue[SWS_NvM_00252]. - Задания записи
NvM_WriteBlock[SWS_NvM_00303] иNvM_WritePRAMBlock[SWS_NvM_00803] автоматически валидируют еще недействительный постоянный RAM-блок после вызоваNvM_WriteRamBlockToNvm.
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция NvM_ReadRamBlockFromNvm [SWS_NvM_00540] 📄 PDF
Std_ReturnType NvM_ReadRamBlockFromNvm (const void* NvMBuffer);
Block specific callback routine which shall be called in order to let the application copy data from Nv M module's mirror to RAM block.
Функция NvM_ReadRamBlockFromNvm представляет собой специфичную для блока callback-рутину, объявляемую через NvM_Externals.h [SWS_NvM_00540]. Ее назначение состоит в том, чтобы позволить приложению скопировать данные из внутреннего буфера зеркала модуля NvM в соответствующий RAM-блок для выполнения явной синхронизации [SWS_NvM_00540], [SWS_NvM_00118].
Использование и семантика
- Контекст вызова и параллелизм: вызов выполняется синхронно и специфицирован как нереентерабельный (
Non Reentrant) [SWS_NvM_00540]. - Параметры: в качестве входного параметра служит указатель
NvMBuffer(типconst void*). Он передает адрес буфера, из которого данные могут быть прочитаны и скопированы в RAM-блок [SWS_NvM_00540]. - Возвращаемое значение и обработка ошибок: callback-функция возвращает
Std_ReturnType. Возвращаемое значениеE_OKсигнализирует об успешной обработке; любое другое возвращаемое значение указывает на неуспешную обработку [SWS_NvM_00540].
Взаимодействие
В рамках мультиблочной службы NvM_ReadAll функция NvM_ReadRamBlockFromNvm вызывается для тех блоков NVRAM для явной синхронизации, которые соответствующим образом сконфигурированы и для которых действует NvmSelectBlockForReadall == TRUE [SWS_NvM_00118], [SWS_NvM_00356]. Это представляет собой альтернативу прямому процессу копирования в постоянные RAM-блоки, тогда как NvM_ReadAll инициализирует административные данные блоков [SWS_NvM_00356].
Этот текст был сгенерирован системой ИИ на основе требований спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
тип NvM_ConfigType [SWS_NvM_00880] 📄 PDF
Configuration data structure of the Nv M module.
тип NvM_MultiBlockRequestType [SWS_NvM_91003] 📄 PDF
Identifies the type of request performed on multi block when signaled via the callback function or when reporting to Bsw M
Тип перечисления NvM_MultiBlockRequestType предоставляется через заголовочный файл NvM.h и служит для однозначного обозначения выполненного мультиблочного запроса [SWS_NvM_91003]. Данный тип используется, когда результат или статус мультиблочной операции передается через callback-функцию или сообщается модулю BswM [SWS_NvM_91003].
Диапазон значений и семантика
Перечисление определяет следующие значения для дифференциации мультиблочных заданий [SWS_NvM_91003]:
NVM_READ_ALL(0x00): указывает, что было выполненоNvM_ReadAll.NVM_WRITE_ALL(0x01): указывает, что было выполненоNvM_WriteAll.NVM_VALIDATE_ALL(0x02): указывает, что было выполненоNvM_ValidateAll.NVM_FIRST_INIT_ALL(0x03): указывает, что было выполненоNvM_FirstInitAll.NVM_CANCEL_WRITE_ALL(0x04): указывает, что было выполненоNvM_CancelWriteAll.
Взаимодействие
Благодаря передаче этого типа вызываемые callback-функции, а также BswM могут определить, какая конкретно мультиблочная служба вызвала уведомление. Интерпретация: предположительно, обратная связь в BswM служит для того, чтобы связать последующие действия или изменения состояния в общей системе с завершением определенных мультиблочных служб. Вопрос Q-69b4d985301acfeb (открытый)
Этот текст был сгенерирован ИИ и служит в качестве вспомогательного руководства. Определяющее значение имеют указанные спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
тип NvM_RequestResultType [SWS_NvM_00470] 📄 PDF
Type NvM_RequestResultType.
Тип NvM_RequestResultType основан на uint8, доступен через Rte_NvM_Type.h и отражает результат асинхронного запроса заданий на чтение, запись и управление менеджера NVRAM [SWS_NvM_00470]. Результат опрашивается преимущественно через API-службу NvM_GetErrorStatus и может дополнительно сигнализироваться через сконфигурированную функцию обратного вызова [SWS_NvM_00470].
Диапазон значений отображает различные состояния выполнения и случаи ошибок [SWS_NvM_00470]:
NVM_REQ_OK(0x00): последнее асинхронное задание успешно завершено; это также значение по умолчанию после сброса.NVM_REQ_NOT_OK(0x01): асинхронный запрос на чтение, запись или управление завершился неудачно.NVM_REQ_PENDING(0x02): асинхронный запрос в данный момент все еще находится в обработке.NVM_REQ_INTEGRITY_FAILED(0x03): ошибка целостности данных приNvM_ReadBlockилиNvM_ReadAll. В случаеNvM_ReadBlockсодержимое RAM-блока было изменено, однако стало недействительным; приложение несет ответственность за обновление и валидацию содержимого.NVM_REQ_BLOCK_SKIPPED(0x04): указанный блок был пропущен во времяNvM_ReadAllилиNvM_WriteAll(например, NVRAM-блоки наборов данных приNvM_ReadAllили блоки без постоянно сконфигурированного RAM-блока).NVM_REQ_NV_INVALIDATED(0x05): указанный NV-блок инвалидирован.NVM_REQ_CANCELED(0x06): отменаNvM_WriteAllпосредствомNvM_CancelWriteAllили отмена одноблочного задания (NvM_ReadBlock,NvM_WriteBlock,NvM_EraseNvBlock,NvM_InvalidateNvBlock,NvM_RestoreBlockDefaults) посредствомNvM_CancelJobs.NVM_REQ_RESTORED_DEFAULTS(0x08): значения по умолчанию были успешно скопированы в RAM-образ.
Во взаимодействии с избыточными блоками (NVM_BLOCK_REDUNDANT) функция NvM_InvalidateNvBlock устанавливает результат запроса NvM_RequestResultType в NVM_REQ_OK только тогда, когда оба NV-блока были инвалидированы [SWS_NvM_00274].
Этот текст был сгенерирован автоматически. Все данные основаны исключительно на требованиях спецификации версии AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип NvM_BlockIdType [SWS_NvM_00471] 📄 PDF
Identification of a NVRAM block via a unique block identifier. Reserved NVRAM block IDs: 0 - > to derive multi block request results via Nv M_ Get Error Status 1 - > redundant NVRAM block which holds the configuration ID
тип NvM_InitBlockRequestType [SWS_NvM_91123] 📄 PDF
Identifies the type of request performed on a block when signaled via the callback function
Тип данных NvM_InitBlockRequestType основан на uint8 и предоставляется через заголовочный файл Rte_NvM_Type.h [SWS_NvM_91123]. Он служит для идентификации типа запроса, выполненного над блоком NVRAM, при его передаче через соответствующую callback-функцию [SWS_NvM_91123].
Допустимый диапазон значений включает четыре типа запросов [SWS_NvM_91123]:
NVM_INIT_READ_BLOCK(0x00): указывает, что для блока было запрошеноNvM_ReadBlockилиNvM_ReadPRAMBlock[SWS_NvM_91123].NVM_INIT_RESTORE_BLOCK_DEFAULTS(0x01): сигнализирует о том, что для блока было запрошеноNvM_RestoreBlockDefaultsилиNvM_RestorePRAMBlockDefaults[SWS_NvM_91123].NVM_INIT_READ_ALL_BLOCK(0x02): указывает на то, что обработка блока происходит в рамкахNvM_ReadAll[SWS_NvM_91123].NVM_INIT_FIRST_INIT_ALL(0x03): обозначает обработку блока во время выполненияNvM_FirstInitAll[SWS_NvM_91123].
На основе этого значения перечисления вызываемая логика приложения может различать, идет ли речь о явном запросе для отдельного блока (чтение или восстановление стандартных значений) или об общей групповой операции во время запуска системы [SWS_NvM_91123]. Интерпретация: данный тип, вероятно, передается в качестве параметра в связанные с блоком callback-функции инициализации, чтобы приложение могло своевременно предоставить стандартные данные или выполнить специфическую подготовку в соответствии с ситуацией. Вопрос Q-42d0d469e305728e (открытый)
Это указание по использованию основано на спецификации AUTOSAR Classic Release R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип NvM_BlockRequestType [SWS_NvM_91002] 📄 PDF
Identifies the type of reques t performed on a block when signaled via the callback function
Тип перечисления NvM_BlockRequestType основан на uint8 и предоставляется через заголовочный файл Rte_NvM_Type.h [SWS_NvM_91002]. Он служит для передачи при уведомлении через callback-функцию типа запроса, который ранее был выполнен над блоком NVRAM [SWS_NvM_91002].
Диапазон значений охватывает шесть специфических запросов к блоку [SWS_NvM_91002]:
NVM_READ_BLOCK(0x00): сигнализирует о том, что для блока было выполненоNvM_ReadBlockилиNvM_ReadPRAMBlock[SWS_NvM_91002].NVM_WRITE_BLOCK(0x01): сигнализирует о том, что для блока было выполненоNvM_WriteBlockилиNvM_WritePRAMBlock[SWS_NvM_91002].NVM_RESTORE_BLOCK_DEFAULTS(0x02): сигнализирует о том, что было выполненоNvM_RestoreBlockDefaultsилиNvM_RestorePRAMBlockDefaults[SWS_NvM_91002].NVM_ERASE_NV_BLOCK(0x03): сигнализирует о том, что на блоке было выполненоNvM_EraseNvBlock[SWS_NvM_91002].NVM_INVALIDATE_NV_BLOCK(0x04): сигнализирует о том, что на блоке было выполненоNvM_InvalidateNvBlock[SWS_NvM_91002].NVM_READ_ALL_BLOCK(0x05): сигнализирует о том, чтоNvM_ReadAllзавершил обработку этого блока [SWS_NvM_91002].
В архитектуре приложения значение, вероятно, обрабатывается в качестве параметра в callback-рутинах для дифференцированного информирования вышестоящих программных компонентов о завершении определенных операций с блоком [SWS_NvM_91002]. Вопрос Q-467801b6b5e898a2 (открытый) Ввиду отсутствия дальнейших требований в полезных данных относительно кодов ошибок или параллелизма детали спецификации ограничиваются определением типа и диапазоном значений [SWS_NvM_91002].
Этот текст был создан ИИ; правильность не гарантируется.
Руководство разработчика реализации в подготовке (сложность I1)
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_NvM- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_NvM@rel:R20-11#c928f693- Content hash
c928f693- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_NVRAMManager.pdf#nameddest=SWS_NvM_00447
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал