I can't clearly remember when I last did a 'factory reset', but it was probably around the time I upgraded from 2v12 to 2v13. From memory my 2v12 had crashed with 'storage corrupt' and when it finished erasing and restarting I upgraded to 2v13 before restoring my apps and stuff.
I don't really understand how corruption that might have occurred days or even weeks ago can end up with such fatal results - complete erasure of the watch. If you're going to be writing to some new part of the memory, wouldn't it get erased first? That's how I handle Flash chips in my data logger. When the write routines get to the first address of an erasable block, that block is erased before the writes continue.
However, I recognise that emulating a file system is quite different from simple linear data logging.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
I can't clearly remember when I last did a 'factory reset', but it was probably around the time I upgraded from 2v12 to 2v13. From memory my 2v12 had crashed with 'storage corrupt' and when it finished erasing and restarting I upgraded to 2v13 before restoring my apps and stuff.
I don't really understand how corruption that might have occurred days or even weeks ago can end up with such fatal results - complete erasure of the watch. If you're going to be writing to some new part of the memory, wouldn't it get erased first? That's how I handle Flash chips in my data logger. When the write routines get to the first address of an erasable block, that block is erased before the writes continue.
However, I recognise that emulating a file system is quite different from simple linear data logging.