nvramManualUpdateBlocked

nvramManualUpdateBlocked

Function

Starts a manual update of the NVRAM content (blocking on the current priority).

Syntax

uint32 nvramManualUpdateBlocked(uint32 timeoutUs)

Description

This function starts a manual update of the NVRAM content. Manual update has precedence over the automatic periodical update. Thus, a potentially running periodical update is aborted. But if cyclic update is on the way (the Idle task is interrupted by a preemptive task with the call of this function), start of manual update is impossible This function blocks on the current priority until all NV variable contents have been written to the local buffer or until a time-out occurred. After the function has returned, the update process (writing from local buffer into the NVRAM) is continued in the Idle task (even if a time-out occurred). The completion of the update process can be tested via the function nvramCheckRunningUpdate().

Because interrupts are not suspended during this process, a preemptive task with higher priority might interrupt the update process. This could lead to data inconsistencies if this task modifies any NV variable contents.

Note

It is not recommended to use this function when automatic update is enabled.

Return code

EC_NVRAM_SUCCESS

Success

EC_NVRAM_NO_NV_VARIABLES

No NV variables inside the model

EC_NVRAM_FATAL_ERROR

Fatal error occurred before

EC_NVRAM_OVERFLOW

Overflow of NVRAM. Reduce Number / Size of NV variables.

EC_NVRAM_UPDATE_RUNNING

Other Update process (manual or cyclic) is currently running. Start of manual update failed.

Parameter

timeoutUs

Time-out period in ms

Example

---

See also

nvramManualUpdateExit, nvramManualUpdateBackground, nvramCheckRunningUpdate