  After power is switched on, recovering the interrupted program from the
initial state can cause negative impact. Some programs are even unrecoverable.
To rapid recovery of program execution under power failures, the execution
states of checkpoints are backed up by NVM under power failures for embedded
systems with NVM. However, frequent checkpoints will shorten the lifetime of
the NVM and incur significant write overhead. In this paper, the technique of
checkpoint setting triggered by function calls is proposed to reduce the write
on NVM. The evaluation results show an average of 99.8% and 80.5$% reduction on
NVM backup size for stack backup, compared to the log-based method and
step-based method. In order to better achieve this, we also propose
pseudo-function calls to increase backup points to reduce recovery costs, and
exponential incremental call-based backup methods to reduce backup costs in the
loop. To further avoid the content on NVM is cluttered and out of NVM, a method
to clean the contents on the NVM that are useless for restoration is proposed.
Based on aforementioned problems and techniques, the recovery technology is
proposed, and the case is used to analyze how to recover rapidly under
different power failures.
