Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d4e29ed

Browse files
committed
cleanup
1 parent a76c82a commit d4e29ed

File tree

7 files changed

+201
-157
lines changed

7 files changed

+201
-157
lines changed

exception.S

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
.text
2-
32
reset:
43
b reset_vec
54
undefined:
@@ -34,19 +33,17 @@ abort_data_vec:
3433
b abort_data_vec
3534

3635
abort_prefetch_vec:
37-
bl screwed_up
3836
b abort_prefetch_vec
3937

4038
reserved_vec:
4139
b reserved_vec
4240

4341
irq_vec:
44-
bl fiq_handler
42+
b irq_handler
4543

4644
fiq_vec:
47-
b fiq_vec
45+
subs lr, lr, #4
46+
stmfd sp!, {r0-r3, lr}
4847
bl fiq_handler
49-
50-
.data
51-
STRING_IDT:
52-
.string "string data in idt"
48+
ldmfd sp!, {r0-r3, pc}^
49+
mov pc, sp

final.bin

53 Bytes
Binary file not shown.

final.map

Lines changed: 148 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Linker script and memory map
88

99
LOAD .obj/fiq.o
1010
LOAD .obj/funcs.o
11+
LOAD .obj/interrupt.o
12+
LOAD .obj/irq.o
1113
LOAD .obj/main.o
1214
LOAD .obj/print.o
1315
LOAD .obj/syscall.o
@@ -19,156 +21,173 @@ LOAD .obj/lib1funcs.o
1921
LOAD .obj/startup.o
2022
0x00000000 . = 0x0
2123

22-
.idt 0x00000000 0x50
24+
.idt 0x00000000 0x58
2325
.obj/exception.o(.text)
24-
.text 0x00000000 0x50 .obj/exception.o
26+
.text 0x00000000 0x58 .obj/exception.o
2527
0x00010000 . = 0x10000
2628

2729
.start 0x00010000 0x48
2830
.obj/startup.o(.text)
2931
.text 0x00010000 0x48 .obj/startup.o
3032
0x00010000 _reset
3133

32-
.text 0x00010048 0x1260
34+
.text 0x00010048 0x12b8
3335
0x00010048 text_start = .
3436
*(.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
97108
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
100113
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
104117
0x18 (size before relaxing)
105118

106-
.eh_frame_hdr 0x00011490 0x0
119+
.eh_frame_hdr 0x000114d8 0x0
107120
.eh_frame_hdr 0x00000000 0x0 .obj/startup.o
108121

109-
.glue_7 0x00011490 0x0
122+
.glue_7 0x000114d8 0x0
110123
.glue_7 0x00000000 0x0 linker stubs
111124

112-
.glue_7t 0x00011490 0x0
125+
.glue_7t 0x000114d8 0x0
113126
.glue_7t 0x00000000 0x0 linker stubs
114127

115-
.vfp11_veneer 0x00011490 0x0
128+
.vfp11_veneer 0x000114d8 0x0
116129
.vfp11_veneer 0x00000000 0x0 linker stubs
117130

118-
.v4_bx 0x00011490 0x0
131+
.v4_bx 0x000114d8 0x0
119132
.v4_bx 0x00000000 0x0 linker stubs
120133

121-
.iplt 0x00011490 0x0
134+
.iplt 0x000114d8 0x0
122135
.iplt 0x00000000 0x0 .obj/fiq.o
123136

124-
.rel.dyn 0x00011490 0x0
137+
.rel.dyn 0x000114d8 0x0
125138
.rel.iplt 0x00000000 0x0 .obj/fiq.o
126139

127-
.data 0x00011490 0x41b
128-
0x00011490 data_start = .
140+
.data 0x000114d8 0x408
141+
0x000114d8 data_start = .
129142
*(.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
145160
.igot.plt 0x00000000 0x0 .obj/fiq.o
146161

147-
.bss 0x000118ac 0x320
148-
0x000118ac bss_start = .
162+
.bss 0x000118e0 0x320
163+
0x000118e0 bss_start = .
149164
*(.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 = .
166183
OUTPUT(final elf32-littlearm)
167184

168185
.comment 0x00000000 0x30
169186
.comment 0x00000000 0x30 .obj/fiq.o
170187
0x31 (size before relaxing)
171188
.comment 0x00000000 0x31 .obj/funcs.o
189+
.comment 0x00000000 0x31 .obj/interrupt.o
190+
.comment 0x00000000 0x31 .obj/irq.o
172191
.comment 0x00000000 0x31 .obj/main.o
173192
.comment 0x00000000 0x31 .obj/print.o
174193
.comment 0x00000000 0x31 .obj/syscall.o
@@ -181,6 +200,10 @@ OUTPUT(final elf32-littlearm)
181200
0x00000000 0x0 .obj/fiq.o
182201
.note.GNU-stack
183202
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
184207
.note.GNU-stack
185208
0x00000000 0x0 .obj/main.o
186209
.note.GNU-stack
@@ -199,20 +222,24 @@ OUTPUT(final elf32-littlearm)
199222
.ARM.attributes
200223
0x00000034 0x34 .obj/funcs.o
201224
.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
203230
.ARM.attributes
204-
0x0000009c 0x34 .obj/print.o
231+
0x00000104 0x34 .obj/print.o
205232
.ARM.attributes
206-
0x000000d0 0x34 .obj/syscall.o
233+
0x00000138 0x34 .obj/syscall.o
207234
.ARM.attributes
208-
0x00000104 0x34 .obj/uart.o
235+
0x0000016c 0x34 .obj/uart.o
209236
.ARM.attributes
210-
0x00000138 0x34 .obj/unwind.o
237+
0x000001a0 0x34 .obj/unwind.o
211238
.ARM.attributes
212-
0x0000016c 0x24 .obj/exception.o
239+
0x000001d4 0x24 .obj/exception.o
213240
.ARM.attributes
214-
0x00000190 0x24 .obj/intr.o
241+
0x000001f8 0x24 .obj/intr.o
215242
.ARM.attributes
216-
0x000001b4 0x24 .obj/lib1funcs.o
243+
0x0000021c 0x24 .obj/lib1funcs.o
217244
.ARM.attributes
218-
0x000001d8 0x24 .obj/startup.o
245+
0x00000240 0x24 .obj/startup.o

fiq.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "print.h"
2-
int fiq_handler()
2+
int fiq_handle()
33
{
44
printk("In fiq handler\n");
5+
dump_cpsr(__func__);
56

67
}

0 commit comments

Comments
 (0)