add watch_reset_to_bootloader function (resolves #81)

This commit is contained in:
Joey Castillo 2022-08-14 15:23:19 -05:00
parent e790a02578
commit 7fc4395298
3 changed files with 14 additions and 0 deletions

View File

@ -45,3 +45,9 @@ bool watch_is_buzzer_or_led_enabled(void){
bool watch_is_usb_enabled(void) { bool watch_is_usb_enabled(void) {
return USB->DEVICE.CTRLA.bit.ENABLE; return USB->DEVICE.CTRLA.bit.ENABLE;
} }
void watch_reset_to_bootloader(void) {
volatile uint32_t *dbl_tap_ptr = ((volatile uint32_t *)(HSRAM_ADDR + HSRAM_SIZE - 4));
*dbl_tap_ptr = 0xf01669ef; // from the UF2 bootloaer: uf2.h line 255
NVIC_SystemReset();
}

View File

@ -80,6 +80,10 @@ bool watch_is_buzzer_or_led_enabled(void);
*/ */
bool watch_is_usb_enabled(void); bool watch_is_usb_enabled(void);
/** @brief Resets in the UF2 bootloader mode
*/
void watch_reset_to_bootloader(void);
/** @brief Reads up to len bytes from the USB serial. /** @brief Reads up to len bytes from the USB serial.
* @param file ignored, you can pass in 0 * @param file ignored, you can pass in 0
* @param ptr pointer to a buffer of at least len bytes * @param ptr pointer to a buffer of at least len bytes

View File

@ -7,3 +7,7 @@ bool watch_is_buzzer_or_led_enabled(void) {
bool watch_is_usb_enabled(void) { bool watch_is_usb_enabled(void) {
return true; return true;
} }
void watch_reset_to_bootloader(void) {
// No bootloader in the simulator; nothing to do here
}