📄 regioninit.s.lst
字号:
78 00000004 ; WEAKly because they may not all have defined values. T
hose which are
79 00000004 ; undefined will take the value zero.
80 00000004
81 00000004 IMPORT |Load$SRAM$Base|, WEAK
82 00000004 IMPORT |Image$SRAM$Base|, WEAK
83 00000004 IMPORT |Image$SRAM$Length|, WEAK
84 00000004 IMPORT |Image$SRAM$ZI$Base|, WEAK
85 00000004 IMPORT |Image$SRAM$ZI$Length|, WEAK
86 00000004
87 00000004
88 00000004 E59F00A8 LDR r0, =|Load$SRAM$Base|
; load address of region
89 00000008 E59F10A8 LDR r1, =|Image$SRAM$Base| ; execution addre
ss of region
90 0000000C E1A02001 MOV r2, r1 ; copy execution address int
o r2
91 00000010 E59F40A4 LDR r4, =|Image$SRAM$Length|
92 00000014 E0822004 ADD r2, r2, r4 ; add region length to execu
tion
93 00000018 ; address to calculate address
94 00000018 ; of word beyond end of execution
95 00000018 ; region
96 00000018 EBFFFFFE BL copy
ARM Macro Assembler Page 5
97 0000001C
98 0000001C E59F209C LDR r2, =|Image$SRAM$ZI$Length|
; get length of ZI region
99 00000020 E59F009C LDR r0, =|Image$SRAM$ZI$Base| ; load base ad
dress of ZI region
100 00000024 E1A01000 MOV r1, r0 ; copy base address of ZI re
gion
101 00000028 E0811002 ADD r1, r1, r2 ; into r1 add region length
to
102 0000002C ; base address to calculate
103 0000002C ; address of word beyond end of
104 0000002C ; ZI region
105 0000002C EBFFFFFE BL zi_init
106 00000030
116 00000030 macro_RWZI_Init
SSRAM
61 00000030
62 00000030 LCLS namecp
63 00000030 LCLS copyloadsym
64 00000030 LCLS copybasesym
65 00000030 LCLS copylensym
66 00000030 LCLS zibasesym
67 00000030 LCLS zilensym
68 00000030
69 00000030 SSRAM namecp SETS "SSRAM"
70 00000030
71 00000030 |Load$SSRAM$Base|
copyloadsym
SETS "|Load$":CC:namecp:CC:"$Base|"
72 00000030 |Image$SSRAM$Base|
copybasesym
SETS "|Image$":CC:namecp:CC:"$Base|"
73 00000030 |Image$SSRAM$Length|
copylensym
SETS "|Image$":CC:namecp:CC:"$Length|"
74 00000030 |Image$SSRAM$ZI$Base|
zibasesym
SETS "|Image$":CC:namecp:CC:"$ZI$Base|"
75 00000030 |Image$SSRAM$ZI$Length|
zilensym
SETS "|Image$":CC:namecp:CC:"$ZI$Length|"
76 00000030
77 00000030 ; The following symbols are generated by the linker. Th
ey are imported
78 00000030 ; WEAKly because they may not all have defined values. T
hose which are
79 00000030 ; undefined will take the value zero.
80 00000030
81 00000030 IMPORT |Load$SSRAM$Base|, WEAK
82 00000030 IMPORT |Image$SSRAM$Base|, WEAK
83 00000030 IMPORT |Image$SSRAM$Length|, WEAK
84 00000030 IMPORT |Image$SSRAM$ZI$Base|, WEAK
85 00000030 IMPORT |Image$SSRAM$ZI$Length|, WEAK
86 00000030
87 00000030
88 00000030 E59F0090 LDR r0, =|Load$SSRAM$Base|
; load address of region
89 00000034 E59F1090 LDR r1, =|Image$SSRAM$Base| ; execution addr
ess of region
ARM Macro Assembler Page 6
90 00000038 E1A02001 MOV r2, r1 ; copy execution address int
o r2
91 0000003C E59F408C LDR r4, =|Image$SSRAM$Length|
92 00000040 E0822004 ADD r2, r2, r4 ; add region length to execu
tion
93 00000044 ; address to calculate address
94 00000044 ; of word beyond end of execution
95 00000044 ; region
96 00000044 EBFFFFFE BL copy
97 00000048
98 00000048 E59F2084 LDR r2, =|Image$SSRAM$ZI$Length|
; get length of ZI region
99 0000004C E59F0084 LDR r0, =|Image$SSRAM$ZI$Base| ; load base a
ddress of ZI region
100 00000050 E1A01000 MOV r1, r0 ; copy base address of ZI re
gion
101 00000054 E0811002 ADD r1, r1, r2 ; into r1 add region length
to
102 00000058 ; base address to calculate
103 00000058 ; address of word beyond end of
104 00000058 ; ZI region
105 00000058 EBFFFFFE BL zi_init
106 0000005C
117 0000005C macro_RWZI_Init
DATARAM
61 0000005C
62 0000005C LCLS namecp
63 0000005C LCLS copyloadsym
64 0000005C LCLS copybasesym
65 0000005C LCLS copylensym
66 0000005C LCLS zibasesym
67 0000005C LCLS zilensym
68 0000005C
69 0000005C DATARAM namecp SETS "DATARAM"
70 0000005C
71 0000005C |Load$DATARAM$Base|
copyloadsym
SETS "|Load$":CC:namecp:CC:"$Base|"
72 0000005C |Image$DATARAM$Base|
copybasesym
SETS "|Image$":CC:namecp:CC:"$Base|"
73 0000005C |Image$DATARAM$Length|
copylensym
SETS "|Image$":CC:namecp:CC:"$Length|"
74 0000005C |Image$DATARAM$ZI$Base|
zibasesym
SETS "|Image$":CC:namecp:CC:"$ZI$Base|"
75 0000005C |Image$DATARAM$ZI$Length|
zilensym
SETS "|Image$":CC:namecp:CC:"$ZI$Length|"
76 0000005C
77 0000005C ; The following symbols are generated by the linker. Th
ey are imported
78 0000005C ; WEAKly because they may not all have defined values. T
hose which are
79 0000005C ; undefined will take the value zero.
80 0000005C
81 0000005C IMPORT |Load$DATARAM$Base|, WEAK
82 0000005C IMPORT |Image$DATARAM$Base|, WEAK
ARM Macro Assembler Page 7
83 0000005C IMPORT |Image$DATARAM$Length|, WEAK
84 0000005C IMPORT |Image$DATARAM$ZI$Base|, WEAK
85 0000005C IMPORT |Image$DATARAM$ZI$Length|, WEAK
86 0000005C
87 0000005C
88 0000005C E59F0078 LDR r0, =|Load$DATARAM$Base|
; load address of region
89 00000060 E59F1078 LDR r1, =|Image$DATARAM$Base| ; execution ad
dress of region
90 00000064 E1A02001 MOV r2, r1 ; copy execution address int
o r2
91 00000068 E59F4074 LDR r4, =|Image$DATARAM$Length|
92 0000006C E0822004 ADD r2, r2, r4 ; add region length to execu
tion
93 00000070 ; address to calculate address
94 00000070 ; of word beyond end of execution
95 00000070 ; region
96 00000070 EBFFFFFE BL copy
97 00000074
98 00000074 E59F206C LDR r2, =|Image$DATARAM$ZI$Length|
; get length of ZI region
99 00000078 E59F006C LDR r0, =|Image$DATARAM$ZI$Base| ; load base
address of ZI region
100 0000007C E1A01000 MOV r1, r0 ; copy base address of ZI re
gion
101 00000080 E0811002 ADD r1, r1, r2 ; into r1 add region length
to
102 00000084 ; base address to calculate
103 00000084 ; address of word beyond end of
104 00000084 ; ZI region
105 00000084 EBFFFFFE BL zi_init
106 00000088
118 00000088 E8BD8000 LDMFD sp!,{pc}
119 0000008C
120 0000008C
121 0000008C ; --- copy and zi_init subroutines
122 0000008C
123 0000008C ; copy is a subroutine which copies a region, from an ad
dress given by
124 0000008C ; r0 to an address given by r1. The address of the word
beyond the end
125 0000008C ; of this region is held in r2. r3 is used to hold the w
ord being copied.
126 0000008C copy
127 0000008C E1510002 CMP r1, r2 ; loop whilst r1 < r2
128 00000090 34903004 LDRLO r3, [r0], #4
129 00000094 34813004 STRLO r3, [r1], #4
130 00000098 3AFFFFFE BLO copy
131 0000009C E1A0F00E MOV pc, lr ; return from subroutine cop
y
132 000000A0
133 000000A0 ; zi_init is a subroutine which zero-initialises a regio
n,
134 000000A0 ; starting at the address in r0. The address of the word
135 000000A0 ; beyond the end of this region is held in r1.
136 000000A0 zi_init
137 000000A0 E3A02000 MOV r2, #0
138 000000A4 E1500001 CMP r0, r1 ; loop whilst r0 < r1
ARM Macro Assembler Page 8
139 000000A8 34802004 STRLO r2, [r0], #4
140 000000AC 3AFFFFFE BLO zi_init
141 000000B0 E1A0F00E MOV pc, lr ; return from subroutine zi_
init
142 000000B4
143 000000B4 END
00000000
00000000
00000000
00000000
00000000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -