]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M0+_LPC51U68_GCC_IAR_KEIL/IAR_specific/LPC51U68_ram.icf
Increase test coverage for queue sets.
[freertos] / FreeRTOS / Demo / CORTEX_M0+_LPC51U68_GCC_IAR_KEIL / IAR_specific / LPC51U68_ram.icf
1 /*\r
2 ** ###################################################################\r
3 **     Processors:          LPC51U68JBD48\r
4 **                          LPC51U68JBD64\r
5 **\r
6 **     Compiler:            IAR ANSI C/C++ Compiler for ARM\r
7 **     Reference manual:    LPC51U68 User manual User manual Rev. 1.0 13 Dec 2017\r
8 **     Version:             rev. 1.0, 2017-12-15\r
9 **     Build:               b180801\r
10 **\r
11 **     Abstract:\r
12 **         Linker file for the IAR ANSI C/C++ Compiler for ARM\r
13 **\r
14 **     Copyright 2016 Freescale Semiconductor, Inc.\r
15 **     Copyright 2016-2018 NXP\r
16 **\r
17 **     SPDX-License-Identifier: BSD-3-Clause\r
18 **\r
19 **     http:                 www.nxp.com\r
20 **     mail:                 support@nxp.com\r
21 **\r
22 ** ###################################################################\r
23 */\r
24 \r
25 \r
26 /* Stack and Heap Sizes */\r
27 if (isdefinedsymbol(__stack_size__)) {\r
28   define symbol __size_cstack__        = __stack_size__;\r
29 } else {\r
30   define symbol __size_cstack__        = 0x0400;\r
31 }\r
32 \r
33 if (isdefinedsymbol(__heap_size__)) {\r
34   define symbol __size_heap__          = __heap_size__;\r
35 } else {\r
36   define symbol __size_heap__          = 0x0800;\r
37 }\r
38 \r
39 define symbol m_interrupts_start               = 0x04000000;\r
40 define symbol m_interrupts_end                 = 0x040000DF;\r
41 \r
42 define symbol m_text_start                     = 0x040000E0;\r
43 define symbol m_text_end                       = 0x04007FFF;\r
44 \r
45 define symbol m_data_start                     = 0x20000000;\r
46 define symbol m_data_end                       = 0x2000FFFF - __size_cstack__;\r
47 \r
48 define symbol m_stack_start                    = 0x20010000 - __size_cstack__;\r
49 define symbol m_stack_end                      = 0x2000FFFF;\r
50 \r
51 define memory mem with size = 4G;\r
52 \r
53 define region TEXT_region             = mem:[from m_interrupts_start to m_interrupts_end]\r
54                                       | mem:[from m_text_start to m_text_end];\r
55 define region DATA_region             = mem:[from m_data_start to m_data_end];\r
56 define region CSTACK_region           = mem:[from m_stack_start to m_stack_end];\r
57 \r
58 define block CSTACK    with alignment = 8, size = __size_cstack__   { };\r
59 define block HEAP      with alignment = 8, size = __size_heap__     { };\r
60 define block RW        { readwrite };\r
61 define block ZI        { zi };\r
62 \r
63 initialize by copy { readwrite, section .textrw };\r
64 \r
65 if (isdefinedsymbol(__USE_DLIB_PERTHREAD))\r
66 {\r
67   /* Required in a multi-threaded application */\r
68   initialize by copy with packing = none { section __DLIB_PERTHREAD };\r
69 }\r
70 \r
71 do not initialize  { section .noinit };\r
72 \r
73 place at address mem: m_interrupts_start    { readonly section .intvec };\r
74 place in TEXT_region                        { readonly };\r
75 place in DATA_region                        { block RW };\r
76 place in DATA_region                        { block ZI };\r
77 place in DATA_region                        { last block HEAP };\r
78 place in CSTACK_region                      { block CSTACK };\r