summaryrefslogtreecommitdiff
path: root/firmware/crt0.S
diff options
context:
space:
mode:
authorTomasz Malesinski <tomal@rockbox.org>2006-01-24 23:32:53 +0000
committerTomasz Malesinski <tomal@rockbox.org>2006-01-24 23:32:53 +0000
commite0bb10420d4beab02c7ea3f757e9c57b040c6bf4 (patch)
tree991d333d077319cb0929f0b2ae84588803dff4fc /firmware/crt0.S
parent27c616fd46bbaee58c54eddc9ed406e6810dd3ca (diff)
downloadrockbox-e0bb10420d4beab02c7ea3f757e9c57b040c6bf4.tar.gz
rockbox-e0bb10420d4beab02c7ea3f757e9c57b040c6bf4.zip
added .vectors section for ARM
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8442 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/crt0.S')
-rw-r--r--firmware/crt0.S17
1 files changed, 10 insertions, 7 deletions
diff --git a/firmware/crt0.S b/firmware/crt0.S
index 54432c9731..ba478f804c 100644
--- a/firmware/crt0.S
+++ b/firmware/crt0.S
@@ -84,13 +84,13 @@ remap_end:
84#endif /* PP specific */ 84#endif /* PP specific */
85 85
86 /* Copy exception handler code to address 0 */ 86 /* Copy exception handler code to address 0 */
87 ldr r2, =ecode 87 ldr r2, =_vectorsstart
88 ldr r3, =ecodeend 88 ldr r3, =_vectorsend
89 mov r4, #0 89 ldr r4, =_vectorscopy
901: 901:
91 cmp r3, r2 91 cmp r3, r2
92 ldrhi r5, [r2], #4 92 ldrhi r5, [r4], #4
93 strhi r5, [r4], #4 93 strhi r5, [r2], #4
94 bhi 1b 94 bhi 1b
95 95
96 /* Zero out IBSS */ 96 /* Zero out IBSS */
@@ -259,7 +259,7 @@ boot_table:
259 /* main() should never return */ 259 /* main() should never return */
260 260
261/* Exception handlers. Will be copied to address 0 after memory remapping */ 261/* Exception handlers. Will be copied to address 0 after memory remapping */
262ecode: 262 .section .vectors,"aw"
263 ldr pc, [pc, #24] 263 ldr pc, [pc, #24]
264 ldr pc, [pc, #24] 264 ldr pc, [pc, #24]
265 ldr pc, [pc, #24] 265 ldr pc, [pc, #24]
@@ -270,6 +270,8 @@ ecode:
270 ldr pc, [pc, #24] 270 ldr pc, [pc, #24]
271 271
272 /* Exception vectors */ 272 /* Exception vectors */
273 .global vectors
274vectors:
273 .word start 275 .word start
274 .word undef_instr_handler 276 .word undef_instr_handler
275 .word software_int_handler 277 .word software_int_handler
@@ -278,7 +280,8 @@ ecode:
278 .word reserved_handler 280 .word reserved_handler
279 .word irq_handler 281 .word irq_handler
280 .word fiq_handler 282 .word fiq_handler
281ecodeend: 283
284 .text
282 285
283 .global irq 286 .global irq
284 .global UIE 287 .global UIE