The ROM contains a simple serial bootloader that by default is run on a blank device. Users can elect to run the serial bootloader before their application once one is programmed (unless using their own user bootloader or not using a bootloader). The ROM serial bootloader:
- Implements a set of commands for programming/erasing/verifying flash (similar to SACI but slightly simplified)
- These commands can be accessed over UART or SPI. Whichever interface sees activity first is selected from there on out. UART has an autobaud feature and can detect the baud rate within the range from 9600 to 1.6Mbaud.
- Supports multiple different UART/SPI pin-mapping options for increased flexibility (default is available on all package options, this may not be true for all mapping options)
- Supports selecting any DIO pin as a trigger pin and selecting which logic level triggers the bootloader. Otherwise, the bootloader continues to the application (if one exists) immediately.