From 524649007feb5f978fca83b5c885cd58481e0969 Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Sat, 13 Nov 2021 00:12:01 -0700 Subject: Fixed FIQ --- README.md | 4 +--- src/boot.S | 11 +++++++---- src/kernel.S | 20 ++++++++++---------- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index c48b8c5..76ef104 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,2 @@ -This simple example uart rx interrupt on QEMU raspi2 model. -This program only supports QEMU raspi2 model, and does not work on real hardware. - +https://datasheets.raspberrypi.com/bcm2835/bcm2835-peripherals.pdf diff --git a/src/boot.S b/src/boot.S index 17cc794..89a99cc 100644 --- a/src/boot.S +++ b/src/boot.S @@ -59,6 +59,11 @@ irq: pop {r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} subs pc, lr, #4 +fiq: + push {r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} + pop {r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} + subs pc, lr, #4 + .globl io_halt io_halt: wfi @@ -76,7 +81,7 @@ disable_irq: .globl enable_fiq enable_fiq: - cpsie i + cpsie f bx lr .globl disable_fiq @@ -102,9 +107,7 @@ prefetch_handler: .word io_halt data_handler: .word io_halt unused_handler: .word io_halt irq_handler: .word irq -fiq_handler: .word io_halt -//irq_handler: .word io_halt -//fiq_handler: .word irq +fiq_handler: .word fiq .global a_irq_handler a_irq_handler: diff --git a/src/kernel.S b/src/kernel.S index f82d624..292fa84 100644 --- a/src/kernel.S +++ b/src/kernel.S @@ -7,16 +7,16 @@ kernel_main: bl enable_irq ldr r0, =os_info bl uart_string - mov r0, #0x00 -kernel_main.a: - cmp r0, #0x100 - beq kernel_main.b - bl uart_char - add r0, #1 - b kernel_main.a -kernel_main.b: - mov r0, #0x0A - bl uart_char +// mov r0, #0x00 +//kernel_main.a: +// cmp r0, #0x100 +// beq kernel_main.b +// bl uart_char +// add r0, #1 +// b kernel_main.a +//kernel_main.b: +// mov r0, #0x0A +// bl uart_char kernel_main.loop: bl io_halt b kernel_main.loop -- cgit v1.2.1