[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.