diff options
author | Tomasz Malesinski <tomal@rockbox.org> | 2006-01-24 23:32:53 +0000 |
---|---|---|
committer | Tomasz Malesinski <tomal@rockbox.org> | 2006-01-24 23:32:53 +0000 |
commit | e0bb10420d4beab02c7ea3f757e9c57b040c6bf4 (patch) | |
tree | 991d333d077319cb0929f0b2ae84588803dff4fc /firmware/crt0.S | |
parent | 27c616fd46bbaee58c54eddc9ed406e6810dd3ca (diff) | |
download | rockbox-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.S | 17 |
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 |
90 | 1: | 90 | 1: |
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 */ |
262 | ecode: | 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 | ||
274 | vectors: | ||
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 |
281 | ecodeend: | 283 | |
284 | .text | ||
282 | 285 | ||
283 | .global irq | 286 | .global irq |
284 | .global UIE | 287 | .global UIE |