diff options
| author | Alejandro Soto <alejandro@34project.org> | 2023-10-03 23:16:08 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2023-10-03 23:16:08 -0600 |
| commit | 3de42a19661a3d6d24de46ca2920b06e1dc88fe0 (patch) | |
| tree | acdd022a14d43d60dbfec1f4df8c634e0d080ec0 /demo/start.S | |
| parent | 1094451235282af6a9daba2b2a460577f82d289c (diff) | |
demo: initial commit
Diffstat (limited to 'demo/start.S')
| -rw-r--r-- | demo/start.S | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/demo/start.S b/demo/start.S new file mode 100644 index 0000000..6e5e457 --- /dev/null +++ b/demo/start.S @@ -0,0 +1,57 @@ +.section .interrupt_vector + +__reset: + b _start + +__undefined: + b undefined + +__swi: + b swi + +__prefetch_abort: + b prefetch_abort + +__data_abort: + b data_abort + +__reserved: + b . + +__irq: + b irq + +__fiq: + b . + +.text + +.global _start +_start: + ldr r0, =_boot_num + ldr r1, [r0] + add r2, r1, #1 + str r2, [r0] + ldr r2, =__cpus + lsl r3, r1, #2 + ldr ip, [r2, r3] + str r1, [ip] + ldr r2, =_stack_shift + lsl r1, r1, r2 + ldr sp, =_stack_begin + add sp, sp, r1 + mov lr, #0 + bl reset + b . + +_boot_num: + .word 0 + +irq: + subs pc, lr, #4 + +.weak undefined, swi, data_abort, prefetch_abort, irq +.set swi, __swi +.set undefined, __undefined +.set data_abort, __data_abort +.set prefetch_abort, __prefetch_abort |
