Question: I asked below question earlier got response from team, but while excuting below instruction getting error65, i.e memory not accessible, Please provide other logic to
I asked below question earlier got response from team, but while excuting below instruction getting error65, i.e memory not accessible, Please provide other logic to check SVC number and use CMP instead TST.
; Check SVC number LDR R0, [LR, #-4] TST R0, #0xFF
Write an ALP program for ARM Cortex M3/4 to perform the following (1) SVC is to be called from an application task running at Thread unprivileged mode. (2) Two parameters are passed to the handler via R1, R2. (3) If the SVC number is 0x20, then the addition of the data in R1,R2 should be performed (4) Return and resume application task
; Start of program AREA MyCode, CODE, READONLY
; Define the SVC handler function SVC_Handler ; Save context of the interrupted task PUSH {LR}
; Check SVC number LDR R0, [LR, #-4] TST R0, #0xFF BEQ perform_addition
; SVC not handled B .
perform_addition ; Get parameters from R1 and R2 LDR R1, [R1] LDR R2, [R2]
; Perform addition ADD R0, R1, R2
; Return result MOV R1, R0
; Restore context and return from interrupt POP {PC}
; Define the main function MAIN ; Call SVC with number 0x20 and parameters in R1 and R2 MOV R0, #0x20 MOV R1, #10 MOV R2, #20 SVC #0
; End of program
END
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
