I'm working on a arm-elf cross compiler for a Brutus board.
My latest problem trying to get a stand-alone system going (yet to happen)
appears to be in a routine to init memory that does the following:
SAir_InitBSSMemory:
        STMFD   sp!, {v1-v5, lr}
        LDR     v1, SA_TopOfROM         @ Copy predefined variables from here..
        LDR     v2, SA_StartOfBSS       @ ..to here
        LDR     v3, SA_ZeroBSS          @ 'C' BSS starts here
        CMP     v1, v2                  @ Make sure there are some..
        BEQ     8f
7:
        CMP     v2, v3                  @ Check if done..
        LDRCC   v4, [v1], #4            @ if not, get word and store to RAM
        STRCC   v4, [v2], #4
        BCC     7b

I've managed to the get the linker to set these to:
SA_TopOfROM: .word      _etext
SA_StartOfBSS: .word    .data
SA_ZeroBSS: .word       __bss_start__

_etext resulted to the start of .rodata section:
% arm-elf-objdump --header bounce3.elf 

bounce3.elf:     file format elf32-littlearm

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000049e8  00008000  00008000  00008000  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .rodata       00000100  0000c9e8  0000c9e8  0000c9e8  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .data         00000470  0000cbe8  0000cbe8  0000cbe8  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  3 .bss          0013cc0c  00010000  00010000  00010000  2**15
                  ALLOC

So the above assembler should copy the .rodata section on top
of the .data section until it rearches the .bss section. (Actually
to the end of the .data section, __bss_start__ was assigned 0xd058,
.data + 470)

The .rodata is only 0x100 in size, and the .data
is 0x470, so it not big enough to initialize the whole .data area.
As a result, all the .data section is not inialize correctly.

What happening here?

I've also noticed that some c file that initialize global variables
do not it a .rodata section, while others do.

Mark




unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]

Reply via email to