embox

Форк
0
/
deepsleep_wakeup.S 
42 строки · 872.0 Байт
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
19
wakeup_reset_handler:
20
	ldr     r1, =RESET_STAT_REG
21
	ldr     r2, [r1]
22
	cbnz    r2, .cold_reset            /* if RESET_STAT_REG != 0 then jump to .cold_reset */
23

24
	ldr     r3, =wakeup_from_deepsleep
25
	bx      r3
26
.cold_reset:
27
	ldr     r3, =start
28
	bx      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
37
set_wakeup_reset_handler:
38
	ldr     r0, =0x20000004
39
	ldr     r1, =wakeup_reset_handler
40
	str     r1, [r0]
41
	bx      lr
42
.size   set_wakeup_reset_handler, . - set_wakeup_reset_handler
43

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.