/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00000000;

/*-Memory Regions-*/
define symbol __ICFEDIT_region_IROM1_start__ = 0x00000000;
define symbol __ICFEDIT_region_IROM1_end__   = 0x00007FFF;
define symbol __ICFEDIT_region_IRAM1_start__ = 0x20000800;
define symbol __ICFEDIT_region_IRAM1_end__   = 0x20001FFF;

/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x400;
define symbol __ICFEDIT_size_proc_stack__ = 0x0;
define symbol __ICFEDIT_size_heap__   = 0x0;
/**** End of ICF editor section. ###ICF###*/


define memory mem with size = 4G;
define region IROM1_region   =  mem:[from __ICFEDIT_region_IROM1_start__ to __ICFEDIT_region_IROM1_end__];                  
define region IRAM1_region   =  mem:[from __ICFEDIT_region_IRAM1_start__ to __ICFEDIT_region_IRAM1_end__];  

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

do not initialize  { section .noinit };
initialize by copy { readwrite };
if (isdefinedsymbol(__USE_DLIB_PERTHREAD))
{
  // Required in a multi-threaded application
  initialize by copy with packing = none { section __DLIB_PERTHREAD };
}

place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };

initialize by copy { readonly object main.o };
place in IROM1_region  { readonly };
place in IRAM1_region  { readwrite, block CSTACK, block PROC_STACK, block HEAP };