[En-Nut-Discussion] big .bss/.data and wdt fuse

Harald Kipp harald.kipp at egnite.de
Tue Jan 11 09:08:58 CET 2005


Przemek,

.bss is cleared to zero and .data is copied from "ROM"
to RAM. One solution I can think of is rewriting crt0.S,
which is part of the avr-libc.

Nut/OS comes with it's own startup for ARM, so it uses
the same symbols as the AVR runtime. However, I'd vote
against a Nut/OS specific startup, because the maintainers
of avr-libc do a very good job in keeping crt0.S flexible
and up to date.

Harald

At 22:44 10.01.2005 +0100, you wrote:
>Hi
>I should probably go with this question to avr-gcc list, but maybe you 
>have already faced similar problem.
>Correct me if I am wrong, but:
>1. The .bss and .data are put in RAM when system starts
>2. When wdt fuse is programmed, watchdog is active since power-on
>
>If the .bss and .data are big enough (about 18k in my case) the system 
>hangs just after power-on. It looks like the init code, that handles 
>setting .bss/.data into the RAM, does not care about the watchdog reset.
>If this is the case, an obvious solution is to decrease .data by moving 
>some to .pogmem area. But what if this is not possible and wdt fuse is 
>required?
>
>Regards
>Przemek




More information about the En-Nut-Discussion mailing list