vectors_m.S 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * (C) Copyright 2015
  3. * Kamil Lulko, <rev13@wp.pl>
  4. *
  5. * SPDX-License-Identifier: GPL-2.0+
  6. */
  7. #include <config.h>
  8. #include <asm/armv7m.h>
  9. #include <linux/linkage.h>
  10. .type __hard_fault_entry, %function
  11. __hard_fault_entry:
  12. mov r0, sp @ pass auto-saved registers as argument
  13. b do_hard_fault
  14. .type __mm_fault_entry, %function
  15. __mm_fault_entry:
  16. mov r0, sp @ pass auto-saved registers as argument
  17. b do_mm_fault
  18. .type __bus_fault_entry, %function
  19. __bus_fault_entry:
  20. mov r0, sp @ pass auto-saved registers as argument
  21. b do_bus_fault
  22. .type __usage_fault_entry, %function
  23. __usage_fault_entry:
  24. mov r0, sp @ pass auto-saved registers as argument
  25. b do_usage_fault
  26. .type __invalid_entry, %function
  27. __invalid_entry:
  28. mov r0, sp @ pass auto-saved registers as argument
  29. b do_invalid_entry
  30. .section .vectors
  31. ENTRY(_start)
  32. .long CONFIG_SYS_INIT_SP_ADDR @ 0 - Reset stack pointer
  33. .long reset @ 1 - Reset
  34. .long __invalid_entry @ 2 - NMI
  35. .long __hard_fault_entry @ 3 - HardFault
  36. .long __mm_fault_entry @ 4 - MemManage
  37. .long __bus_fault_entry @ 5 - BusFault
  38. .long __usage_fault_entry @ 6 - UsageFault
  39. .long __invalid_entry @ 7 - Reserved
  40. .long __invalid_entry @ 8 - Reserved
  41. .long __invalid_entry @ 9 - Reserved
  42. .long __invalid_entry @ 10 - Reserved
  43. .long __invalid_entry @ 11 - SVCall
  44. .long __invalid_entry @ 12 - Debug Monitor
  45. .long __invalid_entry @ 13 - Reserved
  46. .long __invalid_entry @ 14 - PendSV
  47. .long __invalid_entry @ 15 - SysTick
  48. .rept 255 - 16
  49. .long __invalid_entry @ 16..255 - External Interrupts
  50. .endr