Use __bss_start available via %g4 to clear the BSS section. The usage of _edata resulted in a copy of [_edata, __bss_start) from ROM to RAM and then a clear to zero of this area.
Clear now only [__bss_start, _end). --- c/src/lib/libbsp/sparc/shared/start/start.S | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/c/src/lib/libbsp/sparc/shared/start/start.S b/c/src/lib/libbsp/sparc/shared/start/start.S index 26da7b4..b191c7e 100644 --- a/c/src/lib/libbsp/sparc/shared/start/start.S +++ b/c/src/lib/libbsp/sparc/shared/start/start.S @@ -344,8 +344,7 @@ copy_data: /* clear the bss */ 1: - sethi %hi(_edata),%g2 - or %g2,%lo(_edata),%g2 ! g2 = start of bss + mov %g4, %g2 ! g2 = start of bss sethi %hi(_end),%g3 or %g3,%lo(_end),%g3 ! g3 = end of bss mov %g0,%g1 ! so std has two zeros -- 1.7.7 _______________________________________________ rtems-devel mailing list rtems-devel@rtems.org http://www.rtems.org/mailman/listinfo/rtems-devel