Advertisement
Guest User

Untitled

a guest
Oct 10th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .equ TIMER1_ADDR, 0xFF202000
  2. .equ TIMER_STACK_SIZE, 56
  3. .equ LED_ADDR, 0xFF200000
  4.  
  5. .global _start
  6. _start:
  7.     movia sp, 0x80000000
  8.    
  9. BLINK_LIGHT:
  10.     movia r7, LED_ADDR
  11.     movi r2, 0x1
  12.     stwio r2,  (r7)
  13.     movia r4, 100000000
  14.     call Timer
  15.     movi r2, 0x0
  16.     stwio r2,  (r7)
  17.     movia r4, 100000000
  18.     call Timer
  19.     br BLINK_LIGHT
  20.    
  21.    
  22. Timer:
  23.     subi sp, sp, TIMER_STACK_SIZE
  24.    
  25.     stw ra, 4(sp)
  26.     stw fp, 0(sp)
  27.    
  28.     addi r2, sp, 8
  29.     stw r16, (r2)
  30.     addi r2, r2, 4
  31.     stw r17, (r2)
  32.     addi r2, r2, 4
  33.     stw r18, (r2)
  34.     addi r2, r2, 4
  35.     stw r19, (r2)
  36.     addi r2, r2, 4
  37.     stw r20, (r2)
  38.     addi r2, r2, 4
  39.     stw r21, (r2)
  40.     addi r2, r2, 4
  41.     stw r22, (r2)
  42.     addi r2, r2, 4
  43.     stw r23, (r2)
  44.    
  45.     addi r2, r2, 4
  46.     stw r4, (r2)
  47.     addi r2, r2, 4
  48.     stw r5, (r2)
  49.     addi r2, r2, 4
  50.     stw r6, (r2)
  51.     addi r2, r2, 4
  52.     stw r7, (r2)
  53.  
  54.     addi fp, sp, 0
  55.    
  56.     # Function starts
  57.     movia r7, TIMER1_ADDR
  58.     mov r2, r4
  59.     srli r3, r2, 16     # Store upper 16
  60.     stwio r3, 12(r7)
  61.     andi r3, r2, 0xFFFF # Store lower 16
  62.     stwio r3, 8(r7)
  63.    
  64.     stwio r0, (r7)
  65.    
  66.     movui r2, 4
  67.     stwio r2, 4(r7)
  68.    
  69. WAIT:
  70.     ldwio r2, (r7)
  71.     andi r2, r2, 0x0001
  72.     beq r2, r0, WAIT
  73.    
  74. EXIT:
  75.     addi r2, sp, 8
  76.     ldw r16, (r2)
  77.     addi r2, r2, 4
  78.     ldw r17, (r2)
  79.     addi r2, r2, 4
  80.     ldw r18, (r2)
  81.     addi r2, r2, 4
  82.     ldw r19, (r2)
  83.     addi r2, r2, 4
  84.     ldw r20, (r2)
  85.     addi r2, r2, 4
  86.     ldw r21, (r2)
  87.     addi r2, r2, 4
  88.     ldw r22, (r2)
  89.     addi r2, r2, 4
  90.     ldw r23, (r2)
  91.  
  92.    
  93.     addi r2, r2, 4
  94.     ldw r4, (r2)
  95.     addi r2, r2, 4
  96.     ldw r5, (r2)
  97.     addi r2, r2, 4
  98.     ldw r6, (r2)
  99.     addi r2, r2, 4
  100.     ldw r7, (r2)
  101.  
  102.     ldw ra, 4(sp)
  103.     ldw fp, 0(sp)
  104.     addi sp, sp, TIMER_STACK_SIZE
  105.    
  106.     ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement