增加所有文件

This commit is contained in:
2025-11-07 10:05:24 +08:00
parent e248b10f07
commit 7dc1e89694
8376 changed files with 2995205 additions and 42 deletions

View File

@@ -0,0 +1,161 @@
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
CSTACK_SIZE = 0x1000;
SVC_STACK_SIZE = 0x1000;
IRQ_STACK_SIZE = 0x80;
FIQ_STACK_SIZE = 0x1000;
UND_STACK_SIZE = 0x80;
ABT_STACK_SIZE = 0x80;
ENTRY(Reset_Handler)
MEMORY
{
TCM (RW) : ORIGIN = 0x01900000, LENGTH = 0x00020000
RAM (RW) : ORIGIN = 0x00504000, LENGTH = 0x0007C000
RAMECC (RW) : ORIGIN = 0x004E0000, LENGTH = 0x00020000
}
SECTIONS
{
/* text/read-only data */
.text : {
KEEP(*(.intvec))
*(.text* .sram.text.glue_7* .gnu.linkonce.t.*)
} > RAM
.dummy_post_text : {
__code_end = .;
} > RAM
.rodata : ALIGN(4) {
__rodata_start = .;
__fault_handler_table_start = .;
KEEP(*(.rodata.fault_handler_table))
__fault_handler_table_end = .;
*(.rodata .rodata.* .gnu.linkonce.r.*)
} > RAM
/*
* extra linker scripts tend to insert sections just after .rodata,
* so we want to make sure this symbol comes after anything inserted above,
* but not aligned to the next section necessarily.
*/
.dummy_post_rodata : {
__rodata_end = .;
} > RAM
.data : ALIGN(4) {
__data_start = .;
*(.data .data.* .gnu.linkonce.d.*)
__commands_start = .;
KEEP (*(.commands))
__commands_end = .;
} > RAM
.ctors : ALIGN(4) {
__ctor_list = .;
KEEP(*(.ctors .init_array))
__ctor_end = .;
} > RAM
.dtors : ALIGN(4) {
__dtor_list = .;
KEEP(*(.dtors .fini_array))
__dtor_end = .;
} > RAM
.got : { *(.got.plt) *(.got) } > RAM
.dynamic : { *(.dynamic) } > RAM
/* List sections that have differet load address and link address,
* requiring early section copy on start up.
*/
.earlycopy : ALIGN(4) {
__earlycopy_start = .;
/* TCM code and data section. */
LONG(ADDR(.tcm))
LONG(SIZEOF(.tcm))
LONG(LOADADDR(.tcm))
/* Add other sections here. */
__earlycopy_end = .;
} > RAM
.nocache : ALIGN(1024) {
_nocacheable_start = .;
KEEP(*(.nocache))
. = ALIGN(1024);
_nocacheable_end = .;
} > RAM
.dummy_post_data : {
/* End of initialized sections. */
__data_end = ALIGN(4);
} > RAM
/* uninitialized data (in same segment as writable data) */
.bss (NOLOAD) : ALIGN(4) {
KEEP(*(.bss.prebss.*))
. = ALIGN(4);
__bss_start = .;
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN(4);
__bss_end = .;
} > RAM
/* exception stack */
.except.stack (NOLOAD) : ALIGN(8) {
__except_stack_start = .;
. += CSTACK_SIZE;
__cstack_end = .;
. += SVC_STACK_SIZE;
__svc_stack_end = .;
. += IRQ_STACK_SIZE;
__irq_stack_end = .;
. += FIQ_STACK_SIZE;
__fiq_stack_end = .;
. += UND_STACK_SIZE;
__und_stack_end = .;
. += ABT_STACK_SIZE;
__abt_stack_end = .;
__except_stack_end = .;
} > RAM
_end = .;
.heap (NOLOAD) : ALIGN(8) {
_heap_start = .;
*(.heap)
} > RAM
_end_of_ram = ORIGIN(RAM) + LENGTH(RAM);
_heap_end = _end_of_ram;
/* IRAM none-ecc data sections. */
.noneecc (NOLOAD) : ALIGN(4) {
_noneecc_start = .;
*(.noneeccdata)
_noneecc_end = ORIGIN(RAMECC) + LENGTH(RAMECC);
} > RAMECC
/* TCM code and data sections. */
.tcm : AT (__data_end) {
__tcm_start = .;
*(.tcmcode)
. = ALIGN(4);
*(.tcmdata)
__tcm_end = ALIGN(4);
ASSERT(__tcm_end - __tcm_start <= LENGTH(TCM), "TCM overflow!");
} > TCM
/* Strip unnecessary stuff */
/DISCARD/ : { *(.comment .note) }
}

View File

@@ -0,0 +1,166 @@
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
CSTACK_SIZE = 0x1000;
SVC_STACK_SIZE = 0x1000;
IRQ_STACK_SIZE = 0x80;
FIQ_STACK_SIZE = 0x1000;
UND_STACK_SIZE = 0x80;
ABT_STACK_SIZE = 0x80;
ENTRY(Reset_Handler)
MEMORY
{
TCM (RW) : ORIGIN = 0x004E0000, LENGTH = 0x00020000
}
SECTIONS
{
/* PrgCode */
PrgCode : {
_PRGCODE_start = .;
KEEP(*(.PRGCODE .PRGCODE.*))
_PRGCODE_end = .;
} > TCM
/* T32CodeBegin */
T32CodeBegin : {
_T32CODEBEGIN_start = .;
KEEP(*(.T32CODEBEGIN .T32CODEBEGIN.*))
_T32CODEBEGIN_end = .;
} > TCM
/* FuseCode */
FuseCode : {
_FUSECODE_start = .;
KEEP(*(.FUSECODE .FUSECODE.*))
_FUSECODE_end = .;
} > TCM
/* PrgData */
PrgData : {
_PRGDATA_start = .;
KEEP(*(.PRGDATA .PRGDATA.*))
_PRGDATA_end = .;
} > TCM
/* DevDscr */
DevDscr : {
_DEVDSCR_start = .;
KEEP(*(.DEVDSCR .DEVDSCR.*))
_DEVDSCR_end = .;
} > TCM
/* text/read-only data */
.text : {
*(.text* .sram.text.glue_7* .gnu.linkonce.t.*)
} > TCM
.dummy_post_text : {
__code_end = .;
} > TCM
.rodata : ALIGN(4) {
__rodata_start = .;
__fault_handler_table_start = .;
KEEP(*(.rodata.fault_handler_table))
__fault_handler_table_end = .;
*(.rodata .rodata.* .gnu.linkonce.r.*)
} > TCM
/*
* extra linker scripts tend to insert sections just after .rodata,
* so we want to make sure this symbol comes after anything inserted above,
* but not aligned to the next section necessarily.
*/
.dummy_post_rodata : {
__rodata_end = .;
} > TCM
.data : ALIGN(4) {
__data_start = .;
*(.data .data.* .gnu.linkonce.d.*)
__commands_start = .;
KEEP (*(.commands))
__commands_end = .;
} > TCM
.ctors : ALIGN(4) {
__ctor_list = .;
KEEP(*(.ctors .init_array))
__ctor_end = .;
} > TCM
.dtors : ALIGN(4) {
__dtor_list = .;
KEEP(*(.dtors .fini_array))
__dtor_end = .;
} > TCM
.nocache : ALIGN(1024) {
_nocacheable_start = .;
KEEP(*(.nocache))
. = ALIGN(1024);
_nocacheable_end = .;
} > TCM
.dummy_post_data : {
/* End of initialized sections. */
__data_end = ALIGN(4);
} > TCM
/* uninitialized data (in same segment as writable data) */
.bss (NOLOAD) : ALIGN(4) {
KEEP(*(.bss.prebss.*))
. = ALIGN(4);
__bss_start = .;
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN(4);
__bss_end = .;
} > TCM
_end = .;
.heap (NOLOAD) : ALIGN(8) {
_heap_start = .;
. += 0x1000;
_heap_end = .;
} > TCM
.except.stack (NOLOAD) : ALIGN(8) {
__except_stack_start = .;
. += CSTACK_SIZE;
__cstack_end = .;
. += SVC_STACK_SIZE;
__svc_stack_end = .;
. += IRQ_STACK_SIZE;
__irq_stack_end = .;
. += FIQ_STACK_SIZE;
__fiq_stack_end = .;
. += UND_STACK_SIZE;
__und_stack_end = .;
. += ABT_STACK_SIZE;
__abt_stack_end = .;
__except_stack_end = .;
} > TCM
/* flashbuf */
.flashbuf (NOLOAD) : ALIGN(4) {
_flashbuf_start = .;
. += 0x1000;
_flashbuf_end = .;
} > TCM
/* T32CodeEnd */
T32CodeEnd : {
_T32CODEEND_start = .;
KEEP(*(.T32CODEEND .T32CODEEND.*))
_T32CODEEND_end = .;
} > TCM
/* Strip unnecessary stuff */
/DISCARD/ : { *(.comment .note) }
}

View File

@@ -0,0 +1,161 @@
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
CSTACK_SIZE = 0x1000;
SVC_STACK_SIZE = 0x1000;
IRQ_STACK_SIZE = 0x80;
FIQ_STACK_SIZE = 0x1000;
UND_STACK_SIZE = 0x80;
ABT_STACK_SIZE = 0x80;
ENTRY(Reset_Handler)
MEMORY
{
TCM (RW) : ORIGIN = 0x00000040, LENGTH = 0x0001FFC0
RAM (RW) : ORIGIN = 0x00504000, LENGTH = 0x0007C000
RAMECC (RW) : ORIGIN = 0x004E0000, LENGTH = 0x00020000
}
SECTIONS
{
/* text/read-only data */
.text : {
KEEP(*(.intvec))
*(.text* .sram.text.glue_7* .gnu.linkonce.t.*)
} > RAM
.dummy_post_text : {
__code_end = .;
} > RAM
.rodata : ALIGN(4) {
__rodata_start = .;
__fault_handler_table_start = .;
KEEP(*(.rodata.fault_handler_table))
__fault_handler_table_end = .;
*(.rodata .rodata.* .gnu.linkonce.r.*)
} > RAM
/*
* extra linker scripts tend to insert sections just after .rodata,
* so we want to make sure this symbol comes after anything inserted above,
* but not aligned to the next section necessarily.
*/
.dummy_post_rodata : {
__rodata_end = .;
} > RAM
.data : ALIGN(4) {
__data_start = .;
*(.data .data.* .gnu.linkonce.d.*)
__commands_start = .;
KEEP (*(.commands))
__commands_end = .;
} > RAM
.ctors : ALIGN(4) {
__ctor_list = .;
KEEP(*(.ctors .init_array))
__ctor_end = .;
} > RAM
.dtors : ALIGN(4) {
__dtor_list = .;
KEEP(*(.dtors .fini_array))
__dtor_end = .;
} > RAM
.got : { *(.got.plt) *(.got) } > RAM
.dynamic : { *(.dynamic) } > RAM
/* List sections that have differet load address and link address,
* requiring early section copy on start up.
*/
.earlycopy : ALIGN(4) {
__earlycopy_start = .;
/* TCM code and data section. */
LONG(ADDR(.tcm))
LONG(SIZEOF(.tcm))
LONG(LOADADDR(.tcm))
/* Add other sections here. */
__earlycopy_end = .;
} > RAM
.nocache : ALIGN(1024) {
_nocacheable_start = .;
KEEP(*(.nocache))
. = ALIGN(1024);
_nocacheable_end = .;
} > RAM
.dummy_post_data : {
/* End of initialized sections. */
__data_end = ALIGN(4);
} > RAM
/* uninitialized data (in same segment as writable data) */
.bss (NOLOAD) : ALIGN(4) {
KEEP(*(.bss.prebss.*))
. = ALIGN(4);
__bss_start = .;
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN(4);
__bss_end = .;
} > RAM
_end = .;
.heap (NOLOAD) : ALIGN(8) {
_heap_start = .;
*(.heap)
} > RAM
_end_of_ram = ORIGIN(RAM) + LENGTH(RAM);
_heap_end = _end_of_ram;
/* IRAM none-ecc data sections. */
.noneecc (NOLOAD) : ALIGN(4) {
_noneecc_start = .;
*(.noneeccdata)
_noneecc_end = ORIGIN(RAMECC) + LENGTH(RAMECC);
} > RAMECC
/* TCM code and data sections. */
.tcm : AT (__data_end) {
__tcm_start = .;
*(.tcmcode)
. = ALIGN(4);
*(.tcmdata)
__tcm_end = ALIGN(4);
ASSERT(__tcm_end - __tcm_start <= LENGTH(TCM), "TCM overflow!");
} > TCM
/* exception stack */
.except.stack (NOLOAD) : ALIGN(8) {
__except_stack_start = .;
. += CSTACK_SIZE;
__cstack_end = .;
. += SVC_STACK_SIZE;
__svc_stack_end = .;
. += IRQ_STACK_SIZE;
__irq_stack_end = .;
. += FIQ_STACK_SIZE;
__fiq_stack_end = .;
. += UND_STACK_SIZE;
__und_stack_end = .;
. += ABT_STACK_SIZE;
__abt_stack_end = .;
__except_stack_end = .;
} > TCM
/* Strip unnecessary stuff */
/DISCARD/ : { *(.comment .note) }
}

View File

@@ -0,0 +1,183 @@
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
CSTACK_SIZE = 0x1000;
SVC_STACK_SIZE = 0x1000;
IRQ_STACK_SIZE = 0x80;
FIQ_STACK_SIZE = 0x1000;
UND_STACK_SIZE = 0x80;
ABT_STACK_SIZE = 0x80;
ENTRY(Reset_Handler)
MEMORY
{
ROM (R) : ORIGIN = 0x10140000, LENGTH = 0x002C0000
TCM (RW) : ORIGIN = 0x00000040, LENGTH = 0x0001FFC0
RAM (RW) : ORIGIN = 0x00504000, LENGTH = 0x0007C000
RAMECC (RW) : ORIGIN = 0x004E0000, LENGTH = 0x00020000
}
SECTIONS
{
/* text/read-only data */
.text : {
KEEP(*(.intvec))
*(.text* .sram.text.glue_7* .gnu.linkonce.t.*)
} > ROM
.dummy_post_text : {
__code_end = .;
} > ROM
.rodata : ALIGN(4) {
__rodata_start = .;
__fault_handler_table_start = .;
KEEP(*(.rodata.fault_handler_table))
__fault_handler_table_end = .;
*(.rodata .rodata.* .gnu.linkonce.r.*)
} > ROM
/*
* extra linker scripts tend to insert sections just after .rodata,
* so we want to make sure this symbol comes after anything inserted above,
* but not aligned to the next section necessarily.
*/
.dummy_post_rodata : {
__rodata_end = .;
} > ROM
/* List sections that have differet load address and link address,
* requiring early section copy on start up.
*/
.earlycopy : ALIGN(4) {
__earlycopy_start = .;
/* TCM code and data section. */
LONG(ADDR(.tcm))
LONG(SIZEOF(.tcm))
LONG(LOADADDR(.tcm))
/* RAM code section. */
LONG(ADDR(.ram.text))
LONG(SIZEOF(.ram.text))
LONG(LOADADDR(.ram.text))
/* RAM data section. */
LONG(ADDR(.data))
LONG(SIZEOF(.data))
LONG(LOADADDR(.data))
__earlycopy_end = .;
} > ROM
.ctors : ALIGN(4) {
__ctor_list = .;
KEEP(*(.ctors .init_array))
__ctor_end = .;
} > ROM
.dtors : ALIGN(4) {
__dtor_list = .;
KEEP(*(.dtors .fini_array))
__dtor_end = .;
} > ROM
.got : { *(.got.plt) *(.got) } > ROM
.dynamic : { *(.dynamic) } > ROM
__rom_end = .;
/* TCM code and data sections. */
.tcm : AT (__rom_end ) ALIGN(4) {
__tcm_start = .;
*(.tcmcode)
. = ALIGN(4);
*(.tcmdata)
__tcm_end = ALIGN(4);
ASSERT(__tcm_end - __tcm_start <= LENGTH(TCM), "TCM overflow!");
} > TCM
/* exception stack */
.except.stack (NOLOAD) : ALIGN(8) {
__except_stack_start = .;
. += CSTACK_SIZE;
__cstack_end = .;
. += SVC_STACK_SIZE;
__svc_stack_end = .;
. += IRQ_STACK_SIZE;
__irq_stack_end = .;
. += FIQ_STACK_SIZE;
__fiq_stack_end = .;
. += UND_STACK_SIZE;
__und_stack_end = .;
. += ABT_STACK_SIZE;
__abt_stack_end = .;
__except_stack_end = .;
} > TCM
/* place R/W data and some code which cann't xip in the RAM */
. = ORIGIN(RAM);
__data_load_start = LOADADDR(.tcm) + SIZEOF (.tcm);
.data : AT (__data_load_start) ALIGN(4) {
__data_start = .;
*(.data .data.* .gnu.linkonce.d.*)
__commands_start = .;
KEEP (*(.commands))
__commands_end = .;
} > RAM
__ram_text_load_start = __data_load_start + SIZEOF (.data);
/* code that is located in ram */
.ram.text : AT (__ram_text_load_start) ALIGN(4) {
KEEP (*(.ram.text*))
} > RAM
.nocache : ALIGN(1024) {
_nocacheable_start = .;
KEEP(*(.nocache))
. = ALIGN(1024);
_nocacheable_end = .;
} > RAM
.dummy_post_data : {
/* End of initialized sections. */
__data_end = ALIGN(4);
} > RAM
/* uninitialized data (in same segment as writable data) */
.bss (NOLOAD) : ALIGN(4) {
KEEP(*(.bss.prebss.*))
. = ALIGN(4);
__bss_start = .;
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN(4);
__bss_end = .;
} > RAM
_end = .;
.heap (NOLOAD) : ALIGN(8) {
_heap_start = .;
*(.heap)
} > RAM
_end_of_ram = ORIGIN(RAM) + LENGTH(RAM);
_heap_end = _end_of_ram;
/* IRAM none-ecc data sections. */
.noneecc (NOLOAD) : ALIGN(4) {
_noneecc_start = .;
*(.noneeccdata)
_noneecc_end = ORIGIN(RAMECC) + LENGTH(RAMECC);
} > RAMECC
/* Strip unnecessary stuff */
/DISCARD/ : { *(.comment .note) }
}

View File

@@ -0,0 +1,50 @@
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00504000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_RAM_start__ = 0x00504000;
define symbol __ICFEDIT_region_RAM_end__ = 0x0057FFFF;
define symbol __ICFEDIT_region_TCM_start__ = 0x01900000;
define symbol __ICFEDIT_region_TCM_end__ = 0x0191FFFF;
define symbol __ICFEDIT_region_RAMECC_start__ = 0x004E0000;
define symbol __ICFEDIT_region_RAMECC_end__ = 0x004FFFFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
define symbol __ICFEDIT_size_svcstack__ = 0x1000;
define symbol __ICFEDIT_size_irqstack__ = 0x80;
define symbol __ICFEDIT_size_fiqstack__ = 0x1000;
define symbol __ICFEDIT_size_undstack__ = 0x80;
define symbol __ICFEDIT_size_abtstack__ = 0x80;
/**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G;
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region TCM_region = mem:[from __ICFEDIT_region_TCM_start__ to __ICFEDIT_region_TCM_end__];
define region RAMECC_region = mem:[from __ICFEDIT_region_RAMECC_start__ to __ICFEDIT_region_RAMECC_end__];
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };
define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };
define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };
define block HEAP with alignment = 8, expanding size { section .heap };
define block COMMANDS { section .commands };
define block TCMCODE with alignment = 4 { section .tcmcode};
define block TCMDATA with alignment = 4 { section .tcmdata};
define block NONEECCDATA with alignment = 4 { section .noneeccdata};
initialize by copy { section .tcmcode, section .tcmdata};
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in RAM_region { readonly };
place in RAM_region { readwrite,
block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
block UND_STACK, block ABT_STACK, block COMMANDS, block HEAP };
place in TCM_region { block TCMCODE, block TCMDATA};
place in RAMECC_region { block NONEECCDATA};

View File

@@ -0,0 +1,54 @@
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00504000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_RAM_start__ = 0x00504000;
define symbol __ICFEDIT_region_RAM_end__ = 0x0057FFFF;
define symbol __ICFEDIT_region_TCM_start__ = 0x01900000;
define symbol __ICFEDIT_region_TCM_end__ = 0x0191FFFF;
define symbol __ICFEDIT_region_RAMECC_start__ = 0x004E0000;
define symbol __ICFEDIT_region_RAMECC_end__ = 0x004FFFFF;
define symbol __ICFEDIT_region_SFS_start__ = 0x10000000;
define symbol __ICFEDIT_region_SF_start__ = 0x10140000;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
define symbol __ICFEDIT_size_svcstack__ = 0x1000;
define symbol __ICFEDIT_size_irqstack__ = 0x80;
define symbol __ICFEDIT_size_fiqstack__ = 0x1000;
define symbol __ICFEDIT_size_undstack__ = 0x80;
define symbol __ICFEDIT_size_abtstack__ = 0x80;
/**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G;
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region TCM_region = mem:[from __ICFEDIT_region_TCM_start__ to __ICFEDIT_region_TCM_end__];
define region RAMECC_region = mem:[from __ICFEDIT_region_RAMECC_start__ to __ICFEDIT_region_RAMECC_end__];
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };
define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };
define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };
define block HEAP with alignment = 8, expanding size { section .heap };
define block COMMANDS { section .commands };
define block TCMCODE with alignment = 4 { section .tcmcode};
define block TCMDATA with alignment = 4 { section .tcmdata};
define block NONEECCDATA with alignment = 4 { section .noneeccdata};
initialize by copy { section .tcmcode, section .tcmdata};
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in RAM_region { readonly };
place in RAM_region { readwrite,
block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
block UND_STACK, block ABT_STACK, block COMMANDS, block HEAP };
place in TCM_region { block TCMCODE, block TCMDATA};
place in RAMECC_region { block NONEECCDATA};
place at address mem:__ICFEDIT_region_SFS_start__ { section SFS_BIN };
place at address mem:__ICFEDIT_region_SF_start__ { section SF_BIN };

View File

@@ -0,0 +1,38 @@
define symbol __ICFEDIT_region_TCM_start__ = 0x004E0000;
define symbol __ICFEDIT_region_TCM_end__ = 0x004FFFFF;
define memory mem with size = 4G;
define region TCM_region = mem:[from __ICFEDIT_region_TCM_start__ to __ICFEDIT_region_TCM_end__];
define block CSTACK with alignment = 8, size = 0x4000 { };
define block HEAP with alignment = 4, size = 0x2000 { };
define block PADDING with alignment = 4, size = 0x1000 { };
define block flashbuf with fixed order{section LOWEND, block PADDING, section HIGHSTART};
keep { block PADDING};
do not initialize {section .noinit, section .PRGDATA};
"PrgCode":
place at start of TCM_region {section .PRGCODE};
"T32CodeBegin":
place in TCM_region {readonly section .T32CODEBEGIN};
"FuseCode":
place in TCM_region {section .FUSECODE};
"PrgData":
place in TCM_region {section .PRGDATA};
"DevDscr":
place in TCM_region {section .DEVDSCR};
place in TCM_region {readonly};
place in TCM_region {readwrite, block HEAP, block CSTACK};
"BUF":
place in TCM_region {block flashbuf};
"T32CodeEnd":
place in TCM_region {section .T32CODEEND};

View File

@@ -0,0 +1,49 @@
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00504000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_RAM_start__ = 0x00504000;
define symbol __ICFEDIT_region_RAM_end__ = 0x0057FFFF;
define symbol __ICFEDIT_region_TCM_start__ = 0x00000040;
define symbol __ICFEDIT_region_TCM_end__ = 0x0001FFFF;
define symbol __ICFEDIT_region_RAMECC_start__ = 0x004E0000;
define symbol __ICFEDIT_region_RAMECC_end__ = 0x004FFFFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
define symbol __ICFEDIT_size_svcstack__ = 0x1000;
define symbol __ICFEDIT_size_irqstack__ = 0x80;
define symbol __ICFEDIT_size_fiqstack__ = 0x1000;
define symbol __ICFEDIT_size_undstack__ = 0x80;
define symbol __ICFEDIT_size_abtstack__ = 0x80;
/**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G;
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region TCM_region = mem:[from __ICFEDIT_region_TCM_start__ to __ICFEDIT_region_TCM_end__];
define region RAMECC_region = mem:[from __ICFEDIT_region_RAMECC_start__ to __ICFEDIT_region_RAMECC_end__];
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };
define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };
define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };
define block HEAP with alignment = 8, expanding size { section .heap };
define block COMMANDS { section .commands };
define block TCMCODE with alignment = 4 { section .tcmcode};
define block TCMDATA with alignment = 4 { section .tcmdata};
define block NONEECCDATA with alignment = 4 { section .noneeccdata};
initialize by copy { section .tcmcode, section .tcmdata};
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in RAM_region { readonly };
place in RAM_region { readwrite,
block COMMANDS, block HEAP };
place in TCM_region { block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
block UND_STACK, block ABT_STACK, block TCMCODE, block TCMDATA};
place in RAMECC_region { block NONEECCDATA};

View File

@@ -0,0 +1,50 @@
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00504000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_RAM_start__ = 0x00504000;
define symbol __ICFEDIT_region_RAM_end__ = 0x0057FFFF;
define symbol __ICFEDIT_region_TCM_start__ = 0x00000040;
define symbol __ICFEDIT_region_TCM_end__ = 0x0001FFFF;
define symbol __ICFEDIT_region_RAMECC_start__ = 0x004E0000;
define symbol __ICFEDIT_region_RAMECC_end__ = 0x004FFFFF;
define symbol __ICFEDIT_region_SFS_start__ = 0x10000000;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
define symbol __ICFEDIT_size_svcstack__ = 0x1000;
define symbol __ICFEDIT_size_irqstack__ = 0x80;
define symbol __ICFEDIT_size_fiqstack__ = 0x1000;
define symbol __ICFEDIT_size_undstack__ = 0x80;
define symbol __ICFEDIT_size_abtstack__ = 0x80;
/**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G;
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region TCM_region = mem:[from __ICFEDIT_region_TCM_start__ to __ICFEDIT_region_TCM_end__];
define region RAMECC_region = mem:[from __ICFEDIT_region_RAMECC_start__ to __ICFEDIT_region_RAMECC_end__];
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };
define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };
define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };
define block HEAP with alignment = 8, expanding size { section .heap };
define block COMMANDS { section .commands };
define block TCMCODE with alignment = 4 { section .tcmcode};
define block TCMDATA with alignment = 4 { section .tcmdata};
define block NONEECCDATA with alignment = 4 { section .noneeccdata};
initialize by copy { section .tcmcode, section .tcmdata};
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in RAM_region { readonly };
place in RAM_region { readwrite,
block COMMANDS, block HEAP };
place in TCM_region { block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
block UND_STACK, block ABT_STACK, block TCMCODE, block TCMDATA};
place in RAMECC_region { block NONEECCDATA};

View File

@@ -0,0 +1,51 @@
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00504000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_RAM_start__ = 0x00504000;
define symbol __ICFEDIT_region_RAM_end__ = 0x0057FFFF;
define symbol __ICFEDIT_region_TCM_start__ = 0x00000040;
define symbol __ICFEDIT_region_TCM_end__ = 0x0001FFFF;
define symbol __ICFEDIT_region_RAMECC_start__ = 0x004E0000;
define symbol __ICFEDIT_region_RAMECC_end__ = 0x004FFFFF;
define symbol __ICFEDIT_region_SFS_start__ = 0x10000000;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
define symbol __ICFEDIT_size_svcstack__ = 0x1000;
define symbol __ICFEDIT_size_irqstack__ = 0x80;
define symbol __ICFEDIT_size_fiqstack__ = 0x1000;
define symbol __ICFEDIT_size_undstack__ = 0x80;
define symbol __ICFEDIT_size_abtstack__ = 0x80;
/**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G;
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region TCM_region = mem:[from __ICFEDIT_region_TCM_start__ to __ICFEDIT_region_TCM_end__];
define region RAMECC_region = mem:[from __ICFEDIT_region_RAMECC_start__ to __ICFEDIT_region_RAMECC_end__];
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };
define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };
define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };
define block HEAP with alignment = 8, expanding size { section .heap };
define block COMMANDS { section .commands };
define block TCMCODE with alignment = 4 { section .tcmcode};
define block TCMDATA with alignment = 4 { section .tcmdata};
define block NONEECCDATA with alignment = 4 { section .noneeccdata};
initialize by copy { section .tcmcode, section .tcmdata};
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in RAM_region { readonly };
place in RAM_region { readwrite,
block COMMANDS, block HEAP };
place in TCM_region { block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
block UND_STACK, block ABT_STACK, block TCMCODE, block TCMDATA};
place in RAMECC_region { block NONEECCDATA};
place at address mem:__ICFEDIT_region_SFS_start__ { section SFS_BIN };

View File

@@ -0,0 +1,79 @@
define memory mem with size = 4G;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_RAM_start__ = 0x00504000;
define symbol __ICFEDIT_region_RAM_end__ = 0x0057FFFF;
define symbol __ICFEDIT_region_TCM_start__ = 0x00000040;
define symbol __ICFEDIT_region_TCM_end__ = 0x0001FFFF;
define symbol __ICFEDIT_region_RAMECC_start__ = 0x004E0000;
define symbol __ICFEDIT_region_RAMECC_end__ = 0x004FFFFF;
define symbol __ICFEDIT_region_ROM_start__ = 0x10140000;
define symbol __ICFEDIT_region_ROM_end__ = 0x103FFFFF;
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = __ICFEDIT_region_ROM_start__;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
define symbol __ICFEDIT_size_svcstack__ = 0x1000;
define symbol __ICFEDIT_size_irqstack__ = 0x80;
define symbol __ICFEDIT_size_fiqstack__ = 0x1000;
define symbol __ICFEDIT_size_undstack__ = 0x80;
define symbol __ICFEDIT_size_abtstack__ = 0x80;
/*-blocks-*/
define block RAM_TEXT with alignment = 4 { section .ram.text, section .textrw};
define block BSS with alignment = 4 { section .bss, section .tbss };
define block EXCEPTION_STACK with alignment = 4 { section .except.stack };
define block RODATA with alignment = 4 { section .rodata.fault_handler_table, section .rodata};
define block COMMANDS { section .commands };
define block TCMCODE with alignment = 4 { section .tcmcode};
define block TCMDATA with alignment = 4 { section .tcmdata};
define block NONEECCDATA with alignment = 4 { section .noneeccdata};
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };
define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };
define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };
define block HEAP with alignment = 8, expanding size { section .heap };
define block RO { readonly };
define block RW { readwrite };
define block ZI { zi };
define block Region_Table with alignment = 32 { section .iar.init_table };
/*-regions-*/
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region TCM_region = mem:[from __ICFEDIT_region_TCM_start__ to __ICFEDIT_region_TCM_end__];
define region RAMECC_region = mem:[from __ICFEDIT_region_RAMECC_start__ to __ICFEDIT_region_RAMECC_end__];
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
/*-placement-*/
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in ROM_region { section .boot };
place in ROM_region { section .text };
place in ROM_region { block RODATA };
place in RAM_region { block COMMANDS };
place in ROM_region { block RO };
place in ROM_region { block Region_Table };
place in RAM_region { block RAM_TEXT };
place in RAM_region { block BSS };
place in TCM_region { block EXCEPTION_STACK };
place in RAM_region { block RW };
place in RAM_region { block ZI };
place in TCM_region { block CSTACK };
place in TCM_region { block SVC_STACK };
place in TCM_region { block IRQ_STACK };
place in TCM_region { block FIQ_STACK };
place in TCM_region { block UND_STACK };
place in TCM_region { block ABT_STACK };
place in RAM_region { block HEAP };
place in TCM_region { block TCMCODE, block TCMDATA};
place in RAMECC_region { block NONEECCDATA};
initialize by copy { section .tcmcode, section .tcmdata, section .ram.text, section .textrw, section .commands };
initialize by copy { readwrite };
do not initialize { section .except.stack, section .noneeccdata, section .noinit, section .heap};

View File

@@ -0,0 +1,82 @@
define memory mem with size = 4G;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_RAM_start__ = 0x00504000;
define symbol __ICFEDIT_region_RAM_end__ = 0x0057FFFF;
define symbol __ICFEDIT_region_TCM_start__ = 0x00000040;
define symbol __ICFEDIT_region_TCM_end__ = 0x0001FFFF;
define symbol __ICFEDIT_region_RAMECC_start__ = 0x004E0000;
define symbol __ICFEDIT_region_RAMECC_end__ = 0x004FFFFF;
define symbol __ICFEDIT_region_ROM_start__ = 0x10140000;
define symbol __ICFEDIT_region_ROM_end__ = 0x103FFFFF;
define symbol __ICFEDIT_region_SFS_start__ = 0x10000000;
define symbol __ICFEDIT_region_BOOTLOADER_start__ = 0x10008000;
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = __ICFEDIT_region_ROM_start__;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
define symbol __ICFEDIT_size_svcstack__ = 0x1000;
define symbol __ICFEDIT_size_irqstack__ = 0x80;
define symbol __ICFEDIT_size_fiqstack__ = 0x1000;
define symbol __ICFEDIT_size_undstack__ = 0x80;
define symbol __ICFEDIT_size_abtstack__ = 0x80;
/*-blocks-*/
define block RAM_TEXT with alignment = 4 { section .ram.text, section .textrw};
define block BSS with alignment = 4 { section .bss, section .tbss };
define block EXCEPTION_STACK with alignment = 4 { section .except.stack };
define block RODATA with alignment = 4 { section .rodata.fault_handler_table, section .rodata};
define block COMMANDS { section .commands };
define block TCMCODE with alignment = 4 { section .tcmcode};
define block TCMDATA with alignment = 4 { section .tcmdata};
define block NONEECCDATA with alignment = 4 { section .noneeccdata};
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };
define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };
define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };
define block HEAP with alignment = 8, expanding size { section .heap };
define block RO { readonly };
define block RW { readwrite };
define block ZI { zi };
define block Region_Table with alignment = 32 { section .iar.init_table };
/*-regions-*/
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region TCM_region = mem:[from __ICFEDIT_region_TCM_start__ to __ICFEDIT_region_TCM_end__];
define region RAMECC_region = mem:[from __ICFEDIT_region_RAMECC_start__ to __ICFEDIT_region_RAMECC_end__];
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
/*-placement-*/
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in ROM_region { section .boot };
place in ROM_region { section .text };
place in ROM_region { block RODATA };
place in RAM_region { block COMMANDS };
place in ROM_region { block RO };
place in ROM_region { block Region_Table };
place in RAM_region { block RAM_TEXT };
place in RAM_region { block BSS };
place in TCM_region { block EXCEPTION_STACK };
place in RAM_region { block RW };
place in RAM_region { block ZI };
place in TCM_region { block CSTACK };
place in TCM_region { block SVC_STACK };
place in TCM_region { block IRQ_STACK };
place in TCM_region { block FIQ_STACK };
place in TCM_region { block UND_STACK };
place in TCM_region { block ABT_STACK };
place in RAM_region { block HEAP };
place in TCM_region { block TCMCODE, block TCMDATA};
place in RAMECC_region { block NONEECCDATA};
place at address mem:__ICFEDIT_region_SFS_start__ { section SFS_BIN };
place at address mem:__ICFEDIT_region_BOOTLOADER_start__ { section BOOTLOADER_BIN };
initialize by copy { section .tcmcode, section .tcmdata, section .ram.text, section .textrw, section .commands };
initialize by copy { readwrite };
do not initialize { section .except.stack, section .noneeccdata, section .noinit, section .heap};