Home > Study > C Language > ARM System Programming > [ex38] SYSTEM_SERVICE

[ex38] SYSTEM_SERVICE
Study Language

문제 설명


    .global _SVC_Handler
    .type   _SVC_Handler, %function
_SVC_Handler:

	.extern SVC_FUNC

	@ SVC 핸들러 설계

정답 코드


    .global _SVC_Handler
  	.type 	_SVC_Handler, %function
_SVC_Handler:

	.extern SVC_FUNC

    PUSH  	{r4, lr}
    MRS		r4, PSP
    LDR   	lr, [r4, #0x18]
    LDR   	lr, [lr, #-2]
    AND   	lr, lr, #0xFF
    LDR   	r12, =SVC_FUNC
    LDR   	r12, [r12, lr, lsl #2]
    BLX   	r12
    STR   	r0, [r4]
    STR   	r1, [r4, #4]
    POP   	{r4, pc}

메모


printf 내부의 \n 습관화 필요