summaryrefslogtreecommitdiff
path: root/ports/stm32/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'ports/stm32/main.c')
-rw-r--r--ports/stm32/main.c26
1 files changed, 3 insertions, 23 deletions
diff --git a/ports/stm32/main.c b/ports/stm32/main.c
index 875584be8..54d9b05be 100644
--- a/ports/stm32/main.c
+++ b/ports/stm32/main.c
@@ -97,41 +97,21 @@ STATIC pyb_uart_obj_t pyb_uart_repl_obj;
STATIC uint8_t pyb_uart_repl_rxbuf[MICROPY_HW_UART_REPL_RXBUF];
#endif
-void NORETURN __fatal_error(const char *msg) {
- for (volatile uint delay = 0; delay < 10000000; delay++) {
- }
- led_state(1, 1);
- led_state(2, 1);
- led_state(3, 1);
- led_state(4, 1);
- mp_hal_stdout_tx_strn("\nFATAL ERROR:\n", 14);
- mp_hal_stdout_tx_strn(msg, strlen(msg));
- for (uint i = 0;;) {
- led_toggle(((i++) & 3) + 1);
- for (volatile uint delay = 0; delay < 10000000; delay++) {
- }
- if (i >= 16) {
- // to conserve power
- __WFI();
- }
- }
-}
-
void nlr_jump_fail(void *val) {
printf("FATAL: uncaught exception %p\n", val);
mp_obj_print_exception(&mp_plat_print, MP_OBJ_FROM_PTR(val));
- __fatal_error("");
+ MICROPY_BOARD_FATAL_ERROR("");
}
void abort(void) {
- __fatal_error("abort");
+ MICROPY_BOARD_FATAL_ERROR("abort");
}
#ifndef NDEBUG
void MP_WEAK __assert_func(const char *file, int line, const char *func, const char *expr) {
(void)func;
printf("Assertion '%s' failed, at file %s:%d\n", expr, file, line);
- __fatal_error("");
+ MICROPY_BOARD_FATAL_ERROR("");
}
#endif