WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
function.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2021-2021. All rights reserved.
3 * Description: Default memory configurations
4 *
5 * Create: 2021-03-09
6 */
7
8// PLAT ROM组件KEEP 请在此添加
9#ifdef USE_WS63_ROM_REPO
10// rom repo platform componets
11#define PLAT_ROM_KEEP(sections_patterns) \
12 KEEP(SORT(*libsfc_rom.a:)(sections_patterns)) \
13 KEEP(SORT(*libhal_sfc_rom.a:)(sections_patterns)) \
14 KEEP(SORT(*libpinctrl_rom.a:)(sections_patterns)) \
15 KEEP(SORT(*libhal_pinctrl_rom.a:)(sections_patterns)) \
16 KEEP(SORT(*libpinctrl_port_ws63_rom.a:)(sections_patterns)) \
17 KEEP(SORT(*libwatchdog_rom.a:)(sections_patterns)) \
18 KEEP(SORT(*libhal_watchdog_rom.a:)(sections_patterns)) \
19 KEEP(SORT(*libwatchdog_port_rom.a:)(sections_patterns)) \
20 KEEP(SORT(*libdrv_timer_rom.a:)(sections_patterns)) \
21 KEEP(SORT(*libhal_timer_rom.a:)(sections_patterns)) \
22 KEEP(SORT(*libtimer_port_rom.a:)(sections_patterns)) \
23 KEEP(SORT(*libsystick_rom.a:)(sections_patterns)) \
24 KEEP(SORT(*libsystick_port_rom.a:)(sections_patterns)) \
25 KEEP(SORT(*liblibboundscheck_rom.a:)(sections_patterns)) \
26 KEEP(SORT(*libtcxo_rom.a:)(sections_patterns)) \
27 KEEP(SORT(*libhal_tcxo_rom.a:)(sections_patterns)) \
28 KEEP(SORT(*libtcxo_port_rom.a:)(sections_patterns)) \
29 KEEP(SORT(*libversion_rom.a:)(sections_patterns))
30#else
31// master platform componets
32#define PLAT_ROM_KEEP(sections_patterns) \
33 KEEP(SORT(*libsfc.a:)(sections_patterns)) \
34 KEEP(SORT(*libhal_sfc.a:)(sections_patterns)) \
35 KEEP(SORT(*libpinctrl.a:)(sections_patterns)) \
36 KEEP(SORT(*libhal_pinctrl.a:)(sections_patterns)) \
37 KEEP(SORT(*libpinctrl_port_ws63.a:)(sections_patterns)) \
38 KEEP(SORT(*libwatchdog.a:)(sections_patterns)) \
39 KEEP(SORT(*libhal_watchdog.a:)(sections_patterns)) \
40 KEEP(SORT(*libwatchdog_port.a:)(sections_patterns)) \
41 KEEP(SORT(*libdrv_timer.a:)(sections_patterns)) \
42 KEEP(SORT(*libhal_timer.a:)(sections_patterns)) \
43 KEEP(SORT(*libtimer_port.a:)(sections_patterns)) \
44 KEEP(SORT(*libsystick.a:)(sections_patterns)) \
45 KEEP(SORT(*libsystick_port.a:)(sections_patterns)) \
46 KEEP(SORT(*liblibboundscheck.a:)(sections_patterns)) \
47 KEEP(SORT(*libtcxo.a:)(sections_patterns)) \
48 KEEP(SORT(*libhal_tcxo.a:)(sections_patterns)) \
49 KEEP(SORT(*libtcxo_port.a:)(sections_patterns))
50#endif
51
52// PLAT ROM组件NO KEEP 请在此添加
53#define PLAT_ROM_NO_KEEP(sections_patterns)
54
55
56// WIFI ROM组件KEEP 请在此添加
57#define WIFI_ROM_KEEP(sections_patterns) \
58 KEEP(SORT(*libwifi_driver_rom.a:)(sections_patterns)) \
59 KEEP(SORT(*libwifi_alg_radar_sensor_rom.a:)(sections_patterns))
60
61// WIFI ROM组件NO KEEP 请在此添加
62#define WIFI_ROM_NO_KEEP(sections_patterns)
63
64
65// BTC ROM组件KEEP 请在此添加
66#define BTC_ROM_KEEP(sections_patterns) \
67 KEEP(SORT(*libbgtp_rom.a:)(sections_patterns))
68
69// BTC ROM组件NO KEEP 请在此添加
70#define BTC_ROM_NO_KEEP(sections_patterns)
71
72
73// BTH ROM组件KEEP 请在此添加
74#define BTH_ROM_KEEP(sections_patterns) \
75 KEEP(SORT(*libbt_host_rom.a:)(sections_patterns)) \
76 KEEP(SORT(*libbg_common_rom.a:)(sections_patterns))
77
78// BTH ROM组件NO KEEP 请在此添加
79#define BTH_ROM_NO_KEEP(sections_patterns)
80
81#define LITEOS_TASK_RAM_TEXT() \
82 SORT(*libbase.a:*los_task.c.obj)(.text.LOS_ListDelete) \
83 SORT(*libbase.a:*los_task.c.obj)(.text.OsPreemptable) \
84 SORT(*libbase.a:*los_task.c.obj)(.text.OsTaskReSched) \
85 SORT(*libbase.a:*los_task.c.obj)(.text.OsTaskSuspend) \
86 SORT(*libbase.a:*los_task.c.obj)(.text.OsTaskAdd2TimerList) \
87 SORT(*libbase.a:*los_task.c.obj)(.text.OsTimerListDelete) \
88 SORT(*libbase.a:*los_task.c.obj)(.text.OsTaskScan) \
89 SORT(*libbase.a:*los_task.c.obj)(.text.LOS_CurTaskIDGet) \
90 SORT(*libbase.a:*los_task.c.obj)(.text.OsCurTaskNameGet) \
91 SORT(*libbase.a:*los_task.c.obj)(.text.OsTaskSwitchCheck) \
92 SORT(*libbase.a:*los_task.c.obj)(.text.LOS_IdleHandlerHookReg) \
93 SORT(*libbase.a:*los_task.c.obj)(.text.OsIdleHandler) \
94 SORT(*libbase.a:*los_task.c.obj)(.text.OsIdleTask) \
95 SORT(*libbase.a:*los_task.c.obj)(.text.OsTaskProcSignal) \
96 SORT(*libbase.a:*los_task.c.obj)(.text.OsTaskEntry) \
97 SORT(*libbase.a:*los_task.c.obj)(.text.LOS_TaskResume) \
98 SORT(*libbase.a:*los_task.c.obj)(.text.OsSysTaskSuspend) \
99 SORT(*libbase.a:*los_task.c.obj)(.text.OsTaskWait) \
100 SORT(*libbase.a:*los_task.c.obj)(.text.OsTaskWake) \
101 SORT(*libbase.a:*los_task.c.obj)(.text.LOS_TaskYield) \
102 SORT(*libbase.a:*los_task.c.obj)(.text.LOS_TaskDelay) \
103 SORT(*libbase.a:*los_task.c.obj)(.text.LOS_TaskLock) \
104 SORT(*libbase.a:*los_task.c.obj)(.text.LOS_TaskUnlock) \
105 SORT(*libbase.a:*los_memory.c.obj)(.text.OsMemInfoGet) \
106 SORT(*libbase.a:*los_memory.c.obj)(.text.OsGetRealPtr) \
107 SORT(*libbase.a:*los_memory.c.obj)(.text.OsMemMergeNode) \
108 SORT(*libbase.a:*los_memory.c.obj)(.text.OsMemListDelete.isra.7) \
109 SORT(*libbase.a:*los_memory.c.obj)(.text.OsMemSplitNode) \
110 SORT(*libbase.a:*los_memory.c.obj)(.text.OsMemAllocWithCheck) \
111 SORT(*libbase.a:*los_memory.c.obj)(.text.OsMemFreeNode) \
112 SORT(*libbase.a:*los_memory.c.obj)(.text.LOS_MemAlloc) \
113 SORT(*libbase.a:*los_memory.c.obj)(.text.LOS_MemAllocAlign) \
114 SORT(*libbase.a:*los_memory.c.obj)(.text.OsMemFree) \
115 SORT(*libbase.a:*llos_memory.c.obj)(.text.LOS_MemFree) \
116 SORT(*libbase.a:*los_memory.c.obj)(.text.LOS_MemRealloc) \
117 SORT(*libbase.a:*los_memory.c.obj)(.text.LOS_MemInfoGet) \
118 SORT(*libbase.a:*los_swtmr.c.obj)(.text.OsSwtmrDelete) \
119 SORT(*libbase.a:*los_swtmr.c.obj)(.text.OsSwtmrTask) \
120 SORT(*libbase.a:*los_swtmr.c.obj)(.text.OsSwtmrStart) \
121 SORT(*libbase.a:*los_swtmr.c.obj)(.text.OsSwtmrScan) \
122 SORT(*libbase.a:*los_swtmr.c.obj)(.text.LOS_SwtmrCreate) \
123 SORT(*libbase.a:*los_swtmr.c.obj)(.text.OsSwtmrIdVerify) \
124 SORT(*libbase.a:*los_swtmr.c.obj)(.text.LOS_SwtmrStart) \
125 SORT(*libbase.a:*los_swtmr.c.obj)(.text.LOS_SwtmrStop) \
126 SORT(*libbase.a:*los_swtmr.c.obj)(.text.LOS_SwtmrDelete)
127
128// PLAT 非ROM组件请在此添加
129#if defined(WS63_SUPPORT_HIGH_THROUGHPUT)
130#define PLAT_NONROM(sections_patterns) \
131 SORT(*libuart.a:)(sections_patterns) \
132 SORT(*libhal_reboot.a:)(sections_patterns) \
133 SORT(*libhal_uart_synopsys.a:)(sections_patterns) \
134 SORT(*libliteos_port.a:)(sections_patterns) \
135 SORT(*libalgorithm.a:)(sections_patterns) \
136 SORT(*libchip_ws63.a:)(sections_patterns) \
137 SORT(*libmbedtls.a:)(sections_patterns) \
138 SORT(*libuart_port_synopsys.a:)(sections_patterns) \
139 SORT(*libat.a:)(sections_patterns) \
140 SORT(*libcpu_utils.a:)(sections_patterns) \
141 SORT(*libgcc.a:)(sections_patterns) \
142 SORT(*libdfx_diag.a:)(sections_patterns) \
143 SORT(*libdfx_exception.a:)(sections_patterns) \
144 SORT(*libdfx_log.a:)(sections_patterns) \
145 SORT(*libdfx_panic.a:)(sections_patterns) \
146 SORT(*libdfx_port_ws63.a:)(sections_patterns) \
147 SORT(*libdfx_preserve.a:)(sections_patterns)
148#else
149#define PLAT_NONROM(sections_patterns) \
150 SORT(*libc.a:)(sections_patterns) \
151 SORT(*libuart.a:)(sections_patterns) \
152 SORT(*libhal_reboot.a:)(sections_patterns) \
153 SORT(*libhal_uart_synopsys.a:)(sections_patterns) \
154 SORT(*libliteos_port.a:)(sections_patterns) \
155 SORT(*libalgorithm.a:)(sections_patterns) \
156 SORT(*libchip_ws63.a:)(sections_patterns) \
157 SORT(*libmbedtls.a:)(sections_patterns) \
158 SORT(*libuart_port_synopsys.a:)(sections_patterns) \
159 SORT(*libat.a:)(sections_patterns) \
160 SORT(*libcpu_utils.a:)(sections_patterns) \
161 SORT(*libgcc.a:)(sections_patterns) \
162 SORT(*libdfx_diag.a:)(sections_patterns) \
163 SORT(*libdfx_exception.a:)(sections_patterns) \
164 SORT(*libdfx_log.a:)(sections_patterns) \
165 SORT(*libdfx_panic.a:)(sections_patterns) \
166 SORT(*libdfx_port_ws63.a:)(sections_patterns) \
167 SORT(*libdfx_preserve.a:)(sections_patterns) \
168 SORT(*libbase.a:)(sections_patterns) \
169 SORT(*libws63_liteos_app.a:)(sections_patterns) \
170 SORT(*libnon_os.a:)(sections_patterns) \
171 SORT(*libproc.a:)(sections_patterns) \
172 SORT(*libcompat.a:)(sections_patterns) \
173 SORT(*libcmsis.a:)(sections_patterns) \
174 SORT(*libdisk.a:)(sections_patterns) \
175 SORT(*libmulti_partition.a:)(sections_patterns) \
176 SORT(*libinit.a:)(sections_patterns) \
177 SORT(*libm.a:)(sections_patterns) \
178 SORT(*libfat.a:)(sections_patterns) \
179 SORT(*libvfs.a:)(sections_patterns) \
180 SORT(*libsec.a:)(sections_patterns) \
181 SORT(*libcsysdeps.a:)(sections_patterns) \
182 SORT(*libposix.a:)(sections_patterns) \
183 SORT(*libinterrupt.a:)(sections_patterns) \
184 SORT(*libtargets.a:)(sections_patterns) \
185 SORT(*libdriverbase.a:)(sections_patterns) \
186 SORT(*liblinux.a:)(sections_patterns) \
187 SORT(*libbcache.a:)(sections_patterns) \
188 SORT(*libramfs.a:)(sections_patterns) \
189 SORT(*libconsole.a:)(sections_patterns) \
190 SORT(*libriscv.a:)(sections_patterns) \
191 SORT(*libosal.a:)(sections_patterns) \
192 SORT(*libosal_adapt.a:)(sections_patterns) \
193 SORT(*liblos_iperf.a:)(sections_patterns) \
194 SORT(*libhal_uart.a:)(sections_patterns) \
195 SORT(*libhal_tsensor.a:)(sections_patterns) \
196 SORT(*libuart_port.a:)(sections_patterns) \
197 SORT(*libhal_pmp.a:)(sections_patterns) \
198 SORT(*libpmp_cfg_ws63.a:)(sections_patterns) \
199 SORT(*libpmp_port.a:)(sections_patterns) \
200 SORT(*libi2c_porting.a:)(sections_patterns) \
201 SORT(*libsfc_flash_config_ws63.a:)(sections_patterns) \
202 SORT(*libtsensor.a:)(sections_patterns) \
203 SORT(*libtsensor_port.a:)(sections_patterns) \
204 SORT(*libefuse.a:)(sections_patterns) \
205 SORT(*libefuse_port.a:)(sections_patterns) \
206 SORT(*libhal_efuse_v151.a:)(sections_patterns) \
207 SORT(*libsoc_port.a:)(sections_patterns) \
208 SORT(*libplat_patch.a:)(sections_patterns) \
209 SORT(*libnv_ws63.a:)(sections_patterns) \
210 SORT(*libupdate_common_ws63.a:)(sections_patterns) \
211 SORT(*libapp_init.a:)(sections_patterns) \
212 SORT(*libplt_at.a:)(sections_patterns) \
213 SORT(*libdiag_dfx_cmd.a:)(sections_patterns) \
214 SORT(*libnv.a:)(sections_patterns) \
215 SORT(*libupdate_common.a:)(sections_patterns) \
216 SORT(*libmips.a:)(sections_patterns) \
217 SORT(*libcpup.a:)(sections_patterns) \
218 SORT(*libhal_gpio_v150.a:)(sections_patterns) \
219 SORT(*libgpio_port.a:)(sections_patterns) \
220 SORT(*libboundscheck_sscanf_s.a:)(sections_patterns)
221#endif
222
223// WIFI非ROM组件 请在此添加
224#ifdef WIFI_TCM_OPTIMIZE
225#define WIFI_NONROM(sections_patterns) \
226 SORT(*libwifi_driver_hmac.a:)(sections_patterns) \
227 SORT(*libwifi_driver_dmac.a:)(sections_patterns) \
228 SORT(*libwpa_supplicant.a:)(sections_patterns) \
229 SORT(*libwifi_service.a:)(sections_patterns) \
230 SORT(*libwifi_at.a:)(sections_patterns) \
231 SORT(*liblwip.a:)(sections_patterns) \
232 SORT(*liblwip_tcm.a:)(sections_patterns) \
233 SORT(*libwifi_promisc.a:)(sections_patterns) \
234 SORT(*libwifi_auto_adjust_freq.a:)(sections_patterns) \
235 SORT(*libwifi_csa.a:)(sections_patterns) \
236 SORT(*libwifi_alg_temp_protect.a:)(sections_patterns) \
237 SORT(*libwifi_alg_txbf.a:)(sections_patterns) \
238 SORT(*libwifi_alg_anti_interference.a:)(sections_patterns) \
239 SORT(*libwifi_alg_edca_opt.a:)(sections_patterns) \
240 SORT(*libwifi_roam.a:)(sections_patterns) \
241 SORT(*libwifi_alg_cca_opt.a:)(sections_patterns) \
242 SORT(*libwifi_tx_amsdu.a:)(sections_patterns) \
243 SORT(*libwifi_sdp.a:)(sections_patterns) \
244 SORT(*libwifi_blacklist.a:)(sections_patterns) \
245 SORT(*libwifi_sr.a:)(sections_patterns) \
246 SORT(*libwifi_frag.a:)(sections_patterns) \
247 SORT(*libwifi_mbo.a:)(sections_patterns) \
248 SORT(*libwifi_bsrp_nfrp.a:)(sections_patterns) \
249 SORT(*libwifi_slp.a:)(sections_patterns) \
250 SORT(*libwifi_radar_sensor.a:)(sections_patterns) \
251 SORT(*libwifi_apf.a:)(sections_patterns) \
252 SORT(*libwifi_repeater.a:)(sections_patterns) \
253 SORT(*libwifi_csi.a:)(sections_patterns) \
254 SORT(*libwifi_wapi.a:)(sections_patterns) \
255 SORT(*libwifi_wps.a:)(sections_patterns) \
256 SORT(*libwifi_psd.a:)(sections_patterns) \
257 SORT(*libwifi_latency.a:)(sections_patterns) \
258 SORT(*libwifi_roam.a:)(sections_patterns) \
259 SORT(*libwifi_uapsd_sta.a:)(sections_patterns) \
260 SORT(*libwifi_ant_sel.a:)(sections_patterns) \
261 SORT(*libwifi_twt.a:)(sections_patterns) \
262 SORT(*libwifi_11k.a:)(sections_patterns) \
263 SORT(*libwifi_11v.a:)(sections_patterns) \
264 SORT(*libwifi_11r.a:)(sections_patterns) \
265 SORT(*libwifi_btcoex.a:)(sections_patterns) \
266 SORT(*libwifi_uapsd_ap.a:)(sections_patterns) \
267 SORT(*libwifi_dnb.a:)(sections_patterns) \
268 SORT(*libwifi_m2u.a:)(sections_patterns)
269#else
270#define WIFI_NONROM(sections_patterns) \
271 SORT(*libwifi_driver_hmac.a:)(sections_patterns) \
272 SORT(*libwifi_driver_dmac.a:)(sections_patterns) \
273 SORT(*libwpa_supplicant.a:)(sections_patterns) \
274 SORT(*libwifi_service.a:)(sections_patterns) \
275 SORT(*libwifi_at.a:)(sections_patterns) \
276 SORT(*liblwip.a:)(sections_patterns) \
277 SORT(*liblwip_tcm.a:)(sections_patterns) \
278 SORT(*libwifi_promisc.a:)(sections_patterns) \
279 SORT(*libwifi_auto_adjust_freq.a:)(sections_patterns) \
280 SORT(*libwifi_csa.a:)(sections_patterns) \
281 SORT(*libwifi_alg_temp_protect.a:)(sections_patterns) \
282 SORT(*libwifi_alg_txbf.a:)(sections_patterns) \
283 SORT(*libwifi_alg_anti_interference.a:)(sections_patterns) \
284 SORT(*libwifi_alg_edca_opt.a:)(sections_patterns) \
285 SORT(*libwifi_roam.a:)(sections_patterns) \
286 SORT(*libwifi_alg_cca_opt.a:)(sections_patterns) \
287 SORT(*libwifi_tx_amsdu.a:)(sections_patterns) \
288 SORT(*libwifi_sdp.a:)(sections_patterns) \
289 SORT(*libwifi_blacklist.a:)(sections_patterns) \
290 SORT(*libwifi_sr.a:)(sections_patterns) \
291 SORT(*libwifi_frag.a:)(sections_patterns) \
292 SORT(*libwifi_mbo.a:)(sections_patterns) \
293 SORT(*libwifi_bsrp_nfrp.a:)(sections_patterns) \
294 SORT(*libwifi_slp.a:)(sections_patterns) \
295 SORT(*libwifi_radar_sensor.a:)(sections_patterns) \
296 SORT(*libwifi_apf.a:)(sections_patterns) \
297 SORT(*libwifi_repeater.a:)(sections_patterns) \
298 SORT(*libwifi_csi.a:)(sections_patterns) \
299 SORT(*libwifi_wapi.a:)(sections_patterns) \
300 SORT(*libwifi_wps.a:)(sections_patterns) \
301 SORT(*libwifi_psd.a:)(sections_patterns) \
302 SORT(*libwifi_latency.a:)(sections_patterns) \
303 SORT(*libwifi_roam.a:)(sections_patterns) \
304 SORT(*libwifi_uapsd_sta.a:)(sections_patterns) \
305 SORT(*libwifi_ant_sel.a:)(sections_patterns) \
306 SORT(*libwifi_twt.a:)(sections_patterns) \
307 SORT(*libwifi_11k.a:)(sections_patterns) \
308 SORT(*libwifi_11v.a:)(sections_patterns) \
309 SORT(*libwifi_11r.a:)(sections_patterns) \
310 SORT(*libwifi_btcoex.a:)(sections_patterns) \
311 SORT(*libwifi_uapsd_ap.a:)(sections_patterns) \
312 SORT(*libwifi_dnb.a:)(sections_patterns) \
313 SORT(*libwifi_m2u.a:)(sections_patterns)
314#endif
315
316#define RADAR_NONROM(sections_patterns) \
317 SORT(*libradar_sensing.a:)(sections_patterns) \
318 SORT(*libradar_at.a:)(sections_patterns)
319
320#define RADAR_AI_NONROM(sections_patterns) \
321 SORT(*libradar_ai.a:)(sections_patterns)
322
323// BTC非ROM组件 请在此添加
324#define BTC_NONROM(sections_patterns) \
325 SORT(*libbgtp.a:)(sections_patterns)
326
327// BTH非ROM组件 请在此添加
328#define BTH_NONROM(sections_patterns) \
329 SORT(*libbg_common.a:)(sections_patterns) \
330 SORT(*libbt_host.a:)(sections_patterns) \
331 SORT(*libbth_gle.a:)(sections_patterns) \
332 SORT(*libbth_sdk.a:)(sections_patterns) \
333 SORT(*libbt_at.a:)(sections_patterns) \
334 SORT(*libbt_app.a:)(sections_patterns) \
335 SORT(*libsamples.a:)(sections_patterns) \
336 SORT(*libtestsuite.a:)(sections_patterns)
337
338// WIFI cali非ROM 请在此添加
339#define WIFI_CALI_NONROM(sections_patterns)
340
341// BTC cali非ROM 请在此添加
342#define BTC_CALI_NONROM(sections_patterns)
343
344// BTH cali非ROM 请在此添加
345#define BTH_CALI_NONROM(sections_patterns)
346
347// PLAT SRAM请在此添加
348#if defined(WS63_SUPPORT_HIGH_THROUGHPUT)
349#define PLAT_SRAM_NONROM(sections_patterns) \
350 SORT(*libws63_liteos_app.a:)(sections_patterns) \
351 SORT(*libosal.a:)(sections_patterns) \
352 SORT(*libosal_adapt.a:)(sections_patterns) \
353 SORT(*libnon_os.a:)(sections_patterns) \
354 SORT(*libproc.a:)(sections_patterns) \
355 SORT(*libcompat.a:)(sections_patterns) \
356 SORT(*libbase.a:)(sections_patterns) \
357 SORT(*libcmsis.a:)(sections_patterns) \
358 SORT(*libdisk.a:)(sections_patterns) \
359 SORT(*libmulti_partition.a:)(sections_patterns) \
360 SORT(*libinit.a:)(sections_patterns) \
361 SORT(*libm.a:)(sections_patterns) \
362 SORT(*libfat.a:)(sections_patterns) \
363 SORT(*libvfs.a:)(sections_patterns) \
364 SORT(*libsec.a:)(sections_patterns) \
365 SORT(*libcsysdeps.a:)(sections_patterns) \
366 SORT(*libposix.a:)(sections_patterns) \
367 SORT(*liblos_iperf.a:)(sections_patterns) \
368 SORT(*libinterrupt.a:)(sections_patterns) \
369 SORT(*libtargets.a:)(sections_patterns) \
370 SORT(*libdriverbase.a:)(sections_patterns) \
371 SORT(*libriscv.a:)(sections_patterns) \
372 SORT(*liblinux.a:)(sections_patterns) \
373 SORT(*libbcache.a:)(sections_patterns) \
374 SORT(*libramfs.a:)(sections_patterns) \
375 SORT(*libconsole.a:)(sections_patterns) \
376 SORT(*libpm_port_ws63.a:)(sections_patterns) \
377 SORT(*libsfc_port_ws63.a:)(sections_patterns) \
378 SORT(*libtest_sfc.a:)(sections_patterns)
379#else
380#define PLAT_SRAM_NONROM(sections_patterns) \
381 SORT(*libbase.a:*los_hwi.c.obj)(sections_patterns) \
382 SORT(*libbase.a:*los_tick.c.obj)(sections_patterns) \
383 SORT(*libbase.a:*los_sched.c.obj)(sections_patterns) \
384 SORT(*libbase.a:*los_exc.c.obj)(sections_patterns) \
385 SORT(*libbase.a:*los_sortlink.c.obj)(sections_patterns) \
386 SORT(*libinterrupt.a:*riscv_himideerv200_plic.c.obj)(sections_patterns) \
387 SORT(*libriscv.a:*exception.S.obj)(sections_patterns) \
388 SORT(*libriscv.a:*trap.S.obj)(sections_patterns) \
389 SORT(*libriscv.a:*dispatch.S.obj)(sections_patterns) \
390 SORT(*libriscv.a:*cache.c.obj)(sections_patterns) \
391 SORT(*libriscv.a:*task.c.obj)(sections_patterns) \
392 SORT(*libcsysdeps.a:*memcpy.S.obj)(sections_patterns) \
393 SORT(*libcsysdeps.a:*memset.S.obj)(sections_patterns) \
394 SORT(*libosal.a:*osal_spinlock.c.obj)(sections_patterns) \
395 SORT(*libosal.a:*osal_interrupt.c.obj)(sections_patterns) \
396 SORT(*libosal.a:*osal_addr.c.obj)(sections_patterns) \
397 SORT(*libosal_adapt.a:*osal_adapt_timer.c.obj)(sections_patterns) \
398 SORT(*libosal_adapt.a:*osal_adapt_task.c.obj)(sections_patterns) \
399 SORT(*libpm_port_ws63.a:)(sections_patterns) \
400 SORT(*libsfc_port_ws63.a:)(sections_patterns) \
401 SORT(*libtest_sfc.a:)(sections_patterns)
402#endif
403
404// WIFI SRAM请在此添加
405#define WIFI_SRAM_NONROM(sections_patterns)
406
407// BTC SRAM请在此添加
408#define BTC_SRAM_NONROM(sections_patterns)
409
410// BTH SRAM请在此添加
411#define BTH_SRAM_NONROM(sections_patterns)
412
413// PLAT 需要放在tcm中的 请在此添加
414#define PLAT_TCM_NONROM(sections_patterns)
415
416// LWIP性能相关请在此添加
417#define LWIP_PERFORMANCE_SECTION() \
418 SORT(*liblwip_tcm.a:)(.text.get_socket) \
419 SORT(*liblwip_tcm.a:)(.text.tryget_socket) \
420 SORT(*liblwip_tcm.a:)(.text.tryget_socket_unconn) \
421 SORT(*liblwip_tcm.a:)(.text.sock_inc_used) \
422 SORT(*liblwip_tcm.a:)(.text.tryget_socket_unconn_nouse) \
423 SORT(*liblwip_tcm.a:)(.text.tryget_socket_unconn_locked) \
424 SORT(*liblwip_tcm.a:)(.text.done_socket) \
425 SORT(*liblwip_tcm.a:)(.text.lwip_recvfrom) \
426 SORT(*liblwip_tcm.a:)(.text.lwip_recv_tcp) \
427 SORT(*liblwip_tcm.a:)(.text.event_callback) \
428 SORT(*liblwip_tcm.a:)(.text.lwip_select) \
429 SORT(*liblwip_tcm.a:)(.text.select_check_waiters) \
430 SORT(*liblwip_tcm.a:)(.text.netconn_apimsg) \
431 SORT(*liblwip_tcm.a:)(.text.netconn_recv_data) \
432 SORT(*liblwip_tcm.a:)(.text.netconn_tcp_recvd_msg) \
433 SORT(*liblwip_tcm.a:)(.text.netconn_tcp_recvd) \
434 SORT(*liblwip_tcm.a:)(.text.netconn_recv_data_tcp) \
435 SORT(*liblwip_tcm.a:)(.text.netconn_recv_tcp_pbuf_flags) \
436 SORT(*liblwip_tcm.a:)(.text.netconn_recv_udp_raw_netbuf_flags) \
437 KEEP(SORT(*liblwip_tcm.a:)(.text.netconn_recv)) \
438 KEEP(SORT(*liblwip_tcm.a:)(.text.netconn_sendto)) \
439 SORT(*liblwip_tcm.a:)(.text.netconn_send) \
440 SORT(*liblwip_tcm.a:)(.text.netconn_write_partly) \
441 SORT(*liblwip_tcm.a:)(.text.netconn_write_vectors_partly) \
442 SORT(*liblwip_tcm.a:)(.text.lwip_netconn_do_send) \
443 SORT(*liblwip_tcm.a:)(.text.lwip_netconn_do_write) \
444 SORT(*liblwip_tcm.a:)(.text.netbuf_alloc) \
445 SORT(*liblwip_tcm.a:)(.text.netbuf_free) \
446 SORT(*liblwip_tcm.a:)(.text.tcpip_thread) \
447 KEEP(SORT(*liblwip_tcm.a:)(.text.tcpip_thread_handle_msg)) \
448 SORT(*liblwip_tcm.a:)(.text.tcpip_inpkt) \
449 SORT(*liblwip_tcm.a:)(.text.tcpip_input) \
450 SORT(*liblwip_tcm.a:)(.text.tcpip_callback) \
451 SORT(*liblwip_tcm.a:)(.text.tcpip_try_callback) \
452 SORT(*liblwip_tcm.a:)(.text.tcpip_send_msg_wait_sem) \
453 SORT(*liblwip_tcm.a:)(.text.inet_cksum_pseudo_base) \
454 SORT(*liblwip_tcm.a:)(.text.inet_chksum_pseudo) \
455 SORT(*liblwip_tcm.a:)(.text.etharp_output_to_arp_index) \
456 SORT(*liblwip_tcm.a:)(.text.etharp_output) \
457 SORT(*liblwip_tcm.a:)(.text.ip4_addr_isbroadcast_u32) \
458 SORT(*liblwip_tcm.a:)(.text.ip_input) \
459 SORT(*liblwip_tcm.a:)(.text.ip4_route) \
460 SORT(*liblwip_tcm.a:)(.text.ip4_input) \
461 SORT(*liblwip_tcm.a:)(.text.ip4_output_if) \
462 SORT(*liblwip_tcm.a:)(.text.ip4_output_if_opt) \
463 SORT(*liblwip_tcm.a:)(.text.ip4_output_if_src) \
464 SORT(*liblwip_tcm.a:)(.text.ip4_output_if_opt_src) \
465 SORT(*liblwip_tcm.a:)(.text.pbuf_alloc) \
466 SORT(*liblwip_tcm.a:)(.text.pbuf_add_header_impl) \
467 SORT(*liblwip_tcm.a:)(.text.pbuf_add_header) \
468 SORT(*liblwip_tcm.a:)(.text.pbuf_remove_header) \
469 SORT(*liblwip_tcm.a:)(.text.pbuf_header_impl) \
470 SORT(*liblwip_tcm.a:)(.text.pbuf_header) \
471 SORT(*liblwip_tcm.a:)(.text.pbuf_free) \
472 KEEP(SORT(*liblwip_tcm.a:)(.text.pbuf_alloced_custom)) \
473 SORT(*liblwip_tcm.a:)(.text.pbuf_init_alloced_pbuf) \
474 SORT(*liblwip_tcm.a:)(.text.pbuf_alloc_from_ptk_buf) \
475 SORT(*liblwip_tcm.a:)(.text.ethernet_input) \
476 SORT(*liblwip_tcm.a:)(.text.ethernet_output) \
477 SORT(*liblwip_tcm.a:)(.text.sys_mutex_lock) \
478 SORT(*liblwip_tcm.a:)(.text.sys_mutex_unlock) \
479 SORT(*liblwip_tcm.a:)(.text.sys_sem_signal) \
480 SORT(*liblwip_tcm.a:)(.text.sys_arch_sem_wait) \
481 SORT(*liblwip_tcm.a:)(.text.sys_mbox_post) \
482 SORT(*liblwip_tcm.a:)(.text.sys_mbox_trypost) \
483 SORT(*liblwip_tcm.a:)(.text.sys_arch_mbox_fetch_ext) \
484 SORT(*liblwip_tcm.a:)(.text.driverif_output) \
485 SORT(*liblwip_tcm.a:)(.text.driverif_input) \
486 SORT(*liblwip_tcm.a:)(.text.ip4_frag) \
487 SORT(*liblwip_tcm.a:)(.text.ip4_reass) \
488 SORT(*liblwip_tcm.a:)(.text.ip_addr_cmp) \
489 SORT(*liblwip_tcm.a:)(.text.ip_addr_copy_fun) \
490 SORT(*liblwip_tcm.a:)(.text.ip_addr_isany) \
491 SORT(*liblwip_tcm.a:)(.text.mem_free) \
492 SORT(*liblwip_tcm.a:)(.text.mem_malloc) \
493 SORT(*liblwip_tcm.a:)(.text.memp_free) \
494 SORT(*liblwip_tcm.a:)(.text.memp_malloc) \
495 SORT(*liblwip_tcm.a:)(.text.mem_trim) \
496 SORT(*liblwip_tcm.a:)(.text.netif_default) \
497 SORT(*liblwip_tcm.a:)(.text.netif_find) \
498 SORT(*liblwip_tcm.a:)(.text.netif_find_by_ifindex) \
499 SORT(*liblwip_tcm.a:)(.text.netif_find_by_ipaddr) \
500 SORT(*liblwip_tcm.a:)(.text.netif_find_dst_ipaddr) \
501 SORT(*liblwip_tcm.a:)(.text.netif_ipaddr_isbrdcast) \
502 SORT(*liblwip_tcm.a:)(.text.netif_loop_output) \
503 SORT(*liblwip_tcm.a:)(.text.netif_loop_output_ipv4) \
504 SORT(*liblwip_tcm.a:)(.text.raw_remove) \
505 SORT(*liblwip_tcm.a:)(.text.raw_send) \
506 SORT(*liblwip_tcm.a:)(.text.raw_sendto) \
507 SORT(*liblwip_tcm.a:)(.text.tcp_abort) \
508 SORT(*liblwip_tcm.a:)(.text.tcp_accept) \
509 SORT(*liblwip_tcm.a:)(.text.tcp_active_pcbs) \
510 SORT(*liblwip_tcm.a:)(.text.tcp_arg) \
511 SORT(*liblwip_tcm.a:)(.text.tcp_backlog_accepted) \
512 SORT(*liblwip_tcm.a:)(.text.tcp_backlog_delayed) \
513 SORT(*liblwip_tcm.a:)(.text.tcp_listen_with_backlog_and_err) \
514 SORT(*liblwip_tcm.a:)(.text.tcp_new_ip_type) \
515 SORT(*liblwip_tcm.a:)(.text.tcp_recv) \
516 SORT(*liblwip_tcm.a:)(.text.tcp_shutdown) \
517 SORT(*liblwip_tcm.a:)(.text.tcp_sndbuf_init) \
518 SORT(*liblwip_tcm.a:)(.text.tcp_write) \
519 SORT(*liblwip_tcm.a:)(.text.tcp_input) \
520 SORT(*liblwip_tcm.a:)(.text.tcp_output)
521
522#ifdef LWIP_TCM_OPTIMIZE
523#define LWIP_TCM_SECTION() \
524 LWIP_PERFORMANCE_SECTION()
525#define LWIP_FLASH_SECTION()
526#else
527#define LWIP_TCM_SECTION()
528
529#define LWIP_FLASH_SECTION() \
530 LWIP_PERFORMANCE_SECTION()
531#endif
532
533// WIFI需要放在tcm中的 请在此添加
534#ifdef WIFI_TCM_OPTIMIZE
535#define WIFI_TCM_NONROM(sections_patterns) \
536 SORT(*libwifi_driver_tcm.a:)(sections_patterns)
537#define WIFI_TCM_SECTION() \
538 KEEP(*(.wifi.tcm.text .wifi.tcm.rodata))
539#define WIFI_FLASH_SECTION()
540#define WIFI_FLASH_NONROM(sections_patterns)
541#else // WIFI_TCM_OPTIMIZE
542#define WIFI_TCM_NONROM(sections_patterns)
543#define WIFI_TCM_SECTION()
544#define WIFI_FLASH_SECTION() \
545 KEEP(*(.wifi.tcm.text .wifi.tcm.rodata))
546#define WIFI_FLASH_NONROM(sections_patterns) \
547 SORT(*libwifi_driver_tcm.a:)(sections_patterns)
548#endif // WIFI_TCM_OPTIMIZE
549
550// BTC需要放在tcm中的 请在此添加
551#define BTC_TCM_NONROM(sections_patterns) \
552 SORT(*libbgtp.a:bgtp_sleep_sw_ram**.o*)(sections_patterns) \
553 SORT(*libbgtp.a:)(.text.bt_thread_handle) \
554 SORT(*libbgtp.a:)(.text.bt_crypto_thread_handle) \
555 SORT(*libbgtp.a:dts_interrupt_itcm**.o*)(sections_patterns) \
556 SORT(*libbgtp.a:dts_interrupt_dev_only**.o*)(sections_patterns) \
557 SORT(*libbgtp.a:evt_sched_mgr_ram**.o*)(sections_patterns) \
558 SORT(*libbgtp.a:evt_sched_ram**.o*)(sections_patterns) \
559 SORT(*libbgtp.a:evt_sched_util_ram**.o*)(sections_patterns) \
560 SORT(*libbgtp.a:evt_prog_ram**.o*)(sections_patterns)
561
562// WIFI需要单独放在DTCM中的变量在此添加
563#if (defined(CONFIG_BGLE_RAM_SIZE_16K) || defined(CONFIG_BGLE_RAM_SIZE_32K)) && !defined(WIFI_TCM_OPTIMIZE)
564#define WIFI_OPTIMIZE_DTCM(sections_patterns) \
565 PLAT_NONROM(sections_patterns) \
566 WIFI_NONROM(sections_patterns) \
567 RADAR_NONROM(sections_patterns) \
568 RADAR_AI_NONROM(sections_patterns) \
569 WIFI_CALI_NONROM(sections_patterns) \
570 PLAT_SRAM_NONROM(sections_patterns) \
571 WIFI_SRAM_NONROM(sections_patterns)
572#define WIFI_OPTIMIZE_DTCM_BSS() \
573 SORT(*libwifi_driver_dmac.a:)(.bss.g_dmac_frw_pool_index) \
574 SORT(*libwifi_driver_dmac.a:)(.bss.g_dmac_frw_pool)
575#else
576#define WIFI_OPTIMIZE_DTCM(sections_patterns)
577#define WIFI_OPTIMIZE_DTCM_BSS()
578#endif