您的位置:首页 > 编程语言

将代码段和数据段分离在cache和uncache空间

2015-06-20 12:40 323 查看
OUTPUT_FORMAT(OUT_FORMAT, "elf32-tradbigmips",

OUT_FORMAT)

OUTPUT_ARCH(OUT_ARCH)

ENTRY(_start)

SECTIONS

{

. = STARTADDR+0x20000000;

.text : AT(ADDR(.text)-0x20000000)

{

_ftext = . ;

*(.text)

*(.rodata)

*(.rodata1)

*(.reginfo)

*(.init)

*(.stub)

*(.gnu.warning)

} =0

_etext = .;

PROVIDE (etext = .);

.fini : { *(.fini) } =0

. = . - 0x20000000;

.data :

{

_fdata = . ;

*(.data)

. = ALIGN(32);

*(.data.align32)

. = ALIGN(64);

*(.data.align64)

. = ALIGN(128);

*(.data.align128)

. = ALIGN(4096);

*(.data.align4096)

CONSTRUCTORS

}

.data1 : { *(.data1) }

.ctors :

{

__CTOR_LIST__ = .;

LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)

*(.ctors)

LONG(0)

__CTOR_END__ = .;

}

.dtors :

{

__DTOR_LIST__ = .;

LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)

*(.dtors)

LONG(0)

__DTOR_END__ = .;

}

_gp = ALIGN(16) + 0x8000;

.got :

{

*(.got.plt) *(.got)

}

.sdata : { *(.sdata) }

.lit8 : { *(.lit8) }

.lit4 : { *(.lit4) }

_edata = .;

PROVIDE (edata = .);

__bss_start = .;

_fbss = .;

.sbss : { *(.sbss) *(.scommon) }

.bss :

{

*(.dynbss)

*(.bss)

. = ALIGN(32);

*(.bss.align32)

. = ALIGN(64);

*(.bss.align64)

. = ALIGN(128);

*(.bss.align128)

. = ALIGN(4096);

*(.bss.align4096)

*(.COMMON)

}

. = ALIGN(4);

_end = .;

PROVIDE (end = .);

.stab 0 : { *(.stab) }

.stabstr 0 : { *(.stabstr) }

.debug 0 : { *(.debug) }

.debug_srcinfo 0 : { *(.debug_srcinfo) }

.debug_aranges 0 : { *(.debug_aranges) }

.debug_pubnames 0 : { *(.debug_pubnames) }

.debug_sfnames 0 : { *(.debug_sfnames) }

.line 0 : { *(.line) }

.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }

.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: