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
src
drivers
boards
ws63
evb
linker
ws63_liteos_app_linker
function.h
由
William Goodspeed
维护 | E-mail: gongzl@stu.hebust.edu.cn | Wechat: a23333344 | ALSO CHECKOUT
WS63FLASH
!
生成于 2025年 一月 4日 星期六 17:47:12 , 为 WS63 SDK 文档使用
1.9.8