summaryrefslogtreecommitdiffstats
path: root/Bachelor/Mikroprozessorsysteme2/ARM202U/EXAMPLES/SCATTER/INITAPP.S
diff options
context:
space:
mode:
authorSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
committerSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
commit33613a85afc4b1481367fbe92a17ee59c240250b (patch)
tree670b842326116b376b505ec2263878912fca97e2 /Bachelor/Mikroprozessorsysteme2/ARM202U/EXAMPLES/SCATTER/INITAPP.S
downloadStudium-master.tar.gz
Studium-master.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Bachelor/Mikroprozessorsysteme2/ARM202U/EXAMPLES/SCATTER/INITAPP.S')
-rw-r--r--Bachelor/Mikroprozessorsysteme2/ARM202U/EXAMPLES/SCATTER/INITAPP.S81
1 files changed, 81 insertions, 0 deletions
diff --git a/Bachelor/Mikroprozessorsysteme2/ARM202U/EXAMPLES/SCATTER/INITAPP.S b/Bachelor/Mikroprozessorsysteme2/ARM202U/EXAMPLES/SCATTER/INITAPP.S
new file mode 100644
index 0000000..1bdbaea
--- /dev/null
+++ b/Bachelor/Mikroprozessorsysteme2/ARM202U/EXAMPLES/SCATTER/INITAPP.S
@@ -0,0 +1,81 @@
+ AREA InitApp, CODE , READONLY
+ EXPORT InitialiseApp
+InitialiseApp
+ ADR r0,ziTable
+ MOV R3,#0
+ziLoop
+ LDR r1,[r0],#4
+ CMP r1,#0
+ BEQ initLoop
+ LDR r2,[r0],#4
+ziFillLoop
+ STR r3,[r2],#4
+ SUBS r1,r1,#4
+ BNE ziFillLoop
+ B ziLoop
+
+initLoop
+ LDR r1,[r0],#4
+ CMP r1,#0
+ MOVEQ pc,lr
+ LDMIA r0!,{r2,r3}
+ CMP r1,#16
+ BLT copyWords
+copy4Words
+ LDMIA r3!,{r4,r5,r6,r7}
+ STMIA r2!,{r4,r5,r6,r7}
+ SUBS r1,r1,#16
+ BGT copy4Words
+ BEQ initLoop
+copyWords
+ SUBS r1,r1,#8
+ LDMIAGE r3!,{r4,r5}
+ STMIAGE r2!,{r4,r5}
+ BEQ initLoop
+
+ LDR r4,[r3]
+ STR r4,[r2]
+
+ B initLoop
+
+ MACRO
+ ZIEntry $execname
+ LCLS lensym
+ LCLS basesym
+ LCLS namecp
+namecp SETS "$execname"
+lensym SETS "|Image$$":CC:namecp:CC:"$$ZI$$Length|"
+basesym SETS "|Image$$":CC:namecp:CC:"$$ZI$$Base|"
+ IMPORT $lensym
+ IMPORT $basesym
+ DCD $lensym
+ DCD $basesym
+ MEND
+
+ MACRO
+ InitEntry $execname
+ LCLS lensym
+ LCLS basesym
+ LCLS loadsym
+ LCLS namecp
+namecp SETS "$execname"
+lensym SETS "|Image$$":CC:namecp:CC:"$$Length|"
+basesym SETS "|Image$$":CC:namecp:CC:"$$Base|"
+loadsym SETS "|Load$$":CC:namecp:CC:"$$Base|"
+ IMPORT $lensym
+ IMPORT $basesym
+ IMPORT $loadsym
+ DCD $lensym
+ DCD $basesym
+ DCD $loadsym
+ MEND
+
+ziTable
+ ZIEntry root
+ DCD 0
+
+InitTable
+ InitEntry root
+ InitEntry overmgr
+ DCD 0
+ END