#--------------------------------------------------------------------------- # Project: TwlSDK - include # File: ARM9-TS.lcf.template # # Copyright 2007-2008 Nintendo. All rights reserved. # # These coded instructions, statements, and computer programs contain # proprietary information of Nintendo of America Inc. and/or Nintendo # Company Ltd., and are protected by Federal copyright law. They may # not be disclosed to third parties or copied or duplicated in any form, # in whole or in part, without the prior written consent of Nintendo. # # $Date:: 2009-02-25#$ # $Rev: 10083 $ # $Author: yada $ #--------------------------------------------------------------------------- MEMORY { (RWX) : ORIGIN = , LENGTH = 0x0 > (RWX) : ORIGIN = , LENGTH = 0x0 >> binary.AUTOLOAD_INFO (RWX) : ORIGIN = 0, LENGTH = 0x0 >> binary.STATIC_FOOTER (RWX) : ORIGIN = 0, LENGTH = 0x0 >> F (RW) : ORIGIN = 0, LENGTH = 0x0 > F (RW) : ORIGIN = 0, LENGTH = 0x0 > (RWXO): ORIGIN = , LENGTH = 0x0 > dummy.MAIN_EX.NITRO (RW) : ORIGIN = 0x023e0000, LENGTH = 0x0 arena.MAIN.NITRO (RW) : ORIGIN = AFTER(,), LENGTH = 0x0 arena.MAIN_EX.NITRO (RW) : ORIGIN = AFTER(dummy.MAIN_EX.NITRO,), LENGTH = 0x0 arena.ITCM (RW) : ORIGIN = AFTER(ITCM,), LENGTH = 0x0 arena.DTCM (RW) : ORIGIN = AFTER(DTCM,), LENGTH = 0x0 check.ITCM (RW) : ORIGIN = 0x0, LENGTH = 0x08000 > itcm.check check.DTCM (RW) : ORIGIN = 0x0, LENGTH = 0x04000 > dtcm.check binary.LTDAUTOLOAD_TOP (RW) : ORIGIN = 0, LENGTH = 0x0 > (RWX) : ORIGIN = , LENGTH = 0x0 >> binary.LTDAUTOLOAD_INFO (RWX) : ORIGIN = 0, LENGTH = 0x0 >> L (RW) : ORIGIN = 0, LENGTH = 0x0 > L (RW) : ORIGIN = 0, LENGTH = 0x0 > (RWXO): ORIGIN = , LENGTH = 0x0 > dummy.MAIN_EX.TWL (RW) : ORIGIN = 0x0d000000, LENGTH = 0x0 arena.MAIN.TWL (RW) : ORIGIN = AFTER(,,LTDMAIN,), LENGTH = 0x0 arena.MAIN_EX.TWL (RW) : ORIGIN = AFTER(dummy.MAIN_EX.TWL,,,LTDMAIN,,), LENGTH = 0x0 binary.MODULE_FILES (RW) : ORIGIN = 0, LENGTH = 0x0 > component.files COMMON__ (RW) : ORIGIN = 0x0, LENGTH = 0x01400 > common.check PARENT__ (RW) : ORIGIN = 0x0, LENGTH = 0x02000 > parent.check } FORCE_ACTIVE { SVC_SoftReset } KEEP_SECTION { .sinit } SECTIONS { ############################ STATIC ################################# .: { ALIGNALL(4); . = ALIGN(32); # Fit to cache line # # Definition to refer overlay segment, when same name symbols exist in multiple overlays # SEARCH_SYMBOL ; # # TEXT BLOCK: READ ONLY # SDK_STATIC_START =.; SDK_STATIC_TEXT_START =.; #:::::::::: text/rodata #:: Common A ----- 5KB SDK_STATIC_TEXT_COMMON_START =.; libsyscall.a (.text) OBJECT(_start,*) crt0.FLX.TWL.o (.text) crt0.FLX.TWL.o (.rodata) # # Added .version section. # The information included in this section will be needed for Lotcheck purposes. Be sure to leave it in this position. # # * (.version) SDK_STATIC_TEXT_COMMON_END =.; .= SDK_STATIC_START + 5 * 1024; #:: Parent Only -- 8KB SDK_STATIC_TEXT_PARENT_START =.; # # Collected .parent section code # Notice that .bss, .data section code is not included! * (.parent) # SDK_STATIC_TEXT_PARENT_END =.; .= SDK_STATIC_START + 13 * 1024; #:: Common B ----- 3KB + ... OBJECT(TwlMain,*) * (.exception) . = ALIGN(4); SDK_STATIC_ETABLE_START =.; __exception_table_start__ =.; EXCEPTION __exception_table_end__ =.; SDK_STATIC_ETABLE_END =.; . = ALIGN(4); SDK_STATIC_SINIT_START =.; #:::::::::: ctor WRITEW 0; #:::::::::: ctor SDK_STATIC_SINIT_END =.; #:::::::::: text/rodata SDK_STATIC_TEXT_END =.; # # DATA BLOCK: READ WRITE # . = ALIGN(32); # Fit to cache line SDK_STATIC_DATA_START =.; #:::::::::: Data . = ALIGN(4); SDK_LTDOVERLAYTABLE_DIGEST =.; . = . + 20; SDK_LTDOVERLAYTABLE_DIGEST_END =.; SDK_OVERLAYTABLE_DIGEST =.; . = . + 20; SDK_OVERLAYTABLE_DIGEST_END =.; SDK_OVERLAY_DIGEST =.; . = . + * 20; . = . + * 20; SDK_OVERLAY_DIGEST_END =.; #:::::::::: Data . = ALIGN(32); SDK_STATIC_DATA_END =.; SDK_STATIC_END =.; SDK_STATIC_TEXT_SIZE = SDK_STATIC_TEXT_END - SDK_STATIC_TEXT_START; SDK_STATIC_DATA_SIZE = SDK_STATIC_DATA_END - SDK_STATIC_DATA_START; SDK_STATIC_SIZE = SDK_STATIC_END - SDK_STATIC_START; __sinit__ = SDK_STATIC_SINIT_START; # For static initializer } > ..bss: { ALIGNALL(4); . = ALIGN(32); # Fit to cache line # # Definition to refer overlay segment, when same name symbols exist in multiple overlays # SEARCH_SYMBOL ; # # BSS BLOCK # SDK_STATIC_BSS_START =.; #:::::::::: bss #:::::::::: bss . = ALIGN(32); SDK_STATIC_BSS_END = .; SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START; } >> ############################ AUTOLOADS ############################## SDK_AUTOLOAD.ITCM.START = 0x01ff8000; SDK_AUTOLOAD.ITCM.END = SDK_AUTOLOAD.ITCM.START; SDK_AUTOLOAD.ITCM.BSS_END = SDK_AUTOLOAD.ITCM.START; SDK_AUTOLOAD.ITCM.SIZE = 0; SDK_AUTOLOAD.ITCM.BSS_SIZE = 0; SDK_AUTOLOAD.DTCM.START = 0x02fe0000; SDK_AUTOLOAD.DTCM.END = SDK_AUTOLOAD.DTCM.START; SDK_AUTOLOAD.DTCM.BSS_END = SDK_AUTOLOAD.DTCM.START; SDK_AUTOLOAD.DTCM.SIZE = 0; SDK_AUTOLOAD.DTCM.BSS_SIZE = 0; SDK_AUTOLOAD_START = SDK_STATIC_END; SDK_AUTOLOAD_SIZE = 0; SDK_AUTOLOAD_NUMBER = ; .: { ALIGNALL(4); . = ALIGN(32); # # Definition to refer overlay segment, when same name symbols exist in multiple overlays # SEARCH_SYMBOL ; # # TEXT BLOCK: READ ONLY # SDK_AUTOLOAD__ID =; SDK_AUTOLOAD..ID =; SDK_AUTOLOAD..START =.; SDK_AUTOLOAD..TEXT_START =.; #:::::::::: text/rodata . = ALIGN(4); SDK_AUTOLOAD..SINIT_START = .; #:::::::::: ctor WRITEW 0; #:::::::::: ctor SDK_AUTOLOAD..SINIT_END = .; #:::::::::: text/rodata SDK_AUTOLOAD..TEXT_END =.; # # DATA BLOCK: READ WRITE BLOCK # . = ALIGN(32); SDK_AUTOLOAD..DATA_START =.; #:::::::::: Data #:::::::::: Data SDK_AUTOLOAD..DATA_END =.; . = ALIGN(32); SDK_AUTOLOAD..END =.; SDK_AUTOLOAD..TEXT_SIZE = SDK_AUTOLOAD..TEXT_END - SDK_AUTOLOAD..TEXT_START; SDK_AUTOLOAD..DATA_SIZE = SDK_AUTOLOAD..DATA_END - SDK_AUTOLOAD..DATA_START; SDK_AUTOLOAD..SIZE = SDK_AUTOLOAD..END - SDK_AUTOLOAD..START; SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SDK_AUTOLOAD..SIZE; } > ..bss: { ALIGNALL(4); . = ALIGN(32); # # Definition to refer overlay segment, when same name symbols exist in multiple overlays # SEARCH_SYMBOL # # BSS BLOCK # SDK_AUTOLOAD..BSS_START = .; #:::::::::: bss #:::::::::: bss . = ALIGN(32); SDK_AUTOLOAD..BSS_END = .; SDK_AUTOLOAD..BSS_SIZE = SDK_AUTOLOAD..BSS_END - SDK_AUTOLOAD..BSS_START; } >> SDK_AUTOLOAD_ITCM_START = SDK_AUTOLOAD.ITCM.START; SDK_AUTOLOAD_ITCM_END = SDK_AUTOLOAD.ITCM.END; SDK_AUTOLOAD_ITCM_BSS_END = SDK_AUTOLOAD.ITCM.BSS_END; SDK_AUTOLOAD_ITCM_SIZE = SDK_AUTOLOAD.ITCM.SIZE; SDK_AUTOLOAD_ITCM_BSS_SIZE = SDK_AUTOLOAD.ITCM.BSS_SIZE; SDK_AUTOLOAD_DTCM_START = SDK_AUTOLOAD.DTCM.START; SDK_AUTOLOAD_DTCM_END = SDK_AUTOLOAD.DTCM.END; SDK_AUTOLOAD_DTCM_BSS_END = SDK_AUTOLOAD.DTCM.BSS_END; SDK_AUTOLOAD_DTCM_SIZE = SDK_AUTOLOAD.DTCM.SIZE; SDK_AUTOLOAD_DTCM_BSS_SIZE = SDK_AUTOLOAD.DTCM.BSS_SIZE; ############################ AUTOLOAD_INFO ########################## .binary.AUTOLOAD_INFO: { WRITEW ADDR(.); WRITEW SDK_AUTOLOAD..SIZE; WRITEW SDK_AUTOLOAD..SINIT_START; WRITEW SDK_AUTOLOAD..BSS_SIZE; } > binary.AUTOLOAD_INFO SDK_AUTOLOAD_LIST = SDK_AUTOLOAD_START + SDK_AUTOLOAD_SIZE; SDK_AUTOLOAD_LIST_END = SDK_AUTOLOAD_START + SDK_AUTOLOAD_SIZE + SIZEOF(.binary.AUTOLOAD_INFO); SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SIZEOF(.binary.AUTOLOAD_INFO); ############################ STATIC_FOOTER ########################## .binary.STATIC_FOOTER: { WRITEW 0xdec00621; # LE(0x2106C0DE) = NITRO CODE WRITEW _start_ModuleParams - ADDR(.); WRITEW SDK_OVERLAY_DIGEST - ADDR(.); WRITEW _start_LtdModuleParams - ADDR(.); } > binary.STATIC_FOOTER ############################ OVERLAYS ############################### SDK_OVERLAY_NUMBER = ; .: { ALIGNALL(4); . = ALIGN(32); # Fit to cache line # # Definition to refer overlay segment, when same name symbols exist in multiple overlays # SEARCH_SYMBOL ; # # TEXT BLOCK: READ ONLY # SDK_OVERLAY__ID =; ### SEGMENT OVERLAY ID SDK_OVERLAY..ID =; SDK_OVERLAY..START =.; SDK_OVERLAY..TEXT_START =.; #:::::::::: text/rodata . = ALIGN(4); SDK_OVERLAY..SINIT_START =.; #:::::::::: ctor WRITEW 0; #:::::::::: ctor SDK_OVERLAY..SINIT_END =.; #:::::::::: text/rodata SDK_OVERLAY..TEXT_END =.; # # DATA BLOCK: READ WRITE # . = ALIGN(32); SDK_OVERLAY..DATA_START =.; #:::::::::: Data #:::::::::: Data SDK_OVERLAY..DATA_END =.; . = ALIGN(32); SDK_OVERLAY..END =.; SDK_OVERLAY..TEXT_SIZE = SDK_OVERLAY..TEXT_END - SDK_OVERLAY..TEXT_START; SDK_OVERLAY..DATA_SIZE = SDK_OVERLAY..DATA_END - SDK_OVERLAY..DATA_START; SDK_OVERLAY..SIZE = SDK_OVERLAY..END - SDK_OVERLAY..START; } > ..bss: { ALIGNALL(4); . = ALIGN(32); # # Definition to refer overlay segment, when same name symbols exist in multiple overlays # SEARCH_SYMBOL ; # # BSS BLOCK # SDK_OVERLAY..BSS_START = .; #:::::::::: bss #:::::::::: bss . = ALIGN(32); SDK_OVERLAY..BSS_END = .; SDK_OVERLAY..BSS_SIZE = SDK_OVERLAY..BSS_END - SDK_OVERLAY..BSS_START; } >> ############################ OVERLAYDEFS ############################ .F: { ### module information WRITEW ADDR(.); # Load address WRITEW _start; # Entry address WRITEW SDK_STATIC_SIZE + SDK_AUTOLOAD_SIZE; # Size of module WRITEW _start_AutoloadDoneCallback; # Callback autoload done ### overlay filename WRITES (""); # Overlay } > F ############################ OVERLAYTABLE ########################### .F: { WRITEW ; # Overlay ID WRITEW ADDR(.); # Load address WRITEW SDK_OVERLAY..SIZE; # Size of module WRITEW SDK_OVERLAY..BSS_SIZE; # Size of bss WRITEW SDK_OVERLAY..SINIT_START; # Start address of static init WRITEW SDK_OVERLAY..SINIT_END; # End address of static init WRITEW ; # ROM file ID WRITEW 0; # compressed state } > F ############################ ARENA ################################## .dummy.MAIN_EX.NITRO: { . = ALIGN(32); } > dummy.MAIN_EX.NITRO .arena.MAIN.NITRO: { . = ALIGN(32); SDK_SECTION_ARENA_START =.; } > arena.MAIN.NITRO .arena.MAIN_EX.NITRO: { . = ALIGN(32); SDK_SECTION_ARENA_EX_START =.; } > arena.MAIN_EX.NITRO .arena.ITCM: { . = ALIGN(32); SDK_SECTION_ARENA_ITCM_START =.; } > arena.ITCM .arena.DTCM: { . = ALIGN(32); SDK_SECTION_ARENA_DTCM_START =.; } > arena.DTCM ############################ OTHERS ################################# SDK_MAIN_ARENA_LO = SDK_SECTION_ARENA_START; SDK_IRQ_STACKSIZE = ; # Allocated in DTCM SDK_SYS_STACKSIZE = ; # When 0 means all remains of DTCM SDK_SYS_STACKSIZE_SIGN = (SDK_SYS_STACKSIZE < 0x80000000) * 2 - 1; .check.ITCM: { . = . + SDK_AUTOLOAD_ITCM_SIZE + SDK_AUTOLOAD_ITCM_BSS_SIZE; . = . + SDK_OVERLAY..SIZE + SDK_OVERLAY..BSS_SIZE; } > check.ITCM .check.DTCM: { . = . + SDK_AUTOLOAD_DTCM_SIZE + SDK_AUTOLOAD_DTCM_BSS_SIZE; . = . + SDK_OVERLAY..SIZE + SDK_OVERLAY..BSS_SIZE; . = . + 0x080 + SDK_IRQ_STACKSIZE + SDK_SYS_STACKSIZE * SDK_SYS_STACKSIZE_SIGN; } > check.DTCM .COMMON__: { . = . + SDK_STATIC_TEXT_COMMON_END - SDK_STATIC_TEXT_COMMON_START; } > COMMON__ .PARENT__: { . = . + SDK_STATIC_TEXT_PARENT_END - SDK_STATIC_TEXT_PARENT_START; } > PARENT__ ########################### LTDAUTOLOADS ############################ SDK_LTDAUTOLOAD.LTDMAIN.START = SDK_STATIC_BSS_END; SDK_LTDAUTOLOAD.LTDMAIN.END = SDK_LTDAUTOLOAD.LTDMAIN.START; SDK_LTDAUTOLOAD.LTDMAIN.BSS_END = SDK_LTDAUTOLOAD.LTDMAIN.START; SDK_LTDAUTOLOAD.LTDMAIN.SIZE = 0; SDK_LTDAUTOLOAD.LTDMAIN.BSS_SIZE = 0; SDK_LTDAUTOLOAD_TOP_START = 0x02400000; SDK_LTDAUTOLOAD_TOP_SIZE = 4; # While there is no STATIC region, a 4-byte dummy is at the top of the binary file SDK_LTDAUTOLOAD_START = SDK_LTDAUTOLOAD_TOP_START + SDK_LTDAUTOLOAD_TOP_SIZE; SDK_LTDAUTOLOAD_SIZE = 0; SDK_LTDAUTOLOAD_NUMBER = ; .binary.LTDAUTOLOAD_TOP: { WRITEW 0; } > binary.LTDAUTOLOAD_TOP .: { ALIGNALL(4); . = ALIGN(32); # Fit to cache line # # Definition to refer overlay segment, when same name symbols exist in multiple overlays # SEARCH_SYMBOL ; SDK_LTDAUTOLOAD__ID =; SDK_LTDAUTOLOAD..ID =; SDK_LTDAUTOLOAD..START =.; # # TEXT BLOCK: READ ONLY # SDK_LTDAUTOLOAD..TEXT_START =.; #:::::::::: text/rodata . = ALIGN(4); SDK_LTDAUTOLOAD..SINIT_START = .; #:::::::::: ctor WRITEW 0; #:::::::::: ctor SDK_LTDAUTOLOAD..SINIT_END = .; #:::::::::: text/rodata SDK_LTDAUTOLOAD..TEXT_END =.; # # DATA BLOCK: READ WRITE # . = ALIGN(32); SDK_LTDAUTOLOAD..DATA_START =.; #:::::::::: Data #:::::::::: Data SDK_LTDAUTOLOAD..DATA_END =.; . = ALIGN(32); SDK_LTDAUTOLOAD..END =.; SDK_LTDAUTOLOAD..TEXT_SIZE = SDK_LTDAUTOLOAD..TEXT_END - SDK_LTDAUTOLOAD..TEXT_START; SDK_LTDAUTOLOAD..DATA_SIZE = SDK_LTDAUTOLOAD..DATA_END - SDK_LTDAUTOLOAD..DATA_START; SDK_LTDAUTOLOAD..SIZE = SDK_LTDAUTOLOAD..END - SDK_LTDAUTOLOAD..START; SDK_LTDAUTOLOAD_SIZE = SDK_LTDAUTOLOAD_SIZE + SDK_LTDAUTOLOAD..SIZE; } > ..bss: { ALIGNALL(4); . = ALIGN(32); # # Definition to refer overlay segment, when same name symbols exist in multiple overlays # SEARCH_SYMBOL ; # # BSS BLOCK # SDK_LTDAUTOLOAD..BSS_START =.; #:::::::::: bss #:::::::::: bss . = ALIGN(32); SDK_LTDAUTOLOAD..BSS_END =.; SDK_LTDAUTOLOAD..BSS_SIZE = SDK_LTDAUTOLOAD..BSS_END - SDK_LTDAUTOLOAD..BSS_START; } >> SDK_LTDAUTOLOAD_LTDMAIN_START = SDK_LTDAUTOLOAD.LTDMAIN.START; SDK_LTDAUTOLOAD_LTDMAIN_END = SDK_LTDAUTOLOAD.LTDMAIN.END; SDK_LTDAUTOLOAD_LTDMAIN_BSS_END = SDK_LTDAUTOLOAD.LTDMAIN.BSS_END; SDK_LTDAUTOLOAD_LTDMAIN_SIZE = SDK_LTDAUTOLOAD.LTDMAIN.SIZE; SDK_LTDAUTOLOAD_LTDMAIN_BSS_SIZE = SDK_LTDAUTOLOAD.LTDMAIN.BSS_SIZE; ######################### LTDAUTOLOAD_INFO ########################## .binary.LTDAUTOLOAD_INFO: { WRITEW ADDR(.); WRITEW SDK_LTDAUTOLOAD..SIZE; WRITEW SDK_LTDAUTOLOAD..SINIT_START; WRITEW SDK_LTDAUTOLOAD..BSS_SIZE; } > binary.LTDAUTOLOAD_INFO SDK_LTDAUTOLOAD_LIST = SDK_LTDAUTOLOAD_START + SDK_LTDAUTOLOAD_SIZE; SDK_LTDAUTOLOAD_LIST_END = SDK_LTDAUTOLOAD_LIST + SIZEOF(.binary.LTDAUTOLOAD_INFO); SDK_LTDAUTOLOAD_SIZE = SDK_LTDAUTOLOAD_SIZE + SIZEOF(.binary.LTDAUTOLOAD_INFO); ########################### LTDOVERLAYS ############################# SDK_LTDOVERLAY_NUMBER = ; .: { ALIGNALL(4); . = ALIGN(32); # # Definition to refer overlay segment, when same name symbols exist in multiple overlays # SEARCH_SYMBOL ; SDK_LTDOVERLAY__ID =; SDK_LTDOVERLAY..ID =; SDK_LTDOVERLAY..START =.; # # TEXT BLOCK: READ ONLY # SDK_LTDOVERLAY..TEXT_START =.; #:::::::::: text/rodata . = ALIGN(4); SDK_LTDOVERLAY..SINIT_START =.; #:::::::::: ctor WRITEW 0; #:::::::::: ctor SDK_LTDOVERLAY..SINIT_END =.; #:::::::::: text/rodata SDK_LTDOVERLAY..TEXT_END =.; # # DATA BLOCK: READ WRITE # . = ALIGN(32); SDK_LTDOVERLAY..DATA_START =.; #:::::::::: Data #:::::::::: Data SDK_LTDOVERLAY..DATA_END =.; . = ALIGN(32); SDK_LTDOVERLAY..END =.; SDK_LTDOVERLAY..TEXT_SIZE = SDK_LTDOVERLAY..TEXT_END - SDK_LTDOVERLAY..TEXT_START; SDK_LTDOVERLAY..DATA_SIZE = SDK_LTDOVERLAY..DATA_END - SDK_LTDOVERLAY..DATA_START; SDK_LTDOVERLAY..SIZE = SDK_LTDOVERLAY..END - SDK_LTDOVERLAY..START; } > ..bss: { ALIGNALL(4); . = ALIGN(32); # # Definition to refer overlay segment, when same name symbols exist in multiple overlays # SEARCH_SYMBOL ; # # BSS BLOCK # SDK_LTDOVERLAY..BSS_START =.; #:::::::::: bss #:::::::::: bss . = ALIGN(32); SDK_LTDOVERLAY..BSS_END =.; SDK_LTDOVERLAY..BSS_SIZE = SDK_LTDOVERLAY..BSS_END - SDK_LTDOVERLAY..BSS_START; } >> ########################## LTDOVERLAYDEFS ########################### .L: { ### TWL limited extended static module information WRITEW SDK_LTDAUTOLOAD_TOP_START; # Load address WRITEW 0; # Padding WRITEW SDK_LTDAUTOLOAD_SIZE + SDK_LTDAUTOLOAD_TOP_SIZE; # Size of module WRITEW 0; # Padding ### TWL limited overlay filename WRITES (""); } > L ######################### LTDOVERLAYTABLE ########################### .L: { WRITEW ; # Overlay ID WRITEW ADDR(.); # Load address WRITEW SDK_LTDOVERLAY..SIZE; # Size of module WRITEW SDK_LTDOVERLAY..BSS_SIZE; # Size of bss WRITEW SDK_LTDOVERLAY..SINIT_START; # Start address of static init WRITEW SDK_LTDOVERLAY..SINIT_END; # End address of static init WRITEW ; # ROM file ID WRITEW 0; # Compressed state } > L ############################ ARENA ################################## .dummy.MAIN_EX.TWL: { . = ALIGN(32); } > dummy.MAIN_EX.TWL .arena.MAIN.TWL: { . = ALIGN(32); SDK_LTDMAIN_ARENA_LO =.; } > arena.MAIN.TWL .arena.MAIN_EX.TWL: { . = ALIGN(32); SDK_LTDMAIN_EX_ARENA_LO =.; } > arena.MAIN_EX.TWL ############################ OTHERS ################################# # Module filelist .binary.MODULE_FILES: { WRITES (""); WRITES (""); WRITES (""); WRITES (""); WRITES (""); WRITES (""); } > binary.MODULE_FILES }