diff --git a/cMIPS/include/handlers.s b/cMIPS/include/handlers.s index 4954400dcb8f733560805c03649d8b5477af3ac8..05e674a9a44779581372cafea3724adc770c6d63 100644 --- a/cMIPS/include/handlers.s +++ b/cMIPS/include/handlers.s @@ -10,13 +10,13 @@ #================================================================ # interrupt handler for external counter attached to IP5=HW3 # for extCounter address see vhdl/packageMemory.vhd - + # .bss .align 2 - .global _counter_val # accumulate number of interrupts - .comm _counter_val 4 - .comm _counter_saves 8*4 # area to save up to 8 registers - # _counter_saves[0]=$a0, [1]=$a1, [2]=$a2, ... + .global _counter_val # accumulate number of interrupts +_counter_val: .space 4 +_counter_saves: .space 8*4 # area to save up to 8 registers + # _counter_saves[0]=$a0, [1]=$a1, [2]=$a2, [3]=$a3, ... .set HW_counter_value,0xc00000c8 # Count 200 clock pulses & interr @@ -69,19 +69,22 @@ extCounter: #================================================================ # interrupt handler for UART attached to IP6=HW4 - + # for UART's address see vhdl/packageMemory.vhd + # .bss .align 2 - .global Ud -Ud: .comm rx_queue 16 # reception queue and pointers - .comm rx_hd 4 - .comm rx_tl 4 - .comm tx_queue 16 # transmission queue and pointers - .comm tx_hd 4 - .comm tx_tl 4 - .comm nrx 4 # characters in RX_queue - .comm ntx 4 # spaces left in TX_queue - .comm _uart_buff 16*4 # up to 16 registers to be saved here + .global Ud, _uart_buff +Ud: +rx_hd: .space 4 +rx_tl: .space 4 +rx_q: .space 16 # reception queue and pointers +tx_hd: .space 4 +tx_tl: .space 4 +tx_q: .space 16 # transmission queue and pointers +nrx: .space 4 # characters in RX_queue +ntx: .space 4 # spaces left in TX_queue + +_uart_buff: .space 16*4 # up to 16 registers to be saved here .set UART_rx_irq,0x08 .set UART_tx_irq,0x10 @@ -451,11 +454,11 @@ cmips_delay: # void cmips_kmsg( $k1 ) # this function preserves registers other than k0,k1 # - .data + .bss .align 2 - .comm _kmsg_saves 4*4 # area to save 4 registers - # _kmsg_saves[0]=$a0, [1]=$a1, [2]=$a2, [3]=$a3 - # +_kmsg_saves: .space 4*4 # area to save 4 registers + # _kmsg_saves[0]=$a0, [1]=$a1, [2]=$a2, [3]=$a3 + .text .align 2 .set noreorder