diff options
Diffstat (limited to 'firmware/target/coldfire/crt0.S')
-rw-r--r-- | firmware/target/coldfire/crt0.S | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/firmware/target/coldfire/crt0.S b/firmware/target/coldfire/crt0.S index dbf01a347c..bc8a370823 100644 --- a/firmware/target/coldfire/crt0.S +++ b/firmware/target/coldfire/crt0.S | |||
@@ -234,15 +234,8 @@ start: | |||
234 | movec.l %d0,%acr1 | 234 | movec.l %d0,%acr1 |
235 | 235 | ||
236 | #ifndef BOOTLOADER | 236 | #ifndef BOOTLOADER |
237 | /* zero out .ibss */ | 237 | /* .iram copy is done first since it is reclaimed for other |
238 | lea _iedata,%a2 | 238 | * uninitialized sections */ |
239 | lea _iend,%a4 | ||
240 | bra.b .iedatastart | ||
241 | .iedataloop: | ||
242 | clr.l (%a2)+ | ||
243 | .iedatastart: | ||
244 | cmp.l %a2,%a4 | ||
245 | bhi.b .iedataloop | ||
246 | 239 | ||
247 | /* copy the .iram section */ | 240 | /* copy the .iram section */ |
248 | lea _iramcopy,%a2 | 241 | lea _iramcopy,%a2 |
@@ -254,6 +247,16 @@ start: | |||
254 | .iramstart: | 247 | .iramstart: |
255 | cmp.l %a3,%a4 | 248 | cmp.l %a3,%a4 |
256 | bhi.b .iramloop | 249 | bhi.b .iramloop |
250 | |||
251 | /* zero out .ibss */ | ||
252 | lea _iedata,%a2 | ||
253 | lea _iend,%a4 | ||
254 | bra.b .iedatastart | ||
255 | .iedataloop: | ||
256 | clr.l (%a2)+ | ||
257 | .iedatastart: | ||
258 | cmp.l %a2,%a4 | ||
259 | bhi.b .iedataloop | ||
257 | #endif /* !BOOTLOADER */ | 260 | #endif /* !BOOTLOADER */ |
258 | 261 | ||
259 | #ifdef IRIVER_H300_SERIES | 262 | #ifdef IRIVER_H300_SERIES |