]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/ckcpu.ld
Introduce a port for T-HEAD CK802. A simple demo for T-HEAD CB2201 is also included.
[freertos] / FreeRTOS / Demo / T-HEAD_CB2201_CDK / RTOSDemo_CDK / RTOSDemo / ckcpu.ld
1 /*************************************************************\r
2 // <<< Use Configuration Wizard in Context Menu >>>\r
3 *************************************************************/\r
4 \r
5 /*************************************************************\r
6 // <m> Entry Point <2>\r
7 // <i> config start function for this application\r
8 *************************************************************/\r
9 MEMORY\r
10 {\r
11     ROM    : ORIGIN = 0x0        , LENGTH = 0x2000    /* ROM  8KB*/\r
12     EFLASH : ORIGIN = 0x60000000 , LENGTH = 0x4000   /* E-FLASH 252KB*/\r
13     SRAM   : ORIGIN = 0x60004000 , LENGTH = 0xC000   /* on-chip SRAM 80KB*/\r
14 }\r
15 \r
16 __min_heap_size = 0x200;\r
17 PROVIDE (__ram_end  = 0x60014000);\r
18 PROVIDE (__heap_end = __ram_end);\r
19 \r
20 REGION_ALIAS("REGION_TEXT",    EFLASH);\r
21 REGION_ALIAS("REGION_RODATA",  EFLASH);\r
22 REGION_ALIAS("REGION_DATA",    SRAM);\r
23 REGION_ALIAS("REGION_BSS",     SRAM);\r
24 \r
25 ENTRY(Reset_Handler)\r
26 SECTIONS\r
27 {\r
28  .text : {\r
29   . = ALIGN(0x4) ;\r
30   *startup.o(*.text)\r
31   __stext = . ;\r
32   *(.text)\r
33   *(.text*)\r
34   *(.text.*)\r
35   *(.gnu.warning)\r
36   *(.stub)\r
37   *(.gnu.linkonce.t*)\r
38   *(.glue_7t)\r
39   *(.glue_7)\r
40   *(.jcr)\r
41   KEEP (*(.init))\r
42   KEEP (*(.fini))\r
43   . = ALIGN (4) ;\r
44   PROVIDE(__ctbp = .);\r
45   *(.call_table_data)\r
46   *(.call_table_text)\r
47   . = ALIGN(0x10) ;\r
48   __etext = . ;\r
49  } > REGION_TEXT\r
50  .eh_frame_hdr : {\r
51   *(.eh_frame_hdr)\r
52  } > REGION_TEXT\r
53  .eh_frame : ONLY_IF_RO {\r
54   KEEP (*(.eh_frame))\r
55  } > REGION_TEXT\r
56  .gcc_except_table : ONLY_IF_RO {\r
57   *(.gcc_except_table .gcc_except_table.*)\r
58  } > REGION_TEXT\r
59  .rodata : {\r
60   . = ALIGN(0x4) ;\r
61   __srodata = .;\r
62   *(.rdata)\r
63   *(.rdata*)\r
64   *(.rdata1)\r
65   *(.rdata.*)\r
66   *(.rodata)\r
67   *(.rodata1)\r
68   *(.rodata*)\r
69   *(.rodata.*)\r
70   *(.rodata.str1.4)\r
71   . = ALIGN(0x4) ;\r
72   __ctor_start__ = .;\r
73   KEEP (*(SORT(.ctors.*)))\r
74   KEEP (*(.ctors))\r
75   __ctor_end__ = .;\r
76   KEEP (*(SORT(.dtors.*)))\r
77   KEEP (*(.dtors))\r
78   __dtor_end__ = .;\r
79   . = ALIGN(0x4) ;\r
80   __erodata = .;\r
81   __rodata_end__ = .;\r
82  } > REGION_RODATA\r
83  .data : {\r
84   . = ALIGN(0x4) ;\r
85   __sdata = . ;\r
86   __data_start__ = . ;\r
87   data_start = . ;\r
88   KEEP(*startup.o(.vectors))\r
89   *(.got.plt)\r
90   *(.got)\r
91   *(.gnu.linkonce.r*)\r
92   *(.data)\r
93   *(.data*)\r
94   *(.data1)\r
95   *(.data.*)\r
96   *(.gnu.linkonce.d*)\r
97   *(.data1)\r
98   *(.gcc_except_table)\r
99   *(.gcc_except_table*)\r
100   __start_init_call = .;\r
101   *(.initcall.init)\r
102   __stop_init_call = .;\r
103   __start_cmd = .;\r
104   *(.bootloaddata.cmd)\r
105   . = ALIGN(4) ;\r
106   __stop_cmd = .;\r
107   *(.sdata)\r
108   *(.sdata.*)\r
109   *(.gnu.linkonce.s.*)\r
110   *(__libc_atexit)\r
111   *(__libc_subinit)\r
112   *(__libc_subfreeres)\r
113   *(.note.ABI-tag)\r
114   __edata = .;\r
115   __data_end__ = .;\r
116   . = ALIGN(0x4) ;\r
117  } > REGION_DATA AT > REGION_RODATA\r
118  .eh_frame : ONLY_IF_RW {\r
119   KEEP (*(.eh_frame))\r
120  } > REGION_DATA AT > REGION_RODATA\r
121  .gcc_except_table : ONLY_IF_RW {\r
122   *(.gcc_except_table .gcc_except_table.*)\r
123   __edata = .;\r
124   __data_end__ = .;\r
125  } > REGION_DATA AT > REGION_RODATA\r
126  .bss : {\r
127   . = ALIGN(0x4) ;\r
128   __sbss = ALIGN(0x4) ;\r
129   __bss_start__ = . ;\r
130   *(.dynsbss)\r
131   *(.sbss)\r
132   *(.sbss.*)\r
133   *(.scommon)\r
134   *(.dynbss)\r
135   *(.bss)\r
136   *(.bss.*)\r
137   *(COMMON)\r
138   . = ALIGN(0x4) ;\r
139   __ebss = . ;\r
140   __bss_end__ = .;\r
141   __end = . ;\r
142   end = . ;\r
143  } > REGION_BSS AT > REGION_BSS\r
144  ._user_heap : {\r
145   . = ALIGN(0x4) ;\r
146   __heap_start = .;\r
147   . += __min_heap_size;\r
148   . = ALIGN(0x4) ;\r
149  } > REGION_BSS AT > REGION_BSS\r
150 }