[Core] Add Reboot keycode to core (#15990)
This commit is contained in:
parent
425c54cf8c
commit
787a68948f
25 changed files with 124 additions and 5 deletions
|
@ -31,3 +31,10 @@ __attribute__((weak)) void bootloader_jump(void) {
|
|||
for (;;)
|
||||
;
|
||||
}
|
||||
|
||||
__attribute__((weak)) void mcu_reset(void) {
|
||||
// watchdog reset
|
||||
wdt_enable(WDTO_250MS);
|
||||
for (;;)
|
||||
;
|
||||
}
|
||||
|
|
|
@ -37,3 +37,12 @@ __attribute__((weak)) void bootloader_jump(void) {
|
|||
while (1) {
|
||||
}
|
||||
}
|
||||
|
||||
__attribute__((weak)) void mcu_reset(void) {
|
||||
// setup watchdog timeout
|
||||
wdt_enable(WDTO_60MS);
|
||||
|
||||
// wait for watchdog timer to trigger
|
||||
while (1) {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,5 +15,14 @@
|
|||
*/
|
||||
|
||||
#include "bootloader.h"
|
||||
#include <avr/wdt.h>
|
||||
|
||||
__attribute__((weak)) void bootloader_jump(void) {}
|
||||
__attribute__((weak)) void mcu_reset(void) {
|
||||
// setup watchdog timeout
|
||||
wdt_enable(WDTO_60MS);
|
||||
|
||||
// wait for watchdog timer to trigger
|
||||
while (1) {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,8 +34,15 @@ __attribute__((weak)) void bootloader_jump(void) {
|
|||
UCSR1B = 0;
|
||||
_delay_ms(5); // 5 seems to work fine
|
||||
|
||||
// watchdog reset
|
||||
reset_key = BOOTLOADER_RESET_KEY;
|
||||
// watchdog reset
|
||||
wdt_enable(WDTO_250MS);
|
||||
for (;;)
|
||||
;
|
||||
}
|
||||
|
||||
__attribute__((weak)) void mcu_reset(void) {
|
||||
// watchdog reset
|
||||
wdt_enable(WDTO_250MS);
|
||||
for (;;)
|
||||
;
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include "bootloader.h"
|
||||
|
||||
#include <avr/interrupt.h>
|
||||
#include <avr/wdt.h>
|
||||
#include <util/delay.h>
|
||||
|
||||
__attribute__((weak)) void bootloader_jump(void) {
|
||||
|
@ -126,3 +127,12 @@ __attribute__((weak)) void bootloader_jump(void) {
|
|||
asm volatile("jmp 0x1FC00");
|
||||
#endif
|
||||
}
|
||||
|
||||
__attribute__((weak)) void mcu_reset(void) {
|
||||
// setup watchdog timeout
|
||||
wdt_enable(WDTO_60MS);
|
||||
|
||||
// wait for watchdog timer to trigger
|
||||
while (1) {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,3 +54,12 @@ __attribute__((weak)) void bootloader_jump(void) {
|
|||
#endif
|
||||
[bootaddrme] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 8) & 0xff), [bootaddrlo] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 0) & 0xff));
|
||||
}
|
||||
|
||||
__attribute__((weak)) void mcu_reset(void) {
|
||||
// setup watchdog timeout
|
||||
wdt_enable(WDTO_15MS);
|
||||
|
||||
// wait for watchdog timer to trigger
|
||||
while (1) {
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue