@@ -8,6 +8,8 @@ Linker script and memory map
8
8
9
9
LOAD .obj/fiq.o
10
10
LOAD .obj/funcs.o
11
+ LOAD .obj/interrupt.o
12
+ LOAD .obj/irq.o
11
13
LOAD .obj/main.o
12
14
LOAD .obj/print.o
13
15
LOAD .obj/syscall.o
@@ -19,156 +21,173 @@ LOAD .obj/lib1funcs.o
19
21
LOAD .obj/startup.o
20
22
0x00000000 . = 0x0
21
23
22
- .idt 0x00000000 0x50
24
+ .idt 0x00000000 0x58
23
25
.obj/exception.o(.text)
24
- .text 0x00000000 0x50 .obj/exception.o
26
+ .text 0x00000000 0x58 .obj/exception.o
25
27
0x00010000 . = 0x10000
26
28
27
29
.start 0x00010000 0x48
28
30
.obj/startup.o(.text)
29
31
.text 0x00010000 0x48 .obj/startup.o
30
32
0x00010000 _reset
31
33
32
- .text 0x00010048 0x1260
34
+ .text 0x00010048 0x12b8
33
35
0x00010048 text_start = .
34
36
*(.text)
35
- .text 0x00010048 0x1c .obj/fiq.o
36
- 0x00010048 fiq_handler
37
- .text 0x00010064 0x344 .obj/funcs.o
38
- 0x00010064 memset
39
- 0x000100d4 strncpy
40
- 0x00010150 memcpy
41
- 0x000101dc memcmp
42
- 0x000102b0 strncmp
43
- 0x00010384 panic
44
- .text 0x000103a8 0x100 .obj/main.o
45
- 0x000103a8 dump_cpsr
46
- 0x000103d4 init_bss
47
- 0x00010420 main
48
- 0x00010468 msg
49
- 0x00010480 screwed_up
50
- .text 0x000104a8 0x9c0 .obj/print.o
51
- 0x000106f0 get_log_level
52
- 0x00010864 printk
53
- .text 0x00010e68 0x64 .obj/syscall.o
54
- 0x00010e68 syscall
55
- 0x00010eb4 __div0
56
- .text 0x00010ecc 0x58 .obj/uart.o
57
- 0x00010ecc console_write
58
- .text 0x00010f24 0x3c .obj/unwind.o
59
- 0x00010f24 __aeabi_unwind_cpp_pr0
60
- 0x00010f38 __aeabi_unwind_cpp_pr1
61
- 0x00010f4c __aeabi_unwind_cpp_pr2
62
- .text 0x00010f60 0x48 .obj/intr.o
63
- 0x00010f60 enable_vic
64
- 0x00010f94 gen_soft_irq
65
- .text 0x00010fa8 0x300 .obj/lib1funcs.o
66
- 0x00010fa8 __udivsi3
67
- 0x00010fa8 __aeabi_uidiv
68
- 0x00011044 __umodsi3
69
- 0x000110e4 __aeabi_idiv
70
- 0x000110e4 __divsi3
71
- 0x000111b0 __modsi3
72
- 0x00011268 __aeabi_uidivmod
73
- 0x00011280 __aeabi_idivmod
74
- 0x000112a8 text_end = .
75
-
76
- .rodata 0x000112a8 0xec
77
- .rodata 0x000112a8 0x10 .obj/fiq.o
78
- .rodata 0x000112b8 0x4 .obj/funcs.o
79
- .rodata 0x000112bc 0x70 .obj/main.o
80
- .rodata 0x0001132c 0x20 .obj/print.o
81
- .rodata 0x0001134c 0x44 .obj/syscall.o
82
- .rodata 0x00011390 0x4 .obj/uart.o
83
- 0x00011390 out_addr
84
-
85
- .ARM.extab 0x00011394 0x84
86
- .ARM.extab 0x00011394 0xc .obj/fiq.o
87
- .ARM.extab 0x000113a0 0xc .obj/funcs.o
88
- .ARM.extab 0x000113ac 0x3c .obj/main.o
89
- .ARM.extab 0x000113e8 0x18 .obj/print.o
90
- .ARM.extab 0x00011400 0x18 .obj/syscall.o
91
- .ARM.extab 0x00011418 0x0 .obj/uart.o
92
- .ARM.extab 0x00011418 0x0 .obj/unwind.o
93
-
94
- .ARM.exidx 0x00011418 0x78
95
- .ARM.exidx 0x00011418 0x8 .obj/fiq.o
96
- .ARM.exidx 0x00011420 0x10 .obj/funcs.o
37
+ .text 0x00010048 0x28 .obj/fiq.o
38
+ 0x00010048 fiq_handle
39
+ .text 0x00010070 0x344 .obj/funcs.o
40
+ 0x00010070 memset
41
+ 0x000100e0 strncpy
42
+ 0x0001015c memcpy
43
+ 0x000101e8 memcmp
44
+ 0x000102bc strncmp
45
+ 0x00010390 panic
46
+ .text 0x000103b4 0x14 .obj/interrupt.o
47
+ 0x000103b4 enable_vic
48
+ .text 0x000103c8 0x1c .obj/irq.o
49
+ 0x000103c8 irq_handle
50
+ .text 0x000103e4 0xc8 .obj/main.o
51
+ 0x000103e4 dump_cpsr
52
+ 0x00010418 init_bss
53
+ 0x00010464 main
54
+ 0x00010494 msg
55
+ .text 0x000104ac 0x9c0 .obj/print.o
56
+ 0x000106f4 get_log_level
57
+ 0x00010868 printk
58
+ .text 0x00010e6c 0x64 .obj/syscall.o
59
+ 0x00010e6c syscall
60
+ 0x00010eb8 __div0
61
+ .text 0x00010ed0 0x58 .obj/uart.o
62
+ 0x00010ed0 console_write
63
+ .text 0x00010f28 0x3c .obj/unwind.o
64
+ 0x00010f28 __aeabi_unwind_cpp_pr0
65
+ 0x00010f3c __aeabi_unwind_cpp_pr1
66
+ 0x00010f50 __aeabi_unwind_cpp_pr2
67
+ .text 0x00010f64 0x9c .obj/intr.o
68
+ 0x00010f64 enable_irq
69
+ 0x00010f94 enable_fiq
70
+ 0x00010fbc gen_soft_irq
71
+ 0x00010fcc fiq_handler
72
+ 0x00010fe4 irq_handler
73
+ .text 0x00011000 0x300 .obj/lib1funcs.o
74
+ 0x00011000 __udivsi3
75
+ 0x00011000 __aeabi_uidiv
76
+ 0x0001109c __umodsi3
77
+ 0x0001113c __aeabi_idiv
78
+ 0x0001113c __divsi3
79
+ 0x00011208 __modsi3
80
+ 0x000112c0 __aeabi_uidivmod
81
+ 0x000112d8 __aeabi_idivmod
82
+ 0x00011300 text_end = .
83
+
84
+ .rodata 0x00011300 0xd4
85
+ .rodata 0x00011300 0x1c .obj/fiq.o
86
+ .rodata 0x0001131c 0x4 .obj/funcs.o
87
+ .rodata 0x00011320 0x10 .obj/irq.o
88
+ .rodata 0x00011330 0x3c .obj/main.o
89
+ .rodata 0x0001136c 0x20 .obj/print.o
90
+ .rodata 0x0001138c 0x44 .obj/syscall.o
91
+ .rodata 0x000113d0 0x4 .obj/uart.o
92
+ 0x000113d0 out_addr
93
+
94
+ .ARM.extab 0x000113d4 0x84
95
+ .ARM.extab 0x000113d4 0xc .obj/fiq.o
96
+ .ARM.extab 0x000113e0 0xc .obj/funcs.o
97
+ .ARM.extab 0x000113ec 0x0 .obj/interrupt.o
98
+ .ARM.extab 0x000113ec 0xc .obj/irq.o
99
+ .ARM.extab 0x000113f8 0x30 .obj/main.o
100
+ .ARM.extab 0x00011428 0x18 .obj/print.o
101
+ .ARM.extab 0x00011440 0x18 .obj/syscall.o
102
+ .ARM.extab 0x00011458 0x0 .obj/uart.o
103
+ .ARM.extab 0x00011458 0x0 .obj/unwind.o
104
+
105
+ .ARM.exidx 0x00011458 0x80
106
+ .ARM.exidx 0x00011458 0x8 .obj/fiq.o
107
+ .ARM.exidx 0x00011460 0x10 .obj/funcs.o
97
108
0x30 (size before relaxing)
98
- .ARM.exidx 0x00011430 0x28 .obj/main.o
99
- .ARM.exidx 0x00011458 0x18 .obj/print.o
109
+ .ARM.exidx 0x00011470 0x8 .obj/interrupt.o
110
+ .ARM.exidx 0x00011478 0x8 .obj/irq.o
111
+ .ARM.exidx 0x00011480 0x20 .obj/main.o
112
+ .ARM.exidx 0x000114a0 0x18 .obj/print.o
100
113
0x28 (size before relaxing)
101
- .ARM.exidx 0x00011470 0x10 .obj/syscall.o
102
- .ARM.exidx 0x00011480 0x8 .obj/uart.o
103
- .ARM.exidx 0x00011488 0x8 .obj/unwind.o
114
+ .ARM.exidx 0x000114b8 0x10 .obj/syscall.o
115
+ .ARM.exidx 0x000114c8 0x8 .obj/uart.o
116
+ .ARM.exidx 0x000114d0 0x8 .obj/unwind.o
104
117
0x18 (size before relaxing)
105
118
106
- .eh_frame_hdr 0x00011490 0x0
119
+ .eh_frame_hdr 0x000114d8 0x0
107
120
.eh_frame_hdr 0x00000000 0x0 .obj/startup.o
108
121
109
- .glue_7 0x00011490 0x0
122
+ .glue_7 0x000114d8 0x0
110
123
.glue_7 0x00000000 0x0 linker stubs
111
124
112
- .glue_7t 0x00011490 0x0
125
+ .glue_7t 0x000114d8 0x0
113
126
.glue_7t 0x00000000 0x0 linker stubs
114
127
115
- .vfp11_veneer 0x00011490 0x0
128
+ .vfp11_veneer 0x000114d8 0x0
116
129
.vfp11_veneer 0x00000000 0x0 linker stubs
117
130
118
- .v4_bx 0x00011490 0x0
131
+ .v4_bx 0x000114d8 0x0
119
132
.v4_bx 0x00000000 0x0 linker stubs
120
133
121
- .iplt 0x00011490 0x0
134
+ .iplt 0x000114d8 0x0
122
135
.iplt 0x00000000 0x0 .obj/fiq.o
123
136
124
- .rel.dyn 0x00011490 0x0
137
+ .rel.dyn 0x000114d8 0x0
125
138
.rel.iplt 0x00000000 0x0 .obj/fiq.o
126
139
127
- .data 0x00011490 0x41b
128
- 0x00011490 data_start = .
140
+ .data 0x000114d8 0x408
141
+ 0x000114d8 data_start = .
129
142
*(.data)
130
- .data 0x00011490 0x0 .obj/fiq.o
131
- .data 0x00011490 0x0 .obj/funcs.o
132
- .data 0x00011490 0x0 .obj/main.o
133
- .data 0x00011490 0x404 .obj/print.o
134
- .data 0x00011894 0x4 .obj/syscall.o
135
- 0x00011894 a
136
- .data 0x00011898 0x0 .obj/uart.o
137
- .data 0x00011898 0x0 .obj/unwind.o
138
- .data 0x00011898 0x13 .obj/exception.o
139
- .data 0x000118ab 0x0 .obj/intr.o
140
- .data 0x000118ab 0x0 .obj/lib1funcs.o
141
- .data 0x000118ab 0x0 .obj/startup.o
142
- 0x000118ab data_end = .
143
-
144
- .igot.plt 0x000118ac 0x0
143
+ .data 0x000114d8 0x0 .obj/fiq.o
144
+ .data 0x000114d8 0x0 .obj/funcs.o
145
+ .data 0x000114d8 0x0 .obj/interrupt.o
146
+ .data 0x000114d8 0x0 .obj/irq.o
147
+ .data 0x000114d8 0x0 .obj/main.o
148
+ .data 0x000114d8 0x404 .obj/print.o
149
+ .data 0x000118dc 0x4 .obj/syscall.o
150
+ 0x000118dc a
151
+ .data 0x000118e0 0x0 .obj/uart.o
152
+ .data 0x000118e0 0x0 .obj/unwind.o
153
+ .data 0x000118e0 0x0 .obj/exception.o
154
+ .data 0x000118e0 0x0 .obj/intr.o
155
+ .data 0x000118e0 0x0 .obj/lib1funcs.o
156
+ .data 0x000118e0 0x0 .obj/startup.o
157
+ 0x000118e0 data_end = .
158
+
159
+ .igot.plt 0x000118e0 0x0
145
160
.igot.plt 0x00000000 0x0 .obj/fiq.o
146
161
147
- .bss 0x000118ac 0x320
148
- 0x000118ac bss_start = .
162
+ .bss 0x000118e0 0x320
163
+ 0x000118e0 bss_start = .
149
164
*(.bss)
150
- .bss 0x000118ac 0x0 .obj/fiq.o
151
- .bss 0x000118ac 0x0 .obj/funcs.o
152
- .bss 0x000118ac 0x320 .obj/main.o
153
- 0x000118ac arr
154
- .bss 0x00011bcc 0x0 .obj/print.o
155
- .bss 0x00011bcc 0x0 .obj/syscall.o
156
- .bss 0x00011bcc 0x0 .obj/uart.o
157
- .bss 0x00011bcc 0x0 .obj/unwind.o
158
- .bss 0x00011bcc 0x0 .obj/exception.o
159
- .bss 0x00011bcc 0x0 .obj/intr.o
160
- .bss 0x00011bcc 0x0 .obj/lib1funcs.o
161
- .bss 0x00011bcc 0x0 .obj/startup.o
162
- 0x00011bcc bss_end = .
163
- 0x00011bcc . = ALIGN (0x4)
164
- 0x00211bcc . = (. + 0x200000)
165
- 0x00211bcc stack_top = .
165
+ .bss 0x000118e0 0x0 .obj/fiq.o
166
+ .bss 0x000118e0 0x0 .obj/funcs.o
167
+ .bss 0x000118e0 0x0 .obj/interrupt.o
168
+ .bss 0x000118e0 0x0 .obj/irq.o
169
+ .bss 0x000118e0 0x320 .obj/main.o
170
+ 0x000118e0 arr
171
+ .bss 0x00011c00 0x0 .obj/print.o
172
+ .bss 0x00011c00 0x0 .obj/syscall.o
173
+ .bss 0x00011c00 0x0 .obj/uart.o
174
+ .bss 0x00011c00 0x0 .obj/unwind.o
175
+ .bss 0x00011c00 0x0 .obj/exception.o
176
+ .bss 0x00011c00 0x0 .obj/intr.o
177
+ .bss 0x00011c00 0x0 .obj/lib1funcs.o
178
+ .bss 0x00011c00 0x0 .obj/startup.o
179
+ 0x00011c00 bss_end = .
180
+ 0x00011c00 . = ALIGN (0x4)
181
+ 0x00211c00 . = (. + 0x200000)
182
+ 0x00211c00 stack_top = .
166
183
OUTPUT(final elf32-littlearm)
167
184
168
185
.comment 0x00000000 0x30
169
186
.comment 0x00000000 0x30 .obj/fiq.o
170
187
0x31 (size before relaxing)
171
188
.comment 0x00000000 0x31 .obj/funcs.o
189
+ .comment 0x00000000 0x31 .obj/interrupt.o
190
+ .comment 0x00000000 0x31 .obj/irq.o
172
191
.comment 0x00000000 0x31 .obj/main.o
173
192
.comment 0x00000000 0x31 .obj/print.o
174
193
.comment 0x00000000 0x31 .obj/syscall.o
@@ -181,6 +200,10 @@ OUTPUT(final elf32-littlearm)
181
200
0x00000000 0x0 .obj/fiq.o
182
201
.note.GNU-stack
183
202
0x00000000 0x0 .obj/funcs.o
203
+ .note.GNU-stack
204
+ 0x00000000 0x0 .obj/interrupt.o
205
+ .note.GNU-stack
206
+ 0x00000000 0x0 .obj/irq.o
184
207
.note.GNU-stack
185
208
0x00000000 0x0 .obj/main.o
186
209
.note.GNU-stack
@@ -199,20 +222,24 @@ OUTPUT(final elf32-littlearm)
199
222
.ARM.attributes
200
223
0x00000034 0x34 .obj/funcs.o
201
224
.ARM.attributes
202
- 0x00000068 0x34 .obj/main.o
225
+ 0x00000068 0x34 .obj/interrupt.o
226
+ .ARM.attributes
227
+ 0x0000009c 0x34 .obj/irq.o
228
+ .ARM.attributes
229
+ 0x000000d0 0x34 .obj/main.o
203
230
.ARM.attributes
204
- 0x0000009c 0x34 .obj/print.o
231
+ 0x00000104 0x34 .obj/print.o
205
232
.ARM.attributes
206
- 0x000000d0 0x34 .obj/syscall.o
233
+ 0x00000138 0x34 .obj/syscall.o
207
234
.ARM.attributes
208
- 0x00000104 0x34 .obj/uart.o
235
+ 0x0000016c 0x34 .obj/uart.o
209
236
.ARM.attributes
210
- 0x00000138 0x34 .obj/unwind.o
237
+ 0x000001a0 0x34 .obj/unwind.o
211
238
.ARM.attributes
212
- 0x0000016c 0x24 .obj/exception.o
239
+ 0x000001d4 0x24 .obj/exception.o
213
240
.ARM.attributes
214
- 0x00000190 0x24 .obj/intr.o
241
+ 0x000001f8 0x24 .obj/intr.o
215
242
.ARM.attributes
216
- 0x000001b4 0x24 .obj/lib1funcs.o
243
+ 0x0000021c 0x24 .obj/lib1funcs.o
217
244
.ARM.attributes
218
- 0x000001d8 0x24 .obj/startup.o
245
+ 0x00000240 0x24 .obj/startup.o
0 commit comments