Allocate memory from predefined section

Daniel Lidsten Daniel.Lidsten@combitechsystems.com
Tue Jul 30 04:34:00 GMT 2002


Hi,

I am having some trouble with my mpc850. Currently i cache all RAM data
and because of that both the serial port and ethernet have stoped
working. A workaround for this problem is to let the serial and ethernet
drivers allocate memory in a section that is not cached. 

Is there a way to tell the compiler/linker that all memory used within
certain files (typ smc.c) shall be allocated from a predefined section
or do i have to rewrite the code to allocate memory from a the new
section. In the below clip i have created a new section called ioRAM
where i want to put all serial and ethernet related data.

Any ideas?

Regards, Daniel


MEMORY
{
    ram : ORIGIN = 0, LENGTH = 0xefffff
    ioRAM : ORIGIN = 0xf00000, LENGTH = 0x100000
}

SECTIONS
{
    SECTIONS_BEGIN
    SECTION_vectors (ram, 0, LMA_EQ_VMA)
    SECTION_text (ram, 0x5000, LMA_EQ_VMA)
    SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_rodata1 (ram, ALIGN (0x8), LMA_EQ_VMA)
    SECTION_rodata (ram, ALIGN (0x8), LMA_EQ_VMA)
    SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_gcc_except_table (ram, ALIGN (0x1), LMA_EQ_VMA)
    SECTION_data (ram, ALIGN (0x8), LMA_EQ_VMA)
    SECTION_sbss (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
    CYG_LABEL_DEFN(__IOSpace) = 0xf00000; . = CYG_LABEL_DEFN(__IOSpace)
+ 0x100000;
    SECTIONS_END
}


------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com



More information about the crossgcc mailing list