• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1VENDOR_LOAD_ADDR = 0x10000000 + (((0x00 + 0x80 * 0X200) + 0x80 * 0X200) + 1 * 0X200);;
2VENDOR_LOAD_SIZE = 0x20c00 - (((0x00 + 0x80 * 0X200) + 0x80 * 0X200) + 1 * 0X200);;
3WIFI_LOAD_ADDR = VENDOR_LOAD_ADDR + VENDOR_LOAD_SIZE;
4WIFI_LOAD_SIZE = 0x40000;
5XIP_LOAD_ADDR = WIFI_LOAD_ADDR + WIFI_LOAD_SIZE;
6XIP_LOAD_SIZE = 0x0F00 * 0X200 - (XIP_LOAD_ADDR - 0x10000000);
7ENTRY(Reset_Handler)
8MEMORY
9{
10  SRAM_CODE (rwx) : ORIGIN = 0x00080000, LENGTH = 0x26000
11  SRAM_DATA (rwx) : ORIGIN = (0x20000000 + 0x26000), LENGTH = (0x20000 + 0x20000 - 0x26000)
12  PSRAM (rwx) : ORIGIN = 0x38000000, LENGTH = 0x00800000
13  VENDOR (rx) : ORIGIN = VENDOR_LOAD_ADDR, LENGTH = VENDOR_LOAD_SIZE
14  WIFI (rx) : ORIGIN = WIFI_LOAD_ADDR, LENGTH = WIFI_LOAD_SIZE
15  XIP (rx) : ORIGIN = XIP_LOAD_ADDR, LENGTH = XIP_LOAD_SIZE
16}
17SECTIONS
18{
19  .isr.vector :
20  {
21    . = ALIGN(512);
22    KEEP(*(.isr_vector))
23    . = ALIGN(512);
24    *startup_rk2206.o (.text .text.*)
25    . = ALIGN(4);
26  } >VENDOR
27  .wifi_firmwave :
28  {
29    . = ALIGN(512);
30    KEEP(*(.wifi_firmwave))
31    . = ALIGN(512);
32    . = ALIGN(4);
33  } >WIFI
34  .zInit :
35  {
36     __zinitcall_bsp_start = .;
37     KEEP (*(.zinitcall.bsp0.init))
38     KEEP (*(.zinitcall.bsp1.init))
39     KEEP (*(.zinitcall.bsp2.init))
40     KEEP (*(.zinitcall.bsp3.init))
41     KEEP (*(.zinitcall.bsp4.init))
42     __zinitcall_bsp_end = .;
43     __zinitcall_device_start = .;
44     KEEP (*(.zinitcall.device0.init))
45     KEEP (*(.zinitcall.device1.init))
46     KEEP (*(.zinitcall.device2.init))
47     KEEP (*(.zinitcall.device3.init))
48     KEEP (*(.zinitcall.device4.init))
49     __zinitcall_device_end = .;
50     __zinitcall_core_start = .;
51     KEEP (*(.zinitcall.core0.init))
52     KEEP (*(.zinitcall.core1.init))
53     KEEP (*(.zinitcall.core2.init))
54     KEEP (*(.zinitcall.core3.init))
55     KEEP (*(.zinitcall.core4.init))
56     __zinitcall_core_end = .;
57     __zinitcall_sys_service_start = .;
58     KEEP (*(.zinitcall.sys.service0.init))
59     KEEP (*(.zinitcall.sys.service1.init))
60     KEEP (*(.zinitcall.sys.service2.init))
61     KEEP (*(.zinitcall.sys.service3.init))
62     KEEP (*(.zinitcall.sys.service4.init))
63     __zinitcall_sys_service_end = .;
64     __zinitcall_sys_feature_start = .;
65     KEEP (*(.zinitcall.sys.feature0.init))
66     KEEP (*(.zinitcall.sys.feature1.init))
67     KEEP (*(.zinitcall.sys.feature2.init))
68     KEEP (*(.zinitcall.sys.feature3.init))
69     KEEP (*(.zinitcall.sys.feature4.init))
70     __zinitcall_sys_feature_end = .;
71     __zinitcall_run_start = .;
72     KEEP (*(.zinitcall.run0.init))
73     KEEP (*(.zinitcall.run1.init))
74     KEEP (*(.zinitcall.run2.init))
75     KEEP (*(.zinitcall.run3.init))
76     KEEP (*(.zinitcall.run4.init))
77     __zinitcall_run_end = .;
78     __zinitcall_app_service_start = .;
79     KEEP (*(.zinitcall.app.service0.init))
80     KEEP (*(.zinitcall.app.service1.init))
81     KEEP (*(.zinitcall.app.service2.init))
82     KEEP (*(.zinitcall.app.service3.init))
83     KEEP (*(.zinitcall.app.service4.init))
84     __zinitcall_app_service_end = .;
85     __zinitcall_app_feature_start = .;
86     KEEP (*(.zinitcall.app.feature0.init))
87     KEEP (*(.zinitcall.app.feature1.init))
88     KEEP (*(.zinitcall.app.feature2.init))
89     KEEP (*(.zinitcall.app.feature3.init))
90     KEEP (*(.zinitcall.app.feature4.init))
91     __zinitcall_app_feature_end = .;
92     __zinitcall_test_start = .;
93     KEEP (*(.zinitcall.test0.init))
94     KEEP (*(.zinitcall.test1.init))
95     KEEP (*(.zinitcall.test2.init))
96     KEEP (*(.zinitcall.test3.init))
97     KEEP (*(.zinitcall.test4.init))
98     __zinitcall_test_end = .;
99     __zinitcall_exit_start = .;
100     KEEP (*(.zinitcall.exit0.init))
101     KEEP (*(.zinitcall.exit1.init))
102     KEEP (*(.zinitcall.exit2.init))
103     KEEP (*(.zinitcall.exit3.init))
104     KEEP (*(.zinitcall.exit4.init))
105     __zinitcall_exit_end = .;
106  } >XIP
107  _shdf_text = .;
108  .hdf.text :
109  {
110    _hdf_text_start = .;
111    . = ALIGN(4);
112    *libhardware.a:*.o (.text .text.* .rodata .rodata*)
113    *libboard.a:*.o (.text .text.* .rodata .rodata*)
114    *libarch.a:*.o (.text .text.* .rodata .rodata*)
115    *libkernel.a:*.o (.text .text.* .rodata .rodata*)
116    *libgcc.a:*.o (.text .text.* .rodata .rodata*)
117    *libc.a:*.o (.text .text.* .rodata .rodata*)
118    *libcpup.a:*.o (.text .text.* .rodata .rodata*)
119    . = ALIGN(4);
120    _hdf_text_end = .;
121  } >SRAM_CODE AT >XIP
122  .hdf.driver :
123  {
124    _hdf_drivers_start = .;
125    . = ALIGN(4);
126    KEEP(*(.hdf.driver))
127    . = ALIGN(4);
128    _hdf_drivers_end = .;
129  } >XIP
130  .text :
131  {
132    _stext = .;
133    . = ALIGN(4);
134    *(.text)
135    *(.text*)
136    *(.glue_7)
137    *(.glue_7t)
138    *(.eh_frame)
139    KEEP (*(.init))
140    KEEP (*(.fini))
141    . = ALIGN(4);
142    _etext = .;
143  } >XIP
144  .rodata :
145  {
146    . = ALIGN(4);
147    *(.rodata)
148    *(.rodata*)
149    . = ALIGN(4);
150  } >XIP
151  .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >XIP
152  .ARM : {
153    __exidx_start = .;
154    *(.ARM.exidx*)
155    __exidx_end = .;
156  } >XIP
157  _sdata = .;
158  .data :
159  {
160    . = ALIGN(4);
161    _data_start = .;
162    *(.data)
163    *(.data*)
164    . = ALIGN(4);
165    _data_end = .;
166  } >SRAM_DATA AT >XIP
167  .bss :
168  {
169    . = ALIGN(4);
170    _bss_start = .;
171    *(.bss)
172    *(.bss*)
173    *(COMMON)
174    . = ALIGN(4);
175    _bss_end = .;
176  } >PSRAM
177  .stack :
178  {
179    . = ALIGN(8);
180    _sstack = .;
181    PROVIDE ( end = . );
182    *(.stack*)
183    . = . + 0x100000;
184    _estack = .;
185    PROVIDE(_StackTop = .);
186    . = ALIGN(8);
187  } >PSRAM
188  .heap :
189  {
190    . = ALIGN(8);
191    _heap_start = .;
192    . = ALIGN(8);
193  } >PSRAM
194  /DISCARD/ :
195  {
196    libc.a ( * )
197    libm.a ( * )
198    libgcc.a ( * )
199  }
200  .ARM.attributes 0 : { *(.ARM.attributes) }
201}
202