PIOS_Flash_Jedec_EraseChip is called during early
init when the table_magic has changed. This call
happens on CC/CC3D prior to the OS being initialized
so it is not OK to call vTaskDelay() yet.
This was leading to boards locking up (no flashing blue
LED) immediately after jumping to the application when
the table_magic had changed or was being init'd for the
very first time.
flash so it says completed. However, it still blocks the system for a long
time. During an erase the heartbeat will flash at 10 Hz to indicate what's
happening.
This still blocks telemetry even after lowering hte system priority (and there
is a vTaskDelay) which makes me think that the SPI bus being locked is blocking
Sensors or somethign else. This should not be permited when the system is
armed.
The reason the system locks up during the erase is that the file system
operations occur within the event dispatcher thread. It is very bad practice
for anything to block this (i.e. callbacks should never take very long). We
should probably move the object persistence handling into the system thread or
something but that can be a separate issue.