From 0d37ddacb2f2e787ea1aa1878e0e5e39253f507b Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Fri, 3 Dec 2021 10:46:47 -0700 Subject: Added functionality to start and stop timer --- src/cpu/irq.S | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/cpu') diff --git a/src/cpu/irq.S b/src/cpu/irq.S index 53a749e..5b1ec43 100644 --- a/src/cpu/irq.S +++ b/src/cpu/irq.S @@ -24,13 +24,32 @@ a_irq_handler: movt r2, #0x3F20 ldrb r0, [r2] push {r0} - bl enable_irq + + // If 't' was pressed + // disable timer + cmp r0, #0x74 + bne a_irq_handler.ttimer + mrc p15, #0, r0, c14, c3, #1 + cmp r0, #0 + beq a_irq_handler.etimer + // Disable + bl disable_cntv + b a_irq_handler.ttimer +a_irq_handler.etimer: + // Enable + ldr r0, =cntfrq + bl write_cntv_tval + bl enable_cntv + // Otherwise continue +a_irq_handler.ttimer: pop {r0} bl uart_char ldr r0, =imsg bl uart_string + bl enable_irq pop {pc} a_irq_handler.timer: + // r2 = CORE0_INTERRUPT_SOURCE // if r2 & 0b1000 mov r2, #0x40000000 -- cgit v1.2.1