mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-12-26 17:18:24 +00:00
[GDB stub]first version
This commit is contained in:
27
components/gdb/libcpu/cortexm/gdb_gcc.S
Normal file
27
components/gdb/libcpu/cortexm/gdb_gcc.S
Normal file
@@ -0,0 +1,27 @@
|
||||
.cpu cortex-m4
|
||||
.syntax unified
|
||||
.thumb
|
||||
.text
|
||||
|
||||
.global DebugMon_Handler
|
||||
.type DebugMon_Handler, %function
|
||||
DebugMon_Handler:
|
||||
mrs r0,psp ;// Get process stack
|
||||
sub r1,r0,#(4*13) ;// Make space for saved state
|
||||
msr psp,r1 ;// Ensure PSP is up to date
|
||||
|
||||
mov r12,r0 ;// R12 = stack
|
||||
mov r1,#1 ;// R1 = exception state type
|
||||
mrs r2,ipsr ;// R2 = vector number
|
||||
mrs r3,basepri ;// R3 = basepri
|
||||
stmfd r0!,{r1-r12,lr} ;// Push type, vector, basepri, r4-11
|
||||
|
||||
mov r4,r0 ;// R4 = saved state pointer
|
||||
bl rt_hw_debugmon_exception
|
||||
|
||||
mov r0,r4 ;// R4 = saved state pointer
|
||||
ldmfd r0!,{r1-r12,lr} ;// Pop type, vec, basepri, registers and LR
|
||||
msr psp,r0 ;// Restore PSP
|
||||
msr basepri,r3 ;// Restore basepri
|
||||
|
||||
bx lr ;// Return
|
||||
Reference in New Issue
Block a user