aboutsummaryrefslogtreecommitdiff
path: root/PL0_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'PL0_test.c')
-rw-r--r--PL0_test.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/PL0_test.c b/PL0_test.c
index 32addf8..2e008a2 100644
--- a/PL0_test.c
+++ b/PL0_test.c
@@ -1,18 +1,25 @@
#include "uart.h"
#include "psr.h"
+// entry point - must remain the only function in the file!
void PL0_main(void)
{
- // if all went correct, Success! gets printed
+ // If all went correct, Success! gets printed
uart_puts("Success!\n\r");
- // if we're indeed i PL0, we should crash now, when trying to access
+ uart_puts("calling supervisor\n\r");
+
+ asm volatile("svc #0");
+
+ uart_puts("back from supervisor call\n\r");
+
+ // if we're indeed in PL0, we should crash now, when trying to access
// memory we're not allowed to
char first_kernel_byte[2];
- first_kernel_byte[0] = *(char*) ((uint32_t) 0x8000);
+ first_kernel_byte[0] = *(char*) ((uint32_t) 0x0);
first_kernel_byte[1] = '\0';
-
+
uart_puts(first_kernel_byte);
while (1)