mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-02-17 01:52:02 +00:00
embed: add shutdown function to fatal_error
This commit is contained in:
parent
5ea75b469f
commit
b60a1ad79f
@ -4,8 +4,9 @@
|
||||
#include "display.h"
|
||||
#include "rng.h"
|
||||
|
||||
void shutdown(void);
|
||||
|
||||
void __attribute__((noreturn)) __fatal_error(const char *expr, const char *msg, const char *file, int line, const char *func) {
|
||||
for (volatile uint32_t delay = 0; delay < 10000000; delay++) {}
|
||||
display_orientation(0);
|
||||
display_backlight(255);
|
||||
display_print_color(COLOR_WHITE, COLOR_RED128);
|
||||
@ -27,6 +28,7 @@ void __attribute__((noreturn)) __fatal_error(const char *expr, const char *msg,
|
||||
#define STR(s) #s
|
||||
display_printf("rev : %s\n", XSTR(GITREV));
|
||||
#endif
|
||||
shutdown();
|
||||
for (;;);
|
||||
}
|
||||
|
||||
|
@ -62,4 +62,33 @@ jump_to:
|
||||
ldr r12, =0
|
||||
bx r0
|
||||
|
||||
.global shutdown
|
||||
.type shutdown, STT_FUNC
|
||||
shutdown:
|
||||
cpsid f
|
||||
ldr r0, =ccmram_start
|
||||
ldr r1, =ccmram_end
|
||||
ldr r2, =0
|
||||
bl memset_reg
|
||||
ldr r0, =sram_start
|
||||
ldr r1, =sram_end
|
||||
ldr r2, =0
|
||||
bl memset_reg
|
||||
ldr lr, =0xffffffff
|
||||
ldr r0, =0
|
||||
ldr r1, =0
|
||||
ldr r2, =0
|
||||
ldr r3, =0
|
||||
ldr r4, =0
|
||||
ldr r5, =0
|
||||
ldr r6, =0
|
||||
ldr r7, =0
|
||||
ldr r8, =0
|
||||
ldr r9, =0
|
||||
ldr r10, =0
|
||||
ldr r11, =0
|
||||
ldr r12, =0
|
||||
|
||||
b . // loop forever
|
||||
|
||||
.end
|
||||
|
Loading…
Reference in New Issue
Block a user