diff options
author | Wojtek Kosior <kwojtus@protonmail.com> | 2020-01-03 04:53:01 +0100 |
---|---|---|
committer | Wojtek Kosior <kwojtus@protonmail.com> | 2020-01-03 04:53:01 +0100 |
commit | ffb2c4adfb8e65e355b39abd39d994eebc649c98 (patch) | |
tree | 760ef43f89b480ecd0be4bfd9312eb0d8c744d05 /interrupt_vector.S | |
parent | 6bf5a3b8c6e8a5d1cb3fb4880a5d9688ab094c62 (diff) | |
download | rpi-MMU-example-ffb2c4adfb8e65e355b39abd39d994eebc649c98.tar.gz rpi-MMU-example-ffb2c4adfb8e65e355b39abd39d994eebc649c98.zip |
add (not yet fully working - it can only send through uart now) interrupt-driven uart together with "scheduler"
Diffstat (limited to 'interrupt_vector.S')
-rw-r--r-- | interrupt_vector.S | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/interrupt_vector.S b/interrupt_vector.S index af80eec..9404839 100644 --- a/interrupt_vector.S +++ b/interrupt_vector.S @@ -20,10 +20,11 @@ undef_handler_caller: svc_handler_caller: ldr sp, =_supervisor_stack_top - push {r5, lr} + push {r0-r12, lr} + mov r0, sp ldr r5, =supervisor_call_handler blx r5 - ldm sp!, {r5, pc} ^ + ldm sp!, {r0-r12, pc} ^ abort_handler_caller: ldr sp, =_supervisor_stack_top @@ -38,10 +39,11 @@ generic_handler_caller: irq_handler_caller: ldr sp, =_irq_stack_top sub lr, #4 - push {r0-r3, lr} + push {r0-r12, lr} + mov r0, sp ldr r3, =irq_handler blx r3 - ldm sp!, {r0-r3, pc} ^ + ldm sp!, {r0-r12, pc} ^ fiq_handler_caller: ldr sp, =_fiq_stack_top |