vector_gcc.S 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * Copyright (c) 2006-2020, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Date Author Notes
  7. * 2018-10-06 ZhaoXiaowei the first version
  8. */
  9. .text
  10. .globl system_vectors
  11. .globl vector_exception
  12. .globl vector_irq
  13. .globl vector_fiq
  14. system_vectors:
  15. .align 11
  16. .set VBAR, system_vectors
  17. .org VBAR
  18. // Exception from CurrentEL (EL1) with SP_EL0 (SPSEL=1)
  19. .org (VBAR + 0x00 + 0)
  20. B vector_serror // Synchronous
  21. .org (VBAR + 0x80 + 0)
  22. B vector_serror // IRQ/vIRQ
  23. .org (VBAR + 0x100 + 0)
  24. B vector_serror // FIQ/vFIQ
  25. .org (VBAR + 0x180 + 0)
  26. B vector_serror // Error/vError
  27. // Exception from CurrentEL (EL1) with SP_ELn
  28. .org (VBAR + 0x200 + 0)
  29. B vector_exception // Synchronous
  30. .org (VBAR + 0x280 + 0)
  31. B vector_irq // IRQ/vIRQ
  32. .org (VBAR + 0x300 + 0)
  33. B vector_fiq // FIQ/vFIQ
  34. .org (VBAR + 0x380 + 0)
  35. B vector_serror
  36. // Exception from lower EL, aarch64
  37. .org (VBAR + 0x400 + 0)
  38. B vector_exception
  39. .org (VBAR + 0x480 + 0)
  40. B vector_irq
  41. .org (VBAR + 0x500 + 0)
  42. B vector_fiq
  43. .org (VBAR + 0x580 + 0)
  44. B vector_serror
  45. // Exception from lower EL, aarch32
  46. .org (VBAR + 0x600 + 0)
  47. B vector_serror
  48. .org (VBAR + 0x680 + 0)
  49. B vector_serror
  50. .org (VBAR + 0x700 + 0)
  51. B vector_serror
  52. .org (VBAR + 0x780 + 0)
  53. B vector_serror