I'm working on a SoC that can power-off the ARM (Cortex-M4) while retaining the system RAM, and I'm interested in saving the processor state then restoring it when the ARM is restarted. So prior to power-off the software would save all necessary register values to RAM, then during boot rather than performing a regular application start-up the software would reload the saved values.
I know I would need to save and restore core registers, plus system control, NVIC, systick, and perhaps other things, though I'm not sure of the full list.
The infocenter has a document detailing this for the ARM11 processor, but I haven't found any discussion or code for the M4.
My questions are:
Is this already implemented on M4 (perhaps somewhere like in CMSIS, FreeRTOS, or a published example)?
If not, is there documentation on how to do this on M4? (I searched google and the arm infocenter without success)
If not, would the "Cortex-M4 Technical Reference Manual" identify all the registers I need to save? Or are there more?