* Add traceback after watchdog timeout
Add the cpability to perform a traceback following a watchdog timeout.
* Enhanced hardware SPI
Allow use of either SSP0 or SSP1.
Ensure that no data is left in I/O buffers after calls to enable sharing of SSP hardware.
* Make flash emulation of eeprom the default
Make use of flash for eeprom storage the default. This means that usage of eeprom will not cause USB drive mount/unmount operations.
* Allow sharing of SD card
SD card I/O operations from the USB stack take place in idle loop, rather than at interrupt time. Allowing sharing of the SPI bus.
New configuration options to allow usage of the SD card to be specified.
* Fix problem with hardware SPI pins
The current Marlin implementation relies on a timer interrupt to start the ADC conversion and read it. However in some circumstances the interrupt can be delayed resulting in insufficient time being available for the ADC conversion. This results in a bad reading and false temperature fluctuations. These changes make sure that the conversion is complete (by checking the ADC hardware via the HAL) before reading a value.
See: https://github.com/MarlinFirmware/Marlin/issues/11323