]> git.zerfleddert.de Git - proxmark3-svn/blob - bootrom/flash-reset.s
Hopefully correct code for C's strict aliasing rules
[proxmark3-svn] / bootrom / flash-reset.s
1 .extern CopyBootToRAM
2
3 .section .startup,"ax"
4 .code 32
5 .align 0
6
7 .global flashstart
8 flashstart:
9 b Reset
10 b UndefinedInstruction
11 b SoftwareInterrupt
12 b PrefetchAbort
13 b DataAbort
14 b Reserved
15 b Irq
16 b Fiq
17
18 Reset:
19 ldr sp, .stack_end @ initialize stack pointer to top of RAM
20 bl CopyBootToRAM @ copy bootloader to RAM (in case the
21 @ user re-flashes the bootloader)
22 ldr r3, .bootphase2_start @ start address of RAM bootloader
23 bx r3 @ jump to it
24
25 .stack_end:
26 .word _stack_end
27 .bootphase2_start:
28 .word __bootphase2_start__
29
30 Fiq:
31 b Fiq
32 UndefinedInstruction:
33 b UndefinedInstruction
34 SoftwareInterrupt:
35 b SoftwareInterrupt
36 PrefetchAbort:
37 b PrefetchAbort
38 DataAbort:
39 b DataAbort
40 Reserved:
41 b Reserved
42 Irq:
43 b Irq
Impressum, Datenschutz