aboutsummaryrefslogtreecommitdiff
path: root/demo_functionality.c
diff options
context:
space:
mode:
authorWojtek Kosior <kwojtus@protonmail.com>2020-01-02 13:24:29 +0100
committerWojtek Kosior <kwojtus@protonmail.com>2020-01-02 13:24:29 +0100
commit3941fe97783c7a31ab04fbfb127f5026dd31ef78 (patch)
tree523b0b1d626969c3eb52545b672ca909dd5ae31b /demo_functionality.c
parentea465f85cf7a47f488332509a2f6d7ae5c88057c (diff)
downloadrpi-MMU-example-3941fe97783c7a31ab04fbfb127f5026dd31ef78.tar.gz
rpi-MMU-example-3941fe97783c7a31ab04fbfb127f5026dd31ef78.zip
demo of arm timer irq
Diffstat (limited to 'demo_functionality.c')
-rw-r--r--demo_functionality.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/demo_functionality.c b/demo_functionality.c
index 3cf5b8f..a2d8550 100644
--- a/demo_functionality.c
+++ b/demo_functionality.c
@@ -5,6 +5,7 @@
#include "ramfs.h"
#include "strings.h"
#include "paging.h"
+#include "armclock.h"
void demo_paging_support(void)
{
@@ -120,10 +121,13 @@ void demo_go_unprivileged(void)
PSR_t new_SPSR = read_CPSR();
new_SPSR.fields.PSR_MODE_4_0 = MODE_USER;
+ new_SPSR.fields.PSR_IRQ_MASK_BIT = 0;
write_SPSR(new_SPSR);
puts("All ready, jumping to PL0 code");
+ armclk_set_timer_match_timeout(0x00100000);
+
asm volatile("cps %[sysmode]\n\r"
"mov sp, %[stackaddr]\n\r"
"cps %[supmode]\n\r"