aboutsummaryrefslogtreecommitdiff
path: root/interrupt_vector.S
diff options
context:
space:
mode:
authorWojtek Kosior <kwojtus@protonmail.com>2019-12-28 23:25:05 +0100
committerWojtek Kosior <kwojtus@protonmail.com>2019-12-28 23:25:05 +0100
commita910d10349593fce9f5f28f0de4f27ba85cd7df2 (patch)
tree3c682f3e6dafd1ec54a88e177447b766de56db7c /interrupt_vector.S
parent68478311d11406e9452ae7fc2cf6e7405fb9c4d6 (diff)
downloadrpi-MMU-example-a910d10349593fce9f5f28f0de4f27ba85cd7df2.tar.gz
rpi-MMU-example-a910d10349593fce9f5f28f0de4f27ba85cd7df2.zip
enter and exit supervisor call (+ fixed jumping to PL0 for the first time - setting sp was broken there)
Diffstat (limited to 'interrupt_vector.S')
-rw-r--r--interrupt_vector.S4
1 files changed, 3 insertions, 1 deletions
diff --git a/interrupt_vector.S b/interrupt_vector.S
index 6037b7c..88b32bf 100644
--- a/interrupt_vector.S
+++ b/interrupt_vector.S
@@ -21,7 +21,9 @@ undef_handler_caller:
svc_handler_caller:
ldr sp, =_stack_top
ldr r5, =supervisor_call_handler
- bx r5
+ push {lr}
+ blx r5
+ ldm sp!, {pc} ^
abort_handler_caller:
ldr sp, =_stack_top