Professional Documents
Culture Documents
Design
BITS Pilani Sangmeshwar Kendre
Pilani Campus
BITS Pilani
Pilani Campus
ES ZG512
Embedded System Design
Lab Session No.2.
Contents
• ARM Cortex-M4
• Reset sequence
• Memory map
• Assembly language programming examples
• SVC
Source: Joseph Yiu, “The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors”
AREA mycode,CODE,READONLY
ENTRY
EXPORT Reset_Handler
Reset_Handler
MOV R1,#varB
MOV R2,#varC
MOV R3,#varD
ADD R0,R1,R2
ADD R0,R0,R3
Stop B Stop
END BITS Pilani, Pilani Campus
Solution method-2
AREA mycode,CODE,READONLY
EXPORT Reset_Handler
ENTRY
LDR R4,=varA
STR R0,[R4]
Stop B Stop
END
BITS Pilani, Pilani Campus
Branch
AREA mycode,CODE,READONLY
ENTRY
EXPORT Reset_Handler
Reset_Handler
MOV R0,#0 ; sum=0;
MOV R1,#4 ; Number of elements-1
ADR R2, ARRAY_A ; Start of array
LOOP
LDR R3,[R2,R1,LSL #2] ; Load value from memory
ADD R0,R3,R0 ; sum+=a[i]
SUBS R1,R1,#1 ; i=i-1
BGE LOOP ; loop only if i>0
STOP B STOP
AREA mycode,CODE,READONLY
ENTRY
EXPORT Reset_Handler
Reset_Handler
LDR R1,=0X20000200
MSR PSP,R1
MOV R0,#3
MSR CONTROL,R0
SVC_handler
push {lr}
;Write logic here
pop {pc}
SRC DCD 0X30 ,0X20