== Adaptive Blocks == Adaptive blocks allow the application to store values in [[NVM]]. to be retained and retrieved between [[ECU]] cycles. The different types are as follows: * scalar * 1D lookup and interpolation map * 2D lookup and interpolation map * array with read and write functionality === NVM storage === The adaptive values get copied into RAM when the application starts and the application can read and modify the values. When the calculate cheksum request is made by the application, the [[ECU]] copies the new values back into [[NVM]] so that they can be used next time the application starts. * The adaptive blockset is [[doc_user/openecu_user_guide_simulink_chunk/nvblocks.html|detailed in the user guide]]. * An [[Example Models#NVM_demo|example model]] is provided by the platform. === NVM erase === The NVM data is checked each time the application starts. The NVM values will be erased and set to application defaults '''if''': * the checksum is invalid (corrupted memory) * The application version number is updated (outdated memory) * the memory size is different (outdated memory)