embox
1/**
2* @file
3*
4* @date 08.10.2020
5* @author Alexander Kalmuk
6*/
7
8.syntax unified
9.arch armv8-m.main
10
11.equ RESET_STAT_REG, 0x500000BC
12
13.section text_retained
14.thumb
15.thumb_func
16.align 2
17.globl wakeup_reset_handler
18.type wakeup_reset_handler, %function
19wakeup_reset_handler:
20ldr r1, =RESET_STAT_REG
21ldr r2, [r1]
22cbnz r2, .cold_reset /* if RESET_STAT_REG != 0 then jump to .cold_reset */
23
24ldr r3, =wakeup_from_deepsleep
25bx r3
26.cold_reset:
27ldr r3, =start
28bx r3
29.size wakeup_reset_handler, . - wakeup_reset_handler
30
31.section .text
32.thumb
33.thumb_func
34.align 2
35.globl set_wakeup_reset_handler
36.type set_wakeup_reset_handler, %function
37set_wakeup_reset_handler:
38ldr r0, =0x20000004
39ldr r1, =wakeup_reset_handler
40str r1, [r0]
41bx lr
42.size set_wakeup_reset_handler, . - set_wakeup_reset_handler
43