gdb_gcc.S 1.0 KB

123456789101112131415161718192021222324252627
  1. .cpu cortex-m4
  2. .syntax unified
  3. .thumb
  4. .text
  5. .global DebugMon_Handler
  6. .type DebugMon_Handler, %function
  7. DebugMon_Handler:
  8. mrs r0,psp ;// Get process stack
  9. sub r1,r0,#(4*13) ;// Make space for saved state
  10. msr psp,r1 ;// Ensure PSP is up to date
  11. mov r12,r0 ;// R12 = stack
  12. mov r1,#1 ;// R1 = exception state type
  13. mrs r2,ipsr ;// R2 = vector number
  14. mrs r3,basepri ;// R3 = basepri
  15. stmfd r0!,{r1-r12,lr} ;// Push type, vector, basepri, r4-11
  16. mov r4,r0 ;// R4 = saved state pointer
  17. bl rt_hw_debugmon_exception
  18. mov r0,r4 ;// R4 = saved state pointer
  19. ldmfd r0!,{r1-r12,lr} ;// Pop type, vec, basepri, registers and LR
  20. msr psp,r0 ;// Restore PSP
  21. msr basepri,r3 ;// Restore basepri
  22. bx lr ;// Return