Sleep vs stop mode

What is the technical difference between “sleep” and “stop” modes? I might guess that a “stop” mode configured to be started by interrupt only could disable some clock and save a little more power…

Is there any difference on where the code starts running, memory, etc?

There are different sleep modes in Particle jargon, but they are acutally

  • not sleep at all, but timied radio off, with your code still running, or
  • what’s called Stop Mode in the ARM world, where the µC just “freezes” and powers down what’s not required but will carry on running from where it froze with all RAM preserved, and finally
  • what’s called deep sleep (or Standby in ARM terms), where only some special registers and a few LB of RAM are preserved and code will be executed from the beginning

Further detail can be found in the docs and datasheets of the STM32F2xx µC