]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC/Projects/IAR/NonSecure/FreeRTOSDemo_ns.icf
Add Cortex M23 GCC and IAR ports. Add demo projects for Nuvoton NuMaker-PFM-2351.
[freertos] / FreeRTOS / Demo / CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC / Projects / IAR / NonSecure / FreeRTOSDemo_ns.icf
diff --git a/FreeRTOS/Demo/CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC/Projects/IAR/NonSecure/FreeRTOSDemo_ns.icf b/FreeRTOS/Demo/CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC/Projects/IAR/NonSecure/FreeRTOSDemo_ns.icf
new file mode 100644 (file)
index 0000000..478ea2a
--- /dev/null
@@ -0,0 +1,118 @@
+/*###ICF### Section handled by ICF editor, don't touch! ****/
+/*-Editor annotation file-*/
+/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v2_1.xml" */
+
+/*-Specials-*/
+define symbol __ICFEDIT_intvec_start__          = 0x10040000;
+
+/*-Memory Regions-*/
+define symbol __ICFEDIT_region_IROM1_start__    = 0x10040000;
+define symbol __ICFEDIT_region_IROM1_end__      = 0x1007FFFF;
+define symbol __ICFEDIT_region_IROM2_start__    = 0x0;
+define symbol __ICFEDIT_region_IROM2_end__      = 0x0;
+define symbol __ICFEDIT_region_EROM1_start__    = 0x0;
+define symbol __ICFEDIT_region_EROM1_end__      = 0x0;
+define symbol __ICFEDIT_region_EROM2_start__    = 0x0;
+define symbol __ICFEDIT_region_EROM2_end__      = 0x0;
+define symbol __ICFEDIT_region_EROM3_start__    = 0x0;
+define symbol __ICFEDIT_region_EROM3_end__      = 0x0;
+define symbol __ICFEDIT_region_IRAM1_start__    = 0x30008000;
+define symbol __ICFEDIT_region_IRAM1_end__      = 0x30017FFF;
+define symbol __ICFEDIT_region_IRAM2_start__    = 0x0;
+define symbol __ICFEDIT_region_IRAM2_end__      = 0x0;
+define symbol __ICFEDIT_region_ERAM1_start__    = 0x0;
+define symbol __ICFEDIT_region_ERAM1_end__      = 0x0;
+define symbol __ICFEDIT_region_ERAM2_start__    = 0x0;
+define symbol __ICFEDIT_region_ERAM2_end__      = 0x0;
+define symbol __ICFEDIT_region_ERAM3_start__    = 0x0;
+define symbol __ICFEDIT_region_ERAM3_end__      = 0x0;
+
+/*-Sizes-*/
+define symbol __ICFEDIT_size_cstack__           = 0x800;
+define symbol __ICFEDIT_size_proc_s_stack__     = 0x0;
+define symbol __ICFEDIT_size_main_ns_stack__    = 0x0;
+define symbol __ICFEDIT_size_proc_ns_stack__    = 0x0;
+define symbol __ICFEDIT_size_heap__             = 0x0;
+
+/**** End of ICF editor section. ###ICF###*/
+
+/* Flash Organization
+ *  1. Privileged Code:
+ *      Start   : 0x10040000
+ *      End     : 0x10046FFF
+ *      Size    : 28 Kbytes
+ *  2. System calls:
+ *      Start   : 0x10047000
+ *      End     : 0x10047FFF
+ *      Size    : 4 Kbytes
+ *  3. Unprivileged Code:
+ *      Start   : 0x10048000
+ *      End     : 0x1007FFFF
+ *      Size    : 224 Kbytes
+ */
+define symbol __region_ROM_Privileged_start__   = 0x10040000;
+define symbol __region_ROM_Privileged_end__     = 0x10046FFF;
+define symbol __region_ROM_SystemCalls_start__  = 0x10047000;
+define symbol __region_ROM_SystemCalls_end__    = 0x10047FFF;
+define symbol __region_ROM_Unprivileged_start__ = 0x10048000;
+define symbol __region_ROM_Unprivileged_end__   = 0x1007FFFF;
+
+/* RAM Organization
+ *  1. Privileged Data:
+ *      Start   : 0x30008000
+ *      End     : 0x30008FFF
+ *      Size    : 4 Kbytes
+ *  2. Unprivileged Data:
+ *      Start   : 0x30009000
+ *      End     : 0x30017FFF
+ *      Size    : 60 Kbytes
+ */
+define symbol __region_RAM_Privileged_start__   = 0x30008000;
+define symbol __region_RAM_Privileged_end__     = 0x30008FFF;
+define symbol __region_RAM_Unprivileged_start__ = 0x30009000;
+define symbol __region_RAM_Unprivileged_end__   = 0x30017FFF;
+
+/* Memory Regions. */
+define memory mem with size = 4G;
+define region ROM_Privileged_region             = mem:[from __region_ROM_Privileged_start__     to __region_ROM_Privileged_end__];
+define region ROM_SystemCalls_region            = mem:[from __region_ROM_SystemCalls_start__    to __region_ROM_SystemCalls_end__];
+define region ROM_Unprivileged_region           = mem:[from __region_ROM_Unprivileged_start__   to __region_ROM_Unprivileged_end__];
+define region RAM_Privileged_region             = mem:[from __region_RAM_Privileged_start__     to __region_RAM_Privileged_end__];
+define region RAM_Unprivileged_region           = mem:[from __region_RAM_Unprivileged_start__   to __region_RAM_Unprivileged_end__];
+
+/* Stack and Heap. */
+define block CSTACK        with alignment = 8, size = __ICFEDIT_size_cstack__        { };
+define block PROC_STACK_S  with alignment = 8, size = __ICFEDIT_size_proc_s_stack__  { };
+define block MAIN_STACK_NS with alignment = 8, size = __ICFEDIT_size_main_ns_stack__ { };
+define block PROC_STACK_NS with alignment = 8, size = __ICFEDIT_size_proc_ns_stack__ { };
+define block HEAP          with alignment = 8, size = __ICFEDIT_size_heap__          { };
+
+/* Initialization. */
+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 };
+}
+
+/* Exported symbols. */
+define exported symbol __privileged_functions_start__   = __region_ROM_Privileged_start__;
+define exported symbol __privileged_functions_end__     = __region_ROM_Privileged_end__;
+define exported symbol __syscalls_flash_start__         = __region_ROM_SystemCalls_start__;
+define exported symbol __syscalls_flash_end__           = __region_ROM_SystemCalls_end__;
+define exported symbol __unprivileged_flash_start__     = __region_ROM_Unprivileged_start__;
+define exported symbol __unprivileged_flash_end__       = __region_ROM_Unprivileged_end__;
+define exported symbol __privileged_sram_start__        = __region_RAM_Privileged_start__;
+define exported symbol __privileged_sram_end__          = __region_RAM_Privileged_end__;
+
+/* Placements. */
+place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
+
+place in ROM_Privileged_region   { readonly section privileged_functions };
+place in ROM_SystemCalls_region  { readonly section freertos_system_calls };
+place in ROM_Unprivileged_region { readonly };
+
+place in RAM_Privileged_region   { readwrite section privileged_data };
+place in RAM_Unprivileged_region { readwrite,
+                                   block CSTACK, block PROC_STACK_S, block MAIN_STACK_NS, block PROC_STACK_NS, block HEAP };