Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .equ TIMER1_ADDR, 0xFF202000
- .equ TIMER_STACK_SIZE, 56
- .equ LED_ADDR, 0xFF200000
- .global _start
- _start:
- movia sp, 0x80000000
- BLINK_LIGHT:
- movia r7, LED_ADDR
- movi r2, 0x1
- stwio r2, (r7)
- movia r4, 100000000
- call Timer
- movi r2, 0x0
- stwio r2, (r7)
- movia r4, 100000000
- call Timer
- br BLINK_LIGHT
- Timer:
- subi sp, sp, TIMER_STACK_SIZE
- stw ra, 4(sp)
- stw fp, 0(sp)
- addi r2, sp, 8
- stw r16, (r2)
- addi r2, r2, 4
- stw r17, (r2)
- addi r2, r2, 4
- stw r18, (r2)
- addi r2, r2, 4
- stw r19, (r2)
- addi r2, r2, 4
- stw r20, (r2)
- addi r2, r2, 4
- stw r21, (r2)
- addi r2, r2, 4
- stw r22, (r2)
- addi r2, r2, 4
- stw r23, (r2)
- addi r2, r2, 4
- stw r4, (r2)
- addi r2, r2, 4
- stw r5, (r2)
- addi r2, r2, 4
- stw r6, (r2)
- addi r2, r2, 4
- stw r7, (r2)
- addi fp, sp, 0
- # Function starts
- movia r7, TIMER1_ADDR
- mov r2, r4
- srli r3, r2, 16 # Store upper 16
- stwio r3, 12(r7)
- andi r3, r2, 0xFFFF # Store lower 16
- stwio r3, 8(r7)
- stwio r0, (r7)
- movui r2, 4
- stwio r2, 4(r7)
- WAIT:
- ldwio r2, (r7)
- andi r2, r2, 0x0001
- beq r2, r0, WAIT
- EXIT:
- addi r2, sp, 8
- ldw r16, (r2)
- addi r2, r2, 4
- ldw r17, (r2)
- addi r2, r2, 4
- ldw r18, (r2)
- addi r2, r2, 4
- ldw r19, (r2)
- addi r2, r2, 4
- ldw r20, (r2)
- addi r2, r2, 4
- ldw r21, (r2)
- addi r2, r2, 4
- ldw r22, (r2)
- addi r2, r2, 4
- ldw r23, (r2)
- addi r2, r2, 4
- ldw r4, (r2)
- addi r2, r2, 4
- ldw r5, (r2)
- addi r2, r2, 4
- ldw r6, (r2)
- addi r2, r2, 4
- ldw r7, (r2)
- ldw ra, 4(sp)
- ldw fp, 0(sp)
- addi sp, sp, TIMER_STACK_SIZE
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement