From 3de42a19661a3d6d24de46ca2920b06e1dc88fe0 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Tue, 3 Oct 2023 23:16:08 -0600 Subject: demo: initial commit --- demo/start.S | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 demo/start.S (limited to 'demo/start.S') 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 -- cgit v1.2.3