rv32_vectors.S 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. .section .vector_table
  2. .global vector_table
  3. vector_table:
  4. /* Top of stack */
  5. .word _thread_stacktop
  6. /* Exceptions (1-15) */
  7. #define E(x) .word x; .weak x; .set x, EXC_unused;
  8. E(EXC_reset)
  9. E(EXC_nmi)
  10. E(EXC_hard_fault)
  11. E(EXC_memory_management_fault)
  12. E(EXC_bus_fault)
  13. E(EXC_usage_fault)
  14. E(EXC_7)
  15. E(EXC_8)
  16. E(EXC_9)
  17. E(EXC_10)
  18. E(EXC_sv_call)
  19. E(EXC_12)
  20. E(EXC_13)
  21. E(EXC_pend_sv)
  22. E(EXC_systick)
  23. /* Interrupts/IRQs (0-67) */
  24. #define I(n) E(IRQ_##n)
  25. I( 0) I( 1) I( 2) I( 3) I( 4) I( 5) I( 6) I( 7) I( 8) I( 9)
  26. I(10) I(11) I(12) I(13) I(14) I(15) I(16) I(17) I(18) I(19)
  27. I(20) I(21) I(22) I(23) I(24) I(25) I(26) I(27) I(28) I(29)
  28. I(30) I(31) I(32) I(33) I(34) I(35) I(36) I(37) I(38) I(39)
  29. I(40) I(41) I(42) I(43) I(44) I(45) I(46) I(47) I(48) I(49)
  30. I(50) I(51) I(52) I(53) I(54) I(55) I(56) I(57) I(58) I(59)
  31. I(60) I(61) I(62) I(63) I(64) I(65) I(66) I(67)
  32. .text
  33. .global EXC_unused
  34. EXC_unused:
  35. //push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
  36. //mov r0, sp
  37. j EXC_unexpected