From b5021c723a5ee267982c4779bb1b1d644e4d2d5c Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Tue, 22 Feb 2022 23:27:39 -0700 Subject: Started multithreading --- src/sys/kernel.S | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/sys') diff --git a/src/sys/kernel.S b/src/sys/kernel.S index 3ffc6a5..6452a4f 100644 --- a/src/sys/kernel.S +++ b/src/sys/kernel.S @@ -1,11 +1,19 @@ .section ".text.kernel" +.include "macros.inc" + .globl kernel_main kernel_main: ///https://wiki.osdev.org/ARM_Paging // Query the ID_MMFR0 register mrc p15, 0, r0, c0, c1, 4 bl sysinit + + assign_ctask testf, 2 + assign_ctask testf, 1 + assign_ctask testf, 2 + assign_ctask testf, 3 + assign_ctask testf, 1 // Intentional undefined instruction // .word 0xf7f0a000 cpsie aif, #0x10 @@ -13,3 +21,27 @@ kernel_main: 1: wfe b 1b + +testf: + push {lr} + cmp r0, #2 + blo 1f + beq 2f + bgt 3f +1: + ldr r0, =t1 + bl uart_print + pop {pc} +2: + ldr r0, =t2 + bl uart_print + pop {pc} +3: + ldr r0, =t3 + bl uart_print + pop {pc} + +.section .data +t1: .asciz "C1\n" +t2: .asciz "C2\n" +t3: .asciz "C3\n" -- cgit v1.2.1