YB_TX_RX_APE_PRJ/Common/Scripts/ECS_RFM-spu0-noCache.ld

98 lines
3.0 KiB
Plaintext
Raw Normal View History

2025-03-02 13:41:38 +08:00
ENTRY( __ucps2_init ) ;
PROVIDE(__ucps2_istack_bottom = (0x40000 - 0x40)) ;
PROVIDE(__ucps2_dstack_bottom = (0x220000 - 0x40)) ;/* DM0 */
PROVIDE(__ucps2_heap_bottom = (0x40000 - 0x40)) ;
PROVIDE(__ucps2_d0heap_bottom = 0x220000) ;
PROVIDE(__ucps2_d1heap_bottom = 0x260000) ;
PROVIDE(__ucps2_d2heap_bottom = 0x2c0000) ;
PROVIDE(__ucps2_d3heap_bottom = 0x300000) ;
PROVIDE(__ucps2_d4heap_bottom = 0x340000) ;
PROVIDE(__ucps2_d5heap_bottom = 0x380000) ;
PROVIDE(__ucps2_d6heap_bottom = 0x3c0000) ;
PROVIDE(__ucps2_d7heap_bottom = 0x400000) ;
/****************************************************************
* The segments definition, which affect the load address of the
* elf.
*/
PHDRS {
TEXT PT_LOAD;
DATA PT_LOAD;
RODATA PT_LOAD;
DM0 PT_LOAD;
DM1 PT_LOAD;
}
/* All text code & data are in IM */
SECTIONS {
/* All .text & .data & .bss are located in IM */
. = 0x000000;
.text : { *(.text.start)
ASSERT((. <= 0x40000), "Error: No room for SPU start .text");
} : TEXT
.text : { *(.text*)
ASSERT((. <= 0x40000), "Error: No room for SPU's .text");
} : TEXT
/* tag start point for bss */
__ucps2_bss_start = ALIGN(0x4);
.sbss : { *(.sbss.1*) } : DATA
.sbss : { *(.sbss.2*) } : DATA
.sbss : { *(.sbss.4*) } : DATA
.sbss : { *(.sbss.8*) } : DATA
.sbss : { *(.sbss*)
ASSERT((. <= 0x40000), "Error: No room for .sbss");
} : DATA
.bss : { *(.bss*)
ASSERT((. <= 0x40000), "Error: No room for .bss");
} : DATA
__ucps2_bss_end = ALIGN(0x4);
.sdata : { *(.sdata.1*) } : DATA
.sdata : { *(.sdata.2*) } : DATA
.sdata : { *(.sdata.4*) } : DATA
.sdata : { *(.sdata.8*) } : DATA
.sdata : { *(.sdata*)
ASSERT((. <= 0x40000), "Error: No room for .sdata");
} : DATA
.rodata : { *(.rodata*)
ASSERT((. <= 0x40000), "Error: No room for .rodata");
} : RODATA
HIDDEN(__section_end = ALIGN(4));
/* tag start point for heap */
__ucps2_heap_start = ALIGN(0x8);
/********************************************/
. = 0x200000;
HIDDEN(__section_start = .);
.DM0 : { *( .DM0 )
ASSERT((. <= 0x220000), "Error: No room for .DM0");
} : DM0
HIDDEN(__section_end = ALIGN(4) - __section_start + __section_end);
/* tag start point for heap in DM0 */
__ucps2_d0heap_start = ALIGN(0x8);
. = 0x240000;
HIDDEN(__section_start = .);
.DM1 : { *( .DM1 )
ASSERT((. <= 0x260000), "Error: No room for .DM1");
} : DM1
HIDDEN(__section_end = ALIGN(4) - __section_start + __section_end);
/* tag start point for heap in DM1 */
__ucps2_d1heap_start = ALIGN(0x8);
__ucps2_d2heap_start = 0x2c0000;
__ucps2_d3heap_start = 0x300000;
__ucps2_d4heap_start = 0x340000;
__ucps2_d5heap_start = 0x380000;
__ucps2_d6heap_start = 0x3c0000;
__ucps2_d7heap_start = 0x400000;
HIDDEN(__section_start = 0xffffffff);
HIDDEN(__section_end = 0xffffffff);
}