Guest User

Untitled

a guest
Nov 23rd, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. .section .startup,"ax"
  2. .code 32
  3. .align 0
  4.  
  5. b _start /* reset - _start */
  6. ldr pc, _undf /* undefined - _undf */
  7. ldr pc, _swi /* SWI - _swi */
  8. ldr pc, _pabt /* program abort - _pabt */
  9. ldr pc, _dabt /* data abort - _dabt */
  10. nop /* reserved */
  11. ldr pc, _irq /* IRQ - read the VIC */
  12. ldr pc, _fiq /* FIQ - _fiq */
  13.  
  14. _undf: .word 0x4030CE24 /* undefined */
  15. _swi: .word 0x4030CE28 /* SWI */
  16. _pabt: .word 0x4030CE2C /* program abort */
  17. _dabt: .word 0x4030CE30 /* data abort */
  18. _irq: .word 0x4030CE38
  19. _fiq: .word 0x4030CE3C /* FIQ */
  20.  
  21. #define E_IRQ (*(REG32 (0x4030CE38)))
  22. ....
  23. /* Setup interrupt handler */
  24. E_IRQ = ( long ) vIRQHandler;
  25.  
  26. /* Set V=0 in CP15 SCTRL register - for VBAR to point to vector */
  27. mrc p15, 0, r0, c1, c0, 0 @ Read CP15 SCTRL Register
  28. bic r0, #(1 << 13) @ V = 0
  29. mcr p15, 0, r0, c1, c0, 0 @ Write CP15 SCTRL Register
  30.  
  31. /* Set vector address in CP15 VBAR register */
  32. ldr r0, =_vector_table
  33. mcr p15, 0, r0, c12, c0, 0 @Set VBAR
  34.  
  35. bl main
  36.  
  37. .section .startup,"ax"
  38. .code 32
  39. .align 0
  40. _vector_table: b _start /* reset - _start */
  41. ldr pc, _undf /* undefined - _undf */
  42. ldr pc, _swi /* SWI - _swi */
  43. ldr pc, _pabt /* program abort - _pabt */
  44. ldr pc, _dabt /* data abort - _dabt */
  45. nop /* reserved */
  46. ldr pc, _irq /* IRQ - read the VIC */
  47. ldr pc, _fiq /* FIQ - _fiq */
Add Comment
Please, Sign In to add comment