/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
/*-Vector table start*/
define symbol __ICFEDIT_vector_start__ = 0x00400000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_RAM_start__  = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__    = 0x20001FFF;
define symbol __ICFEDIT_region_ROM_start__  = 0x00400000;
define symbol __ICFEDIT_region_ROM_end__    = 0x0040FFFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__        = 0x800;
define symbol __ICFEDIT_size_heap__          = 0x800;
/**** 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 ROM_region     = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];

define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   { };
define block HEAP      with alignment = 8, size = __ICFEDIT_size_heap__     { };

initialize by copy with packing=none { readwrite };
do not initialize  { section .noinit };

place at address mem:__ICFEDIT_vector_start__ { readonly section .intvec };
place in ROM_region          { readonly };
place in RAM_region          { readwrite, block CSTACK, block HEAP };
