We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
SVC_Handler PROC ;EXPORT SVC_Handler [WEAK] IMPORT SVC_Handler_main MOV R0,SP B SVC_Handler_main ENDP
svc_number = ((char *)svc_args[6])[-2];
;--------- SVC HANDLER --------------SVC_Handler PROC ; EXPORT SVC_Handler [WEAK] IMPORT SVC_Handler_main MOVS R0, #4 MOV R1, LR TST R0, R1 BEQ stacking_used_MSP MRS R0, PSP ; first parameter - stacking was using PSP LDR R1, =SVC_Handler_main BX R1stacking_used_MSP MRS R0, MSP ; first parameter - stacking was using MSP LDR R1, =SVC_Handler_main BX R1 ENDP;--------- END SVC HANDLER --------------
__cpp
// SVC handler - Assembly wrapper to extract // stack frame starting address__asm void SVC_Handler(void){ MOVS r0, #4 MOV r1, LR TST r0, r1 BEQ stacking_used_MSP MRS R0, PSP ; first parameter - stacking was using PSP LDR R1,=__cpp(SVC_Handler_main) BX R1stacking_used_MSP MRS R0, MSP ; first parameter - stacking was using MSP LDR R1,=__cpp(SVC_Handler_main) BX R1}