From 954c0f55a4471b974bae4fe8aab3600e6dac7ed3 Mon Sep 17 00:00:00 2001 From: "Israel B. Sant'Anna" <ibsa14@inf.ufpr.br> Date: Tue, 2 Jun 2015 23:43:44 -0300 Subject: [PATCH] =?UTF-8?q?Implementada=20parte=20de=20recep=C3=A7=C3=A3o?= =?UTF-8?q?=20do=20handler=20(incompleto)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Israel B. Sant'Anna <ibsa14@inf.ufpr.br> --- cMIPS/tests/handlerUART.s | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/cMIPS/tests/handlerUART.s b/cMIPS/tests/handlerUART.s index eef98d2..f9ad569 100644 --- a/cMIPS/tests/handlerUART.s +++ b/cMIPS/tests/handlerUART.s @@ -8,11 +8,25 @@ RX: lui $a0, %hi(HW_uart_addr) ori $a0, $a0, %lo(HW_uart_addr) lw $a1, 4($a0) # Read data - nop # and store it to UART's buffer - sw $a1, 4($k0) # and return from interrupt - addiu $a1, $zero, 1 - sw $a1, 8($k0) # Signal new arrival - # TODO: Read data, store it to buffer and decrement nrx (we're reading a char) + + lui $a0, %hi(rx_queue) + ori $a0, $a0, %lo(rx_queue) + sw $a1, 0($a0) # Put data on RX_queue + + lui $a0, %hi(rx_tl) + ori $a0, $a0, %lo(rx_tl) + lw $a1, 0($a0) # Read rx_tl + nop + addiu $a1, $a1, 1 # Increment rx_tl (shouldn't it be (rx_tl+1)%16 ?) + sw $a1, 0($a0) # Save rx_tl + + lui $a0, %hi(nrx) + ori $a0, $a0, %lo(nrx) + lw $a1, 0($a0) # Read nrx + nop + addiu $a1, $a1, 1 # Increment nrx + sw $a1, 0($a0) # Save incremented nrx + TX: andi $a0, $k1, UART_tx_irq # Is this transmission? beq $a0, $zero, END # no, end handler -- GitLab