[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

BSP requirements for C++ support

You wrote:
> What parts of the CPP support must be located in RAM? The way that
> most BSP's have been implemented, .text sections get copied to RAM.

And there's usually been a reason for that.
On many machines ROM is *much* slower than RAM.  For example, on the  
68360 board I'm working with, RAM is 32-bits wide, 60 nsec access.   
ROM is 8-bits wide, 180 nsec access.  Thus, getting values from ROM  
is 12 times slower......

I presume this isn't the case in your application (flash memory, perhaps)?

> The i386ex BSP leaves the .text section in ROM, and copies other
> sections to RAM ( idt, interrupts, gdt,data). Must the CTOR and
> DTOR lists be in RAM?

I'm not familiar with the details of C++ constructor and destructor  
lists, but I notice from looking at the binutils-2.8.1 source that  
some GLD scripts place them in the .text segment and other GLD  
scripts place them in the .data segment.  From this I intuit that  
they *can* be placed in read-only memory.

> Must the CREATE_OBJECT_SYMBOLS directive be in the text section? I
> don't know what that directive does, since the gcc 2.8.0 info
> package would not make. Can that directive be located in another
> section? ( perhaps a CTORS section? perhaps the .data section?)

That's just for creating symbol table entries for the object file  
names.  This directive has no other effect.

Eric Norum                                 eric at skatter.usask.ca
Saskatchewan Accelerator Laboratory        Phone: (306) 966-6308
University of Saskatchewan                 FAX:   (306) 966-6058
Saskatoon, Canada.