mirror of
https://github.com/rvtr/TwlToolsRED.git
synced 2025-10-31 06:41:18 -04:00
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@120 7061adef-622a-194b-ae81-725974e89856
533 lines
14 KiB
Plaintext
533 lines
14 KiB
Plaintext
#---------------------------------------------------------------------------
|
|
# Project: NitroSDK - tools - makelcf
|
|
# File: ARM9-TS.lcf.template
|
|
#
|
|
# Copyright 2003-2007 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.
|
|
#
|
|
# $Log: ARM9-TS.lcf.template,v $
|
|
# Revision 1.44 2007/07/09 12:49:10 yasu
|
|
# TARGET_NAME のサポート
|
|
#
|
|
# Revision 1.43 2007/07/09 07:12:55 yasu
|
|
# MAINEX セクションのサポート
|
|
#
|
|
# Revision 1.42 2007/06/21 00:16:01 yasu
|
|
# MAINEX セグメント定義をロールバック
|
|
#
|
|
# Revision 1.41 2007/06/20 10:32:39 yasu
|
|
# static initializer や C++ コンストラクタの Autoload 対応
|
|
#
|
|
# Revision 1.40 2007/06/19 11:55:13 yasu
|
|
# lcf.template 内に MAINEX の定義追加
|
|
#
|
|
# Revision 1.39 2007/04/12 00:11:41 yasu
|
|
# 著作年度修正
|
|
#
|
|
# Revision 1.38 2007/04/10 14:05:45 yasu
|
|
# 複数の SEARCH_SYMBOL 対応
|
|
#
|
|
# Revision 1.37 2006/07/20 07:29:12 kitase_hirotake
|
|
# .version セクションに関する説明コメントの追加
|
|
#
|
|
# Revision 1.36 2006/07/18 11:11:01 yasu
|
|
# check.xTCM による TCM 領域のオーバーフローチェックにおいて
|
|
# OVERLAY 領域のサイズの取得方法に誤りがあり、現状正確な計算方法が
|
|
# 不明であるため OVERLAY 領域の加算を取りやめた
|
|
#
|
|
# Revision 1.35 2006/05/10 03:19:47 yasu
|
|
# CodeWarrior 2.x のオーバーレイ拡張への対応
|
|
#
|
|
# Revision 1.34 2006/04/06 09:02:36 kitase_hirotake
|
|
# .itcm.bss .dtcm.bss に対応
|
|
#
|
|
# Revision 1.33 2006/03/30 23:59:22 yasu
|
|
# 著作年度の変更
|
|
#
|
|
# Revision 1.32 2006/03/29 13:14:22 yasu
|
|
# CWVER 2.x でのオーバーレイのサポート
|
|
#
|
|
# Revision 1.31 2005/11/24 01:16:47 yada
|
|
# change start address of mainEX arena from 0x2400000 to 0x23e0000
|
|
#
|
|
# Revision 1.30 2005/09/02 04:14:22 yasu
|
|
# SDK2.2 でも使用可能のように古いシンボルを再定義した
|
|
#
|
|
# Revision 1.29 2005/08/31 09:34:57 yasu
|
|
# section_BSS というようなセクション名を使ったときに正常に動作しない場合があるのを修正
|
|
#
|
|
# Revision 1.28 2005/08/26 11:22:16 yasu
|
|
# ITCM/DTCM への overlay の対応
|
|
#
|
|
# Revision 1.27 2005/06/20 12:29:20 yasu
|
|
# Surffix -> Suffix 修正
|
|
#
|
|
# Revision 1.26 2005/06/14 09:03:42 yada
|
|
# fix around minus value of SDK_STACKSIZE
|
|
#
|
|
# Revision 1.25 2005/04/13 12:51:00 terui
|
|
# Change SDK_AUTOLOAD.DTCM.START 0x027c0000 -> 0x027e0000
|
|
#
|
|
# Revision 1.24 2005/03/30 00:02:14 yosizaki
|
|
# fix copyright header.
|
|
#
|
|
# Revision 1.23 2005/03/25 12:54:59 yasu
|
|
# Include .version section
|
|
#
|
|
# Revision 1.22 2004/10/03 02:00:56 yasu
|
|
# Output component file list for compstatic tool
|
|
#
|
|
# Revision 1.21 2004/09/27 05:28:21 yasu
|
|
# Support .sinit
|
|
#
|
|
# Revision 1.20 2004/09/09 11:49:20 yasu
|
|
# Support compstatic in default
|
|
#
|
|
# Revision 1.19 2004/09/06 06:40:00 yasu
|
|
# Add labels for digest
|
|
#
|
|
# Revision 1.18 2004/08/20 06:19:59 yasu
|
|
# DTCM moves to 0x027c0000 at default
|
|
#
|
|
# Revision 1.17 2004/08/02 10:38:53 yasu
|
|
# Add autoload-done callback address in overlaydefs
|
|
#
|
|
# Revision 1.16 2004/07/26 02:22:32 yasu
|
|
# Change DTCM address to 0x023c0000
|
|
#
|
|
# Revision 1.15 2004/07/26 00:08:27 yasu
|
|
# Fix label of exception table
|
|
#
|
|
# Revision 1.14 2004/07/24 05:42:25 yasu
|
|
# Set default values for SDK_AUTOGEN_xTCM_START
|
|
#
|
|
# Revision 1.13 2004/07/23 11:32:14 yasu
|
|
# Define labels for __exception_table_start__ and _end__
|
|
#
|
|
# Revision 1.12 2004/07/12 12:21:08 yasu
|
|
# Check size of ITCM/DTCM
|
|
#
|
|
# Revision 1.11 2004/07/10 04:10:26 yasu
|
|
# Support command 'Library'
|
|
#
|
|
# Revision 1.10 2004/07/02 08:13:02 yasu
|
|
# Support OBJECT( )
|
|
#
|
|
# Revision 1.9 2004/07/01 12:54:38 yasu
|
|
# support ITCM/DTCM/WRAM autoload
|
|
#
|
|
# Revision 1.8 2004/07/01 10:41:46 yasu
|
|
# support autoload
|
|
#
|
|
# Revision 1.7 2004/06/02 07:35:37 yasu
|
|
# Set libsyscall.a in FORCE_ACTIVE
|
|
# Put NitroMain at the top of ROM image
|
|
#
|
|
# Revision 1.6 2004/06/02 04:56:28 yasu
|
|
# Change to fit to new ROM map of TS
|
|
#
|
|
# Revision 1.5 2004/06/01 06:12:00 miya
|
|
# add padding at top of ROM image.
|
|
#
|
|
# Revision 1.4 2004/04/26 12:16:48 yasu
|
|
# add KEEP_SECTIONS
|
|
#
|
|
# Revision 1.3 2004/04/20 07:41:32 yasu
|
|
# Set STATICINIT instead of .ctor temporarily
|
|
#
|
|
# Revision 1.2 2004/04/14 07:16:42 yasu
|
|
# add ALIGN(32) for convenience to handle cache line
|
|
#
|
|
# Revision 1.1 2004/04/06 01:59:54 yasu
|
|
# newly added
|
|
#
|
|
# $NoKeywords: $
|
|
#---------------------------------------------------------------------------
|
|
MEMORY
|
|
{
|
|
main (RWX) : ORIGIN = 0x02000000, LENGTH = 0x0 > main.sbin
|
|
ITCM (RWX) : ORIGIN = 0x01ff8000, LENGTH = 0x0 >> main.sbin
|
|
DTCM (RWX) : ORIGIN = 0x027e0000, LENGTH = 0x0 >> main.sbin
|
|
binary.AUTOLOAD_INFO (RWX) : ORIGIN = 0, LENGTH = 0x0 >> main.sbin
|
|
binary.STATIC_FOOTER (RWX) : ORIGIN = 0, LENGTH = 0x0 >> main.sbin
|
|
|
|
main_defs (RW) : ORIGIN = AFTER(main), LENGTH = 0x0 > main_defs.sbin
|
|
main_table (RW) : ORIGIN = AFTER(main), LENGTH = 0x0 > main_table.sbin
|
|
dummy.MAIN_EX (RW) : ORIGIN = 0x023e0000, LENGTH = 0x0
|
|
arena.MAIN (RW) : ORIGIN = AFTER(main), LENGTH = 0x0
|
|
arena.MAIN_EX (RW) : ORIGIN = AFTER(dummy.MAIN_EX), LENGTH = 0x0
|
|
arena.ITCM (RW) : ORIGIN = AFTER(ITCM), LENGTH = 0x0
|
|
arena.DTCM (RW) : ORIGIN = AFTER(DTCM), LENGTH = 0x0
|
|
binary.MODULE_FILES (RW) : ORIGIN = 0x0, LENGTH = 0x0 > component.files
|
|
check.ITCM (RWX) : ORIGIN = 0x0, LENGTH = 0x08000 > itcm.check
|
|
check.DTCM (RW) : ORIGIN = 0x0, LENGTH = 0x04000 > dtcm.check
|
|
}
|
|
|
|
FORCE_ACTIVE
|
|
{
|
|
SVC_SoftReset
|
|
}
|
|
|
|
KEEP_SECTION
|
|
{
|
|
.sinit
|
|
}
|
|
|
|
SECTIONS
|
|
{
|
|
############################ STATIC #################################
|
|
.main:
|
|
{
|
|
ALIGNALL(4); . = ALIGN(32); # Fit to cache line
|
|
|
|
#
|
|
# TEXT BLOCK: READ ONLY
|
|
#
|
|
SDK_STATIC_START =.;
|
|
SDK_STATIC_TEXT_START =.;
|
|
#:::::::::: text/rodata
|
|
libsyscall.a (.text)
|
|
crt0.o (.text)
|
|
crt0.o (.rodata)
|
|
#
|
|
# .version セクションを追加しています。
|
|
# このセクションに含まれる情報はロットチェックの際に
|
|
# 必要となりますので、必ずこの位置に残すようにして下さい。
|
|
#
|
|
* (.version)
|
|
OBJECT(NitroMain,*)
|
|
GROUP(ROOT) (.text)
|
|
. = ALIGN(4);
|
|
* (.exception)
|
|
. = ALIGN(4);
|
|
SDK_STATIC_ETABLE_START =.;
|
|
EXCEPTION
|
|
SDK_STATIC_ETABLE_END =.;
|
|
. = ALIGN(4);
|
|
GROUP(ROOT) (.init)
|
|
. = ALIGN(4);
|
|
GROUP(ROOT) (.rodata)
|
|
. = ALIGN(4);
|
|
|
|
SDK_STATIC_SINIT_START =.;
|
|
#:::::::::: ctor
|
|
GROUP(ROOT) (.ctor)
|
|
GROUP(ROOT) (.sinit)
|
|
WRITEW 0;
|
|
#:::::::::: ctor
|
|
SDK_STATIC_SINIT_END =.;
|
|
|
|
#:::::::::: text/rodata
|
|
. = ALIGN(32);
|
|
SDK_STATIC_TEXT_END =.;
|
|
|
|
#
|
|
# DATA BLOCK: READ WRITE
|
|
#
|
|
SDK_STATIC_DATA_START =.;
|
|
#:::::::::: data
|
|
GROUP(ROOT) (.sdata)
|
|
. = ALIGN(4);
|
|
GROUP(ROOT) (.data)
|
|
. = ALIGN(4);
|
|
SDK_OVERLAY_DIGEST =.;
|
|
# NO DIGEST
|
|
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
|
|
__exception_table_start__ = SDK_STATIC_ETABLE_START; # for exception table
|
|
__exception_table_end__ = SDK_STATIC_ETABLE_END; # for exception table
|
|
} > main
|
|
|
|
.main.bss:
|
|
{
|
|
ALIGNALL(4); . = ALIGN(32);
|
|
|
|
#
|
|
# BSS BLOCK
|
|
#
|
|
SDK_STATIC_BSS_START =.;
|
|
#:::::::::: bss
|
|
GROUP(ROOT) (.sbss)
|
|
. = ALIGN(4);
|
|
GROUP(ROOT) (.bss)
|
|
. = ALIGN(4);
|
|
#:::::::::: bss
|
|
. = ALIGN(32);
|
|
SDK_STATIC_BSS_END = .;
|
|
SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START;
|
|
|
|
} >> main
|
|
|
|
|
|
############################ 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 = 0x027e0000;
|
|
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 = 2;
|
|
|
|
.ITCM:
|
|
{
|
|
ALIGNALL(4); . = ALIGN(32);
|
|
|
|
#
|
|
# TEXT BLOCK: READ ONLY
|
|
#
|
|
SDK_AUTOLOAD_ITCM_ID =0;
|
|
SDK_AUTOLOAD.ITCM.ID =0;
|
|
SDK_AUTOLOAD.ITCM.START =.;
|
|
SDK_AUTOLOAD.ITCM.TEXT_START =.;
|
|
#:::::::::: text/rodata
|
|
. = ALIGN(4);
|
|
* (.itcm)
|
|
. = ALIGN(4);
|
|
. = ALIGN(4);
|
|
. = ALIGN(4);
|
|
#:::::::::: text/rodata
|
|
SDK_AUTOLOAD.ITCM.TEXT_END =.;
|
|
|
|
#
|
|
# DATA BLOCK: READ WRITE BLOCK
|
|
#
|
|
SDK_AUTOLOAD.ITCM.DATA_START =.;
|
|
#:::::::::: data
|
|
. = ALIGN(4);
|
|
. = ALIGN(4);
|
|
. = ALIGN(4);
|
|
#:::::::::: data
|
|
. = ALIGN(32);
|
|
SDK_AUTOLOAD.ITCM.DATA_END =.;
|
|
SDK_AUTOLOAD.ITCM.END =.;
|
|
|
|
SDK_AUTOLOAD.ITCM.TEXT_SIZE = SDK_AUTOLOAD.ITCM.TEXT_END - SDK_AUTOLOAD.ITCM.TEXT_START;
|
|
SDK_AUTOLOAD.ITCM.DATA_SIZE = SDK_AUTOLOAD.ITCM.DATA_END - SDK_AUTOLOAD.ITCM.DATA_START;
|
|
SDK_AUTOLOAD.ITCM.SIZE = SDK_AUTOLOAD.ITCM.END - SDK_AUTOLOAD.ITCM.START;
|
|
SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SDK_AUTOLOAD.ITCM.SIZE;
|
|
|
|
} > ITCM
|
|
|
|
.ITCM.bss:
|
|
{
|
|
ALIGNALL(4); . = ALIGN(32);
|
|
|
|
#
|
|
# BSS BLOCK
|
|
#
|
|
SDK_AUTOLOAD.ITCM.BSS_START = .;
|
|
#:::::::::: bss
|
|
. = ALIGN(4);
|
|
. = ALIGN(4);
|
|
. = ALIGN(4);
|
|
* (.itcm.bss)
|
|
. = ALIGN(4);
|
|
#:::::::::: bss
|
|
. = ALIGN(32);
|
|
SDK_AUTOLOAD.ITCM.BSS_END = .;
|
|
|
|
SDK_AUTOLOAD.ITCM.BSS_SIZE = SDK_AUTOLOAD.ITCM.BSS_END - SDK_AUTOLOAD.ITCM.BSS_START;
|
|
|
|
} >> ITCM
|
|
|
|
.DTCM:
|
|
{
|
|
ALIGNALL(4); . = ALIGN(32);
|
|
|
|
#
|
|
# TEXT BLOCK: READ ONLY
|
|
#
|
|
SDK_AUTOLOAD_DTCM_ID =1;
|
|
SDK_AUTOLOAD.DTCM.ID =1;
|
|
SDK_AUTOLOAD.DTCM.START =.;
|
|
SDK_AUTOLOAD.DTCM.TEXT_START =.;
|
|
#:::::::::: text/rodata
|
|
. = ALIGN(4);
|
|
. = ALIGN(4);
|
|
. = ALIGN(4);
|
|
. = ALIGN(4);
|
|
#:::::::::: text/rodata
|
|
SDK_AUTOLOAD.DTCM.TEXT_END =.;
|
|
|
|
#
|
|
# DATA BLOCK: READ WRITE BLOCK
|
|
#
|
|
SDK_AUTOLOAD.DTCM.DATA_START =.;
|
|
#:::::::::: data
|
|
. = ALIGN(4);
|
|
. = ALIGN(4);
|
|
* (.dtcm)
|
|
. = ALIGN(4);
|
|
#:::::::::: data
|
|
. = ALIGN(32);
|
|
SDK_AUTOLOAD.DTCM.DATA_END =.;
|
|
SDK_AUTOLOAD.DTCM.END =.;
|
|
|
|
SDK_AUTOLOAD.DTCM.TEXT_SIZE = SDK_AUTOLOAD.DTCM.TEXT_END - SDK_AUTOLOAD.DTCM.TEXT_START;
|
|
SDK_AUTOLOAD.DTCM.DATA_SIZE = SDK_AUTOLOAD.DTCM.DATA_END - SDK_AUTOLOAD.DTCM.DATA_START;
|
|
SDK_AUTOLOAD.DTCM.SIZE = SDK_AUTOLOAD.DTCM.END - SDK_AUTOLOAD.DTCM.START;
|
|
SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SDK_AUTOLOAD.DTCM.SIZE;
|
|
|
|
} > DTCM
|
|
|
|
.DTCM.bss:
|
|
{
|
|
ALIGNALL(4); . = ALIGN(32);
|
|
|
|
#
|
|
# BSS BLOCK
|
|
#
|
|
SDK_AUTOLOAD.DTCM.BSS_START = .;
|
|
#:::::::::: bss
|
|
. = ALIGN(4);
|
|
. = ALIGN(4);
|
|
* (.dtcm.bss)
|
|
. = ALIGN(4);
|
|
. = ALIGN(4);
|
|
#:::::::::: bss
|
|
. = ALIGN(32);
|
|
SDK_AUTOLOAD.DTCM.BSS_END = .;
|
|
|
|
SDK_AUTOLOAD.DTCM.BSS_SIZE = SDK_AUTOLOAD.DTCM.BSS_END - SDK_AUTOLOAD.DTCM.BSS_START;
|
|
|
|
} >> DTCM
|
|
|
|
|
|
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(.ITCM);
|
|
WRITEW SDK_AUTOLOAD.ITCM.SIZE;
|
|
WRITEW SDK_AUTOLOAD.ITCM.BSS_SIZE;
|
|
WRITEW ADDR(.DTCM);
|
|
WRITEW SDK_AUTOLOAD.DTCM.SIZE;
|
|
WRITEW SDK_AUTOLOAD.DTCM.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(.main);
|
|
WRITEW 0; # NO DIGEST
|
|
} > binary.STATIC_FOOTER
|
|
|
|
############################ OVERLAYS ###############################
|
|
SDK_OVERLAY_NUMBER = 0;
|
|
|
|
|
|
############################ MAIN EX ##################################
|
|
# MAIN EX Area
|
|
.dummy.MAIN_EX:
|
|
{
|
|
. = ALIGN(32);
|
|
} > dummy.MAIN_EX
|
|
|
|
############################ ARENA ##################################
|
|
.arena.MAIN:
|
|
{
|
|
. = ALIGN(32);
|
|
SDK_SECTION_ARENA_START =.;
|
|
} > arena.MAIN
|
|
|
|
.arena.MAIN_EX:
|
|
{
|
|
. = ALIGN(32);
|
|
SDK_SECTION_ARENA_EX_START =.;
|
|
} > arena.MAIN_EX
|
|
|
|
.arena.ITCM:
|
|
{
|
|
. = ALIGN(32);
|
|
SDK_SECTION_ARENA_ITCM_START =.;
|
|
} > arena.ITCM
|
|
|
|
.arena.DTCM:
|
|
{
|
|
. = ALIGN(32);
|
|
SDK_SECTION_ARENA_DTCM_START =.;
|
|
} > arena.DTCM
|
|
|
|
############################ OVERLAYDEFS ############################
|
|
.main_defs:
|
|
{
|
|
### main module information
|
|
WRITEW ADDR(.main); # load address
|
|
WRITEW _start; # entry address
|
|
WRITEW SDK_STATIC_SIZE + SDK_AUTOLOAD_SIZE; # size of module
|
|
WRITEW _start_AutoloadDoneCallback; # callback autoload done
|
|
|
|
### overlay filename
|
|
|
|
} > main_defs
|
|
|
|
|
|
############################ OVERLAYTABLE ###########################
|
|
.main_table:
|
|
{
|
|
|
|
} > main_table
|
|
|
|
|
|
############################ OTHERS #################################
|
|
SDK_MAIN_ARENA_LO = SDK_SECTION_ARENA_START;
|
|
SDK_IRQ_STACKSIZE = 1024; # allocated in DTCM
|
|
SDK_SYS_STACKSIZE = 0; # when 0 means all remains of DTCM
|
|
|
|
# Module filelist
|
|
.binary.MODULE_FILES:
|
|
{
|
|
WRITES ("main.sbin");
|
|
WRITES ("main_defs.sbin");
|
|
WRITES ("main_table.sbin");
|
|
} > binary.MODULE_FILES
|
|
|
|
# ITCM/DTCM size checker => check AUTOLOAD_ITCM/DTCM
|
|
.check.ITCM:
|
|
{
|
|
. = . + SDK_AUTOLOAD_ITCM_SIZE + SDK_AUTOLOAD_ITCM_BSS_SIZE;
|
|
} > check.ITCM
|
|
|
|
SDK_SYS_STACKSIZE_SIGN = (SDK_SYS_STACKSIZE < 0x80000000) * 2 - 1;
|
|
.check.DTCM:
|
|
{
|
|
. = . + SDK_AUTOLOAD_DTCM_SIZE + SDK_AUTOLOAD_DTCM_BSS_SIZE;
|
|
. = . + SDK_IRQ_STACKSIZE + SDK_SYS_STACKSIZE * SDK_SYS_STACKSIZE_SIGN;
|
|
} > check.DTCM
|
|
|
|
}
|