Files
99_7018_lmx/cpu/br28/sdk.ld
2025-10-29 13:10:02 +08:00

2105 lines
47 KiB
Plaintext

lp_signature_set = ABSOLUTE(0x1fd6c);
memmem = ABSOLUTE(0x1fd70);
memcpy = ABSOLUTE(0x1fd74);
memmove = ABSOLUTE(0x1fd78);
memcmp = ABSOLUTE(0x1fd7c);
memset = ABSOLUTE(0x1fd80);
strcmp = ABSOLUTE(0x1fd84);
strcpy = ABSOLUTE(0x1fd88);
strlen = ABSOLUTE(0x1fd8c);
strncmp = ABSOLUTE(0x1fd90);
strstr = ABSOLUTE(0x1fd94);
strchr = ABSOLUTE(0x1fd98);
__divdi3 = ABSOLUTE(0x1fd9c);
__udivmoddi4 = ABSOLUTE(0x1fda0);
__adddf3 = ABSOLUTE(0x1fda4);
__fixdfsi = ABSOLUTE(0x1fda8);
flush_dcache = ABSOLUTE(0x1fdac);
flushinv_dcache = ABSOLUTE(0x1fdb0);
IcuWaitIdle = ABSOLUTE(0x1fdb4);
DcuWaitIdle = ABSOLUTE(0x1fdb8);
IcuInitial = ABSOLUTE(0x1fdbc);
DcuInitial = ABSOLUTE(0x1fdc0);
sfc_drop_cache = ABSOLUTE(0x1fdcc);
chip_crc16 = ABSOLUTE(0x1fdd0);
CrcDecode = ABSOLUTE(0x1fdd4);
get_flash_file_key = ABSOLUTE(0x1fdd8);
dec_isd_cfg_ini = ABSOLUTE(0x1fddc);
_jlfs_mount = ABSOLUTE(0x1fde0);
sfc_boot = ABSOLUTE(0x1fde4);
mask_init = ABSOLUTE(0x1fde8);
nvram_set_boot_state = ABSOLUTE(0x1fdf0);
chip_reset = ABSOLUTE(0x1fdf4);
the_debug_isr = ABSOLUTE(0x1fdf8);
print = ABSOLUTE(0x1fdfc);
sprintf = ABSOLUTE(0x1fe00);
printf = ABSOLUTE(0x1fe04);
puts = ABSOLUTE(0x1fe08);
doe = ABSOLUTE(0x1fe0c);
spi_get_port = ABSOLUTE(0x1fe10);
_pll_init = ABSOLUTE(0x1fe14);
flash_poweron = ABSOLUTE(0x1fe18);
spi_unmount = ABSOLUTE(0x1fe1c);
spi_port_io_init = ABSOLUTE(0x1fe20);
usb_slave_mode = ABSOLUTE(0x1fe24);
LZ4_setStreamDecode = ABSOLUTE(0x1fe28);
LZ4_decompress_safe_continue = ABSOLUTE(0x1fe2c);
LZ4_decompress_generic = ABSOLUTE(0x1fe30);
_sdk_mkey_lock = ABSOLUTE(0x1fe34);
g_hash_function = ABSOLUTE(0x1fe38);
f1_hash_function = ABSOLUTE(0x1fe3c);
f2_hash_function = ABSOLUTE(0x1fe40);
f3_hash_function = ABSOLUTE(0x1fe44);
h2_hash_function = ABSOLUTE(0x1fe48);
h3_hash_function = ABSOLUTE(0x1fe4c);
h4_hash_function = ABSOLUTE(0x1fe50);
h5_hash_function = ABSOLUTE(0x1fe54);
g_function = ABSOLUTE(0x1fe58);
f1_function = ABSOLUTE(0x1fe5c);
f2_function = ABSOLUTE(0x1fe60);
f3_function = ABSOLUTE(0x1fe64);
sha256Compute = ABSOLUTE(0x1fe68);
uECC_compute_public_key = ABSOLUTE(0x1fe6c);
uECC_shared_secret = ABSOLUTE(0x1fe70);
bi_initialize = ABSOLUTE(0x1fe74);
bi_read_from_byte = ABSOLUTE(0x1fe78);
bi_poly_mod2 = ABSOLUTE(0x1fe7c);
bi_poly_mul = ABSOLUTE(0x1fe80);
trim = ABSOLUTE(0x1fe84);
bi_wirte_to_byte = ABSOLUTE(0x1fe88);
bi_free = ABSOLUTE(0x1fe8c);
bi_terminate = ABSOLUTE(0x1fe90);
get_cvsd_codec_ops = ABSOLUTE(0x1fe94);
wtgv2_silk_NLSF_CB_NB_MB = ABSOLUTE(0x18590);
wtgv2_LSFCosTab_FIX_Q12 = ABSOLUTE(0x1848c);
icdf_global_table = ABSOLUTE(0x18a88);
get_wtgv2dec_ops = ABSOLUTE(0x1fe98);
wtgv2_silk_Decode = ABSOLUTE(0x1fe9c);
wtgv2_silk_decode_frame = ABSOLUTE(0x1fea0);
wtgv2_silk_decoder_set_fs = ABSOLUTE(0x1fea4);
wtgv2_silk_decode_indices = ABSOLUTE(0x1fea8);
wtgv2_silk_decode_pulses = ABSOLUTE(0x1feac);
wtgv2_silk_decode_parameters = ABSOLUTE(0x1feb0);
wtgv2_silk_decode_core = ABSOLUTE(0x1feb4);
logAprx_CORDIC_float = ABSOLUTE(0x1feb8);
expAprx_CORDIC_float = ABSOLUTE(0x1febc);
magnAprx_float = ABSOLUTE(0x1fec0);
MatrixCopy_float_c_c = ABSOLUTE(0x1fec4);
MatrixCopy_float_f_f = ABSOLUTE(0x1fec8);
MatrixEwMulAndSumOneDim_float_c_c_c_s0 = ABSOLUTE(0x1fecc);
MatrixEwMulAndSumOneDim_float_c_c_c_s1 = ABSOLUTE(0x1fed0);
MatrixEwMulAndSumOneDim_float_f_f_f_s0 = ABSOLUTE(0x1fed4);
MatrixEwMulAndSumOneDim_float_f_f_f_s1 = ABSOLUTE(0x1fed8);
MatrixEwConjMulAndSumOneDim_float_c_c_c_s0 = ABSOLUTE(0x1fedc);
MatrixEwConjMulAndSumOneDim_float_c_c_c_s1 = ABSOLUTE(0x1fee0);
VecMeanSq_s16_f32 = ABSOLUTE(0x1fee4);
VecOverShift_s16_f32 = ABSOLUTE(0x1fee8);
VecMinus_s16_f32_f32 = ABSOLUTE(0x1feec);
VectorCopy_f32_s16 = ABSOLUTE(0x1fef0);
VecEleMul_s16_s16_f32 = ABSOLUTE(0x1fef4);
VecEleMul_f32_s16_f32 = ABSOLUTE(0x1fef8);
VecMeanSq_float_f_f = ABSOLUTE(0x1fefc);
VectorSet_float_f_f = ABSOLUTE(0x1ff00);
VecMagRecAve_float_c_f_f = ABSOLUTE(0x1ff04);
VecMulScalar_float_c_f_c = ABSOLUTE(0x1ff08);
VecConjEleMul_float_c_c_c = ABSOLUTE(0x1ff0c);
VecPlus_float_f_f_f = ABSOLUTE(0x1ff10);
VecDivide_float_c_f_c_f = ABSOLUTE(0x1ff14);
VecPlus_float_c_c_c = ABSOLUTE(0x1ff18);
VecConjMulRecAve_float_c_c_c_f = ABSOLUTE(0x1ff1c);
VecGetMag_float_c_f = ABSOLUTE(0x1ff20);
VecMax_float_f_f = ABSOLUTE(0x1ff24);
VecRecAve_float_f_f_f = ABSOLUTE(0x1ff28);
VecEleMul_float_f_f_f = ABSOLUTE(0x1ff2c);
VecMagAndDiv_float_c_f_f_f = ABSOLUTE(0x1ff30);
VecMin_float_f_f = ABSOLUTE(0x1ff34);
VecMinus_float_f_f_f = ABSOLUTE(0x1ff38);
VecMean_float_f_f = ABSOLUTE(0x1ff3c);
VecEleMul_float_c_f_c = ABSOLUTE(0x1ff40);
VecMeanSqu_float_c_f = ABSOLUTE(0x1ff44);
VecCopy_float_f_f = ABSOLUTE(0x1ff48);
VecMin_float_f_f_f = ABSOLUTE(0x1ff4c);
VecDivide_float_f_f_f_f = ABSOLUTE(0x1ff50);
VecCompBT_float_f_f_f = ABSOLUTE(0x1ff54);
VecCondCopy_float_f_f_f = ABSOLUTE(0x1ff58);
VecMulScalar_float_f_f_f = ABSOLUTE(0x1ff5c);
VecPlusScalar_float_f_f_f = ABSOLUTE(0x1ff60);
VecMinScalar_float_f_f_f = ABSOLUTE(0x1ff64);
VecOpposite_float_f_f = ABSOLUTE(0x1ff68);
VecEleMla_float_f_f_f = ABSOLUTE(0x1ff6c);
VecEleMla_float_c_c_c = ABSOLUTE(0x1ff70);
VecMinus_float_c_c_c = ABSOLUTE(0x1ff74);
VecDotProduct_float_f_f_f = ABSOLUTE(0x1ff78);
VecDotProduct_float_c_c_c = ABSOLUTE(0x1ff7c);
VecDotProduct_float_c_f_c = ABSOLUTE(0x1ff80);
VecCopy_float_c_c = ABSOLUTE(0x1ff84);
VecCopy_float_f_c = ABSOLUTE(0x1ff88);
VecConjDotProduct_float_c_c_c = ABSOLUTE(0x1ff8c);
VecNormalize_float_c_c_f = ABSOLUTE(0x1ff90);
VecRecAve_float_c_c_f = ABSOLUTE(0x1ff94);
VecOverlapShift_float_f_f_i = ABSOLUTE(0x1ff98);
VecMax_float_f_f_f = ABSOLUTE(0x1ff9c);
VecConjEwMulAndDiv_float_c_c_f_f_c = ABSOLUTE(0x1ffa0);
VecPlusMulScalar_float_c_c_f_c = ABSOLUTE(0x1ffa4);
VecCondCopy_float_c_i_c = ABSOLUTE(0x1ffa8);
VecEleMulAndDiv_float_f_f_f_f_f = ABSOLUTE(0x1ffac);
VectorSet_float_f_c = ABSOLUTE(0x1ffb0);
VecDivScalar_float_f_f_f = ABSOLUTE(0x1ffb4);
VecDivScalar_float_c_f_c = ABSOLUTE(0x1ffb8);
VecPlusScalar_float_c_f_c = ABSOLUTE(0x1ffbc);
VecMinScalar_float_c_f_c = ABSOLUTE(0x1ffc0);
mdct_tab_256 = ABSOLUTE(0x19000);
mdct_tab_2048 = ABSOLUTE(0x19200);
sine_long_1024 = ABSOLUTE(0x1a200);
sine_short_128 = ABSOLUTE(0x1b200);
kbd_long_1024 = ABSOLUTE(0x1b400);
kbd_short_128 = ABSOLUTE(0x1c400);
Huffmancb_SCL = ABSOLUTE(0x1c634);
num_swb_960_window = ABSOLUTE(0x1c844);
num_swb_1024_window = ABSOLUTE(0x1c850);
num_swb_128_window = ABSOLUTE(0x1c85c);
swb_offset_1024_96 = ABSOLUTE(0x1c868);
swb_offset_128_96 = ABSOLUTE(0x1c8bc);
swb_offset_1024_64 = ABSOLUTE(0x1c8d6);
swb_offset_128_64 = ABSOLUTE(0x1c936);
swb_offset_1024_48 = ABSOLUTE(0x1c950);
swb_offset_128_48 = ABSOLUTE(0x1c9b4);
swb_offset_1024_32 = ABSOLUTE(0x1c9d2);
swb_offset_1024_24 = ABSOLUTE(0x1ca3a);
swb_offset_128_24 = ABSOLUTE(0x1ca9a);
swb_offset_1024_16 = ABSOLUTE(0x1caba);
swb_offset_128_16 = ABSOLUTE(0x1cb12);
swb_offset_1024_8 = ABSOLUTE(0x1cb32);
swb_offset_128_8 = ABSOLUTE(0x1cb84);
swb_offset_1024_window = ABSOLUTE(0x1cba4);
swb_offset_128_window = ABSOLUTE(0x1cbd4);
iq_table = ABSOLUTE(0x1cc04);
tns_coef_0_3 = ABSOLUTE(0x1d008);
tns_coef_0_4 = ABSOLUTE(0x1d048);
tns_coef_1_3 = ABSOLUTE(0x1d088);
tns_coef_1_4 = ABSOLUTE(0x1d0c8);
pow05_table = ABSOLUTE(0x1d108);
sample_rates = ABSOLUTE(0x1d124);
pred_sfb_max = ABSOLUTE(0x1d154);
tns_sbf_max = ABSOLUTE(0x1d160);
Huffmancb_1 = ABSOLUTE(0x1d1a0);
Huffmancb_2 = ABSOLUTE(0x1d338);
Huffmancb_3 = ABSOLUTE(0x1d470);
Huffmancb_4 = ABSOLUTE(0x1d5a8);
Huffmancb_5 = ABSOLUTE(0x1d6d8);
Huffmancb_6 = ABSOLUTE(0x1d820);
Huffmancb_7 = ABSOLUTE(0x1d960);
Huffmancb_8 = ABSOLUTE(0x1da58);
Huffmancb_9 = ABSOLUTE(0x1db50);
Huffmancb_10 = ABSOLUTE(0x1ddf0);
Huffmancb_11 = ABSOLUTE(0x1e080);
AACcodeBookDTable = ABSOLUTE(0x1e540);
AAC_SFHUFF_TAB = ABSOLUTE(0x1c83c);
get_aac_ops = ABSOLUTE(0x1ffc4);
silk_NLSF_CB_WB = ABSOLUTE(0x1e5b8);
silk_LTP_vq_ptrs_Q7 = ABSOLUTE(0x1ea5c);
get_opus_enc_ops = ABSOLUTE(0x1ffc8);
opus_encode = ABSOLUTE(0x1ffcc);
silk_Encode = ABSOLUTE(0x1ffd0);
silk_encode_do_VAD_FIX = ABSOLUTE(0x1ffd4);
silk_encode_frame_FIX = ABSOLUTE(0x1ffd8);
silk_find_pitch_lags_FIX = ABSOLUTE(0x1ffdc);
silk_noise_shape_analysis_FIX = ABSOLUTE(0x1ffe0);
silk_find_pred_coefs_FIX = ABSOLUTE(0x1ffe4);
silk_process_gains_FIX = ABSOLUTE(0x1ffe8);
silk_prefilter_FIX = ABSOLUTE(0x1ffec);
silk_NSQ_del_dec_c = ABSOLUTE(0x1fff0);
silk_encode_indices = ABSOLUTE(0x1fff4);
silk_encode_pulses = ABSOLUTE(0x1fff8);
silk_ana_filt_bank_1 = ABSOLUTE(0x1fffc);
STFT_Win_FixHalf_M512_D160 = ABSOLUTE(0x3804);
STFT_Win_FixHalf_M256_D160 = ABSOLUTE(0x3c04);
STFT_Win_FixHalf_M256_D80 = ABSOLUTE(0x3e04);
STFT_Win_FixHalf_M128_D80 = ABSOLUTE(0x4004);
WOLAAnalysisFilter_Float_M64_m4_r1 = ABSOLUTE(0x4);
WOLASynthesisFilter_Float_M64_m4_r1 = ABSOLUTE(0x404);
WOLAAnalysisFilter_Float_M128_m4_r1 = ABSOLUTE(0x804);
WOLASynthesisFilter_Float_M128_m4_r1 = ABSOLUTE(0x1004);
WOLAAnalysisFilter_Float_M256_m4_r1 = ABSOLUTE(0x1804);
WOLASynthesisFilter_Float_M256_m4_r1 = ABSOLUTE(0x2804);
quantize_intervals_LF = ABSOLUTE(0x9914);
invert_quantize_dither_factors_LF = ABSOLUTE(0x9a18);
quantize_dither_factors_LF = ABSOLUTE(0x9b1c);
quantize_factor_select_offset_LF = ABSOLUTE(0x9c20);
hd_quantize_intervals_LF = ABSOLUTE(0x9ca4);
boot_arg_list = ABSOLUTE(0x19fc28);
_IRQ_MEM_ADDR = ABSOLUTE(0x19fe00);
_MASK_MEM_BEGIN = ABSOLUTE(0x19fc00);
_MASK_MEM_SIZE = ABSOLUTE(0x1a4);
EXTERN(
_start
sdfile_vfs_ops
sbc_decoder
msbc_decoder
sbc_hwaccel
cvsd_decoder
pcm_decoder
mp3_decoder
wtgv2_decoder
aac_decoder
cvsd_encoder
msbc_encoder
audio_dac_driver
);
UPDATA_SIZE = 0x80;
UPDATA_BEG = _MASK_MEM_BEGIN - UPDATA_SIZE;
UPDATA_BREDR_BASE_BEG = 0x1A0000;
RAM_LIMIT_L = 0x100000;
RAM_LIMIT_H = UPDATA_BEG;
PHY_RAM_SIZE = RAM_LIMIT_H - RAM_LIMIT_L;
ISR_BASE = _IRQ_MEM_ADDR;
ROM_RAM_SIZE = _MASK_MEM_SIZE;
ROM_RAM_BEG = _MASK_MEM_BEGIN;
RAM0_BEG = RAM_LIMIT_L + (128K * 3);
RAM0_END = RAM_LIMIT_H;
RAM0_SIZE = RAM0_END - RAM0_BEG;
RAM1_BEG = RAM_LIMIT_L;
RAM1_END = RAM0_BEG;
RAM1_SIZE = RAM1_END - RAM1_BEG;
CODE_BEG = 0x6000100;
EQ_PRIV_COEFF_BASE =0x1A0600;
EQ_PRIV_SECTION_NUM = 10;
EQ_PRIV_COEFF_END = EQ_PRIV_COEFF_BASE + 4 * EQ_PRIV_SECTION_NUM * (5+3)*2;
EQ_SECTION_NUM = 10;
MEMORY
{
code0(rx) : ORIGIN = CODE_BEG, LENGTH = 0x100000
ram0(rwx) : ORIGIN = RAM0_BEG, LENGTH = RAM0_SIZE
psr_ram(rwx) : ORIGIN = 0x2000000, LENGTH = 8*1024*1024
}
ENTRY(_start)
SECTIONS
{
. = ORIGIN(code0);
.text ALIGN(4):
{
PROVIDE(text_rodata_begin = .);
*(.startup.text)
*(.text)
. = ALIGN(4);
update_target_begin = .;
PROVIDE(update_target_begin = .);
KEEP(*(.update_target))
update_target_end = .;
PROVIDE(update_target_end = .);
. = ALIGN(4);
*(.LOG_TAG_CONST*)
*(.rodata*)
. = ALIGN(4);
PROVIDE(text_rodata_end = .);
clock_critical_handler_begin = .;
KEEP(*(.clock_critical_txt))
clock_critical_handler_end = .;
chargestore_handler_begin = .;
KEEP(*(.chargestore_callback_txt))
chargestore_handler_end = .;
*(.opcore_table_maskrom)
*(.bfilt_table_maskroom)
*(.opcore_maskrom)
*(.bfilt_code)
*(.bfilt_const)
. = ALIGN(4);
lcd_interface_begin = .;
KEEP(*(.lcd_if_info))
lcd_interface_end = .;
ui_style_begin = .;
KEEP(*(.ui_style))
ui_style_end = .;
elm_event_handler_begin_JL = .;
KEEP(*(.elm_event_handler_JL))
elm_event_handler_end_JL = .;
elm_event_handler_begin_UPGRADE = .;
KEEP(*(.elm_event_handler_UPGRADE))
elm_event_handler_end_UPGRADE = .;
elm_event_handler_begin_DIAL = .;
KEEP(*(.elm_event_handler_DIAL))
elm_event_handler_end_DIAL = .;
control_event_handler_begin = .;
KEEP(*(.control_event_handler))
control_event_handler_end = .;
control_ops_begin = .;
KEEP(*(.control_ops))
control_ops_end = .;
battery_notify_begin = .;
*(.battery_notify)
battery_notify_end = .;
. = ALIGN(4);
__VERSION_BEGIN = .;
KEEP(*(.sys.version))
__VERSION_END = .;
*(.noop_version)
. = ALIGN(4);
. = ALIGN(4);
tool_interface_begin = .;
KEEP(*(.tool_interface))
tool_interface_end = .;
. = ALIGN(4);
cmd_interface_begin = .;
KEEP(*(.eff_cmd))
cmd_interface_end = .;
. = ALIGN(4);
. = ALIGN(32);
m_code_addr = . ;
*(.m.code*)
*(.movable.code*)
m_code_size = ABSOLUTE(. - m_code_addr) ;
. = ALIGN(32);
} > code0
. = ORIGIN(ram0);
.mmu_tlb ALIGN(0x10000):
{
*(.mmu_tlb_segment);
} > ram0
.boot_info ALIGN(32):
{
*(.boot_info)
. = ALIGN(32);
} > ram0
.irq_stack ALIGN(32):
{
_cpu0_sstack_begin = .;
*(.cpu0_stack)
_cpu0_sstack_end = .;
. = ALIGN(4);
_cpu1_sstack_begin = .;
*(.cpu1_stack)
_cpu1_sstack_end = .;
. = ALIGN(4);
} > ram0
.data ALIGN(32):
{
. = ALIGN(4);
*(.data_magic)
. = ALIGN(4);
. = ALIGN(4);
audio_sync_data_begin = .;
*(.audio_sync_data)
audio_sync_data_end = .;
. = ALIGN(4);
*(.sbc_data)
*(.msbc_data)
*(.cvsd_data)
*(.aac_data)
*(.sbc_eng_data)
*(.bt_audioplc_data)
*(.lc3_decoder_data)
*(.lc3_dec_data)
*(.wtgv2_data)
*(.wtgv2dec_data)
*(.anc_data)
*(.anc_core_data)
*(.anc_user_data)
*(.anc_box_data)
*(.anc_btspp_data)
*(.sms_data)
*(.audio_track_data)
*(.audio_adc_data)
. = ALIGN(4);
*(.data*)
. = ALIGN(4);
} > ram0
.bss ALIGN(32):
{
. = ALIGN(4);
*(.bss)
. = ALIGN(4);
*(.volatile_ram)
*(.btstack_pool)
*(.mem_heap)
*(.memp_memory_x)
. = ALIGN(4);
*(.non_volatile_ram)
. = ALIGN(32);
*(.usb_h_dma)
*(.usb_ep0)
*(.usb_audio_play_dma)
*(.usb_audio_rec_dma)
*(.uac_rx)
*(.mass_storage)
*(.usb_msd_dma)
*(.usb_hid_dma)
*(.usb_iso_dma)
*(.usb_cdc_dma)
*(.uac_var)
*(.usb_config_var)
*(.cdc_var)
. = ALIGN(32);
} > ram0
.data_code ALIGN(32):
{
data_code_pc_limit_begin = .;
*(.flushinv_icache)
*(.cache)
*(.os_critical_code)
*(.volatile_ram_code)
*(.chargebox_code)
*(.fat_data_code)
*(.fat_data_code_ex)
*(.ui_ram)
*(.math_fast_funtion_code)
. = ALIGN(4);
*(.pSOUND360TD_cal_const)
*(.pSOUND360TD_cal_code)
. = ALIGN(4);
*(.SpatialAudio.text.const)
*(.SpatialAudio.text)
*(.SpatialAudio.text.cache.L1)
. = ALIGN(4);
_SPI_CODE_START = . ;
*(.spi_code)
. = ALIGN(4);
_SPI_CODE_END = . ;
. = ALIGN(4);
} > ram0
.moveable_slot ALIGN(4):
{
*(movable.slot.*)
} >ram0
__report_overlay_begin = .;
OVERLAY : AT(0x200000) SUBALIGN(4)
{
.overlay_aec
{
aec_code_begin = . ;
*(.text._*)
*(.data._*)
*(.aec_code)
*(.aec_const)
*(.res_code)
*(.res_const)
*(.ns_code)
*(.ns_const)
*(.bark_const)
*(.fft_code)
*(.fft_const)
*(.agc_code)
*(.dms_code)
*(.dms_const)
*(.dms_sparse_code)
aec_code_end = . ;
aec_code_size = aec_code_end - aec_code_begin ;
*(.msbc_enc)
*(.cvsd_codec)
*(.aec_bss)
*(.aec_data)
*(.res_data)
*(.ns_data)
*(.dns_common_data)
*(.dns_param_data_single)
*(.dns_param_data_dual)
*(.jlsp_nlp_code)
*(.jlsp_nlp_const)
*(.jlsp_aec_code)
*(.jlsp_aec_const)
*(.jlsp_prep_code)
*(.jlsp_prep_const)
*(.jlsp_enc_code)
*(.jlsp_enc_const)
*(.jlsp_wn_code)
*(.jlsp_wn_const)
*(.jlsp_tri_code)
*(.jlsp_tri_const)
*(.jlsp_agc_code)
*(.jlsp_agc_const)
*(.res_bss)
*(.ns_bss)
*(.aec_mem)
}
.overlay_aac
{
}
.overlay_mp3
{
*(.mp3_mem)
*(.mp3_ctrl_mem)
*(.mp3pick_mem)
*(.mp3pick_ctrl_mem)
*(.dec2tws_mem)
}
.overlay_wma
{
*(.wma_mem)
*(.wma_ctrl_mem)
*(.wmapick_mem)
*(.wmapick_ctrl_mem)
}
.overlay_wav
{
*(.wav_mem)
*(.wav_ctrl_mem)
}
.overlay_ape
{
*(.ape_mem)
*(.ape_ctrl_mem)
}
.overlay_flac
{
*(.flac_mem)
*(.flac_ctrl_mem)
}
.overlay_m4a
{
*(.m4a_mem)
*(.m4a_ctrl_mem)
}
.overlay_amr
{
*(.amr_mem)
*(.amr_ctrl_mem)
}
.overlay_dts
{
*(.dts_mem)
*(.dts_ctrl_mem)
}
.overlay_fm
{
*(.fm_mem)
}
.overlay_pc
{
*(.usb_audio_play_dma)
*(.usb_audio_rec_dma)
*(.uac_rx)
*(.mass_storage)
*(.usb_ep0)
*(.usb_msd_dma)
*(.usb_hid_dma)
*(.usb_iso_dma)
*(.usb_cdc_dma)
*(.uac_var)
*(.usb_config_var)
*(.cdc_var)
}
} > ram0
data_code_pc_limit_end = .;
__report_overlay_end = .;
_HEAP_BEGIN = . ;
_HEAP_END = RAM0_END;
. = ORIGIN(psr_ram);
.psr_data_code ALIGN(32):
{
*(.psram_data_code)
. = ALIGN(4);
} > psr_ram
.psr_bss_code ALIGN(32):
{
. = ALIGN(4);
} > psr_ram
}
SECTIONS
{
.text : ALIGN(4)
{
gsensor_dev_begin = .;
KEEP(*(.gsensor_dev))
gsensor_dev_end = .;
fm_dev_begin = .;
KEEP(*(.fm_dev))
fm_dev_end = .;
fm_emitter_dev_begin = .;
KEEP(*(.fm_emitter_dev))
fm_emitter_dev_end = .;
storage_device_begin = .;
KEEP(*(.storage_device))
storage_device_end = .;
imusensor_dev_begin = .;
KEEP(*(.imusensor_dev))
imusensor_dev_end = .;
aac_dec_code_begin = .;
*(.bt_aac_dec_code)
*(.bt_aac_dec_sparse_code)
aac_dec_code_end = .;
aac_dec_code_size = aac_dec_code_end - aac_dec_code_begin ;
. = ALIGN(4);
bt_aac_dec_const_begin = .;
*(.bt_aac_dec_const)
*(.bt_aac_dec_sparse_const)
bt_aac_dec_const_end = .;
bt_aac_dec_const_size = bt_aac_dec_const_end - bt_aac_dec_const_begin ;
*(.bt_aac_dec_data)
*(.bt_aac_dec_bss)
. = ALIGN(4);
*(.aac_mem)
*(.aac_ctrl_mem)
. = ALIGN(32);
}
.data ALIGN(32):
{
} > ram0
.bss ALIGN(32):
{
} > ram0
.data_code ALIGN(32):
{
} > ram0
}
SECTIONS
{
.data : ALIGN(4)
{
update_data_start = .;
update_data_end = .;
} > ram0
.bss (NOLOAD) :ALIGN(4)
{
update_bss_start = .;
*(.update_bss)
update_bss_end = .;
} > ram0
.text : ALIGN(4)
{
update_code_start = .;
*(.bt_updata_ram_code)
*(.update_const)
*(.update_code)
update_code_end = .;
} > code0
UPDATE_CODE_TOTAL_SIZE = update_code_end - update_code_start;
}
SECTIONS
{
.data : ALIGN(4)
{
btstack_data_start = .;
*(.bt_stack_data)
*(.ble_db_data)
*(.ble_sm_data)
*(.ble_att_data)
*(.ble_gatt_data)
BTSTACK_LE_HOST_MESH_DATA_START = .;
. = (. +3) & ~ 3;
_net_buf_pool_list = .;
*(._net_buf_pool.static.*)
*(.ble_mesh_data)
*(.ble_mesh_tinycrypt_data)
BTSTACK_LE_HOST_MESH_DATA_SIZE = ABSOLUTE(. - BTSTACK_LE_HOST_MESH_DATA_START);
btstack_data_end = .;
} > ram0
.bss (NOLOAD) :ALIGN(4)
{
btstack_bss_start = .;
*(.bt_stack_bss)
*(.ble_db_bss)
*(.ble_sm_bss)
*(.ble_att_bss)
*(.ble_gatt_bss)
*(.btstack_pool)
BTSTACK_LE_HOST_MESH_BSS_START = .;
*(.ble_mesh_bss)
*(.ble_mesh_tinycrypt_bss)
BTSTACK_LE_HOST_MESH_BSS_SIZE = ABSOLUTE(. - BTSTACK_LE_HOST_MESH_BSS_START);
btstack_bss_end = .;
} > ram0
.text : ALIGN(4)
{
btstack_code_start = .;
. = ALIGN(4);
a2dp_source_media_codec_begin = .;
KEEP(*(.a2dp_source_media_codec))
a2dp_source_media_codec_end = .;
a2dp_sink_media_probe_begin = .;
KEEP(*(.a2dp_sink_media_probe))
a2dp_sink_media_probe_end = .;
a2dp_sink_media_codec_begin = .;
KEEP(*(.a2dp_sink_media_codec))
a2dp_sink_media_codec_end = .;
a2dp_event_handler_begin = .;
KEEP(*(.a2dp_event_handler))
a2dp_event_handler_end = .;
sdp_record_item_begin = .;
KEEP(*(.sdp_record_item))
sdp_record_item_end = .;
bt_sleep_begin = .;
KEEP(*(.bt_sleep))
bt_sleep_end = .;
*(.bt_stack_const)
*(.bt_stack_code)
*(.ble_db_const)
*(.ble_db_code)
*(.ble_sm_const)
*(.ble_sm_code)
*(.ble_att_const)
*(.ble_att_code)
*(.ble_gatt_const)
*(.ble_gatt_code)
BTSTACK_LE_HOST_MESH_CODE_START = .;
*(.ble_mesh_code)
*(.ble_mesh_tinycrypt_code)
*(.ble_mesh_const)
*(.ble_mesh_tinycrypt_const)
BTSTACK_LE_HOST_MESH_CODE_SIZE = ABSOLUTE(. - BTSTACK_LE_HOST_MESH_CODE_START);
btstack_code_end = .;
. = ALIGN(4);
} > code0
}
BTSTACK_LE_HOST_MESH_RAM_TOTAL = BTSTACK_LE_HOST_MESH_DATA_SIZE + BTSTACK_LE_HOST_MESH_BSS_SIZE;
BTSTACK_LE_HOST_MESH_FLASH_TOTAL = BTSTACK_LE_HOST_MESH_CODE_SIZE;
BTSTACK_CODE_SIZE = (btstack_code_end - btstack_code_start) + (btstack_data_end - btstack_data_start);
SECTIONS
{
.data : ALIGN(4)
{
. = ALIGN(4);
system_data_start = .;
_video_subdev_begin = .;
PROVIDE(video_subdev_begin = .);
KEEP(*(.video_subdev.0))
KEEP(*(.video_subdev.1))
KEEP(*(.video_subdev.2))
KEEP(*(.video_subdev.3))
KEEP(*(.video_subdev.4))
KEEP(*(.video_subdev.5))
_video_subdev_end = .;
PROVIDE(video_subdev_end = .);
_audio_subdev_begin = .;
PROVIDE(audio_subdev_begin = .);
KEEP(*(.audio_subdev.0))
KEEP(*(.audio_subdev.1))
KEEP(*(.audio_subdev.2))
KEEP(*(.audio_subdev.3))
_audio_subdev_end = .;
PROVIDE(audio_subdev_end = .);
_iic_device_begin = .;
PROVIDE(iic_device_begin = .);
KEEP(*(.iic))
_iic_device_end = .;
PROVIDE(iic_device_end = .);
_avin_spi_device_begin = .;
PROVIDE(avin_spi_device_begin = .);
KEEP(*(.sw_spi))
_avin_spi_device_end = .;
PROVIDE(avin_spi_device_end = .);
_video_dev_begin = .;
PROVIDE(video_dev_begin = .);
KEEP(*(.video_device))
_video_dev_end = .;
PROVIDE(video_dev_end = .);
_key_driver_ops_begin = .;
PROVIDE(key_driver_ops_begin = .);
KEEP(*(.key_driver_ops))
_key_driver_ops_end = .;
PROVIDE(key_driver_ops_end = .);
_touch_driver_begin = .;
PROVIDE(touch_driver_begin = .);
KEEP(*(.touch_driver))
_touch_driver_end = .;
PROVIDE(touch_driver_end = .);
_static_hi_timer_begin = .;
PROVIDE(static_hi_timer_begin = .);
KEEP(*(.hi_timer))
_static_hi_timer_end = .;
PROVIDE(static_hi_timer_end = .);
_sys_cpu_timer_begin = .;
PROVIDE(sys_cpu_timer_begin = .);
KEEP(*(.sys_cpu_timer))
_sys_cpu_timer_end = .;
PROVIDE(sys_cpu_timer_end = .);
_sys_config_begin = .;
PROVIDE(sys_config_begin = .);
KEEP(*(.sys_cfg))
_sys_config_end = .;
PROVIDE(sys_config_end = .);
_sys_fat_begin = .;
PROVIDE(sys_fat_begin = .);
KEEP(*(.fs_fat))
_sys_fat_end = .;
PROVIDE(sys_fat_end = .);
_app_begin = .;
PROVIDE(app_begin = .);
KEEP(*(.app))
_app_end = .;
PROVIDE(app_end = .);
*(.crypto_ecdh_data)
*(.crypto_data)
*(.mem_data)
*(.os_port_data)
*(.os_str)
*(.os_data)
*(.uECC_data)
*(.ECDH_sample_data)
__movable_slot_start = .;
*(movable.slot.*);
__movable_slot_end = .;
system_data_end = .;
} > ram0
.bss (NOLOAD) :ALIGN(4)
{
system_bss_start = .;
. = ALIGN(4);
*(.os_bss)
*(.mem_heap)
*(.memp_memory_x)
*(.mem_bss)
*(.os_port_bss)
*(.uECC_bss)
*(.ECDH_sample_bss)
system_bss_end = .;
} > ram0
.text : ALIGN(4)
{
. = ALIGN(4);
system_text_start = .;
_device_node_begin = .;
PROVIDE(device_node_begin = .);
KEEP(*(.device))
_device_node_end = .;
PROVIDE(device_node_end = .);
config_target_begin = .;
PROVIDE(config_target_begin = .);
KEEP(*(.config_target))
config_target_end = .;
PROVIDE(config_target_end = .);
system_code_begin = .;
KEEP(*(.system.*.text))
system_code_end = .;
. = ALIGN(4);
system_code_size = system_code_end - system_code_begin;
vfs_ops_begin = .;
KEEP(*(.vfs_operations))
vfs_ops_end = .;
_lib_version_begin = .;
PROVIDE(lib_version_begin = .);
KEEP(*(.lib_version))
_lib_version_end = .;
PROVIDE(lib_version_end = .);
_initcall_begin = .;
PROVIDE(initcall_begin = .);
KEEP(*(.initcall))
_initcall_end = .;
PROVIDE(initcall_end = .);
_early_initcall_begin = .;
PROVIDE(early_initcall_begin = .);
KEEP(*(.early.initcall))
_early_initcall_end = .;
PROVIDE(early_initcall_end = .);
_late_initcall_begin = .;
PROVIDE(late_initcall_begin = .);
KEEP(*(.late.initcall))
_late_initcall_end = .;
PROVIDE(late_initcall_end = .);
_platform_initcall_begin = .;
PROVIDE(platform_initcall_begin = .);
KEEP(*(.platform.initcall))
_platform_initcall_end = .;
PROVIDE(platform_initcall_end = .);
_module_initcall_begin = .;
PROVIDE(module_initcall_begin = .);
KEEP(*(.module.initcall))
_module_initcall_end = .;
PROVIDE(module_initcall_end = .);
_sys_event_handler_begin = .;
PROVIDE(sys_event_handler_begin = .);
KEEP(*(.sys_event.4.handler))
KEEP(*(.sys_event.3.handler))
KEEP(*(.sys_event.2.handler))
KEEP(*(.sys_event.1.handler))
KEEP(*(.sys_event.0.handler))
_sys_event_handler_end = .;
PROVIDE(sys_event_handler_end = .);
_syscfg_arg_begin = .;
PROVIDE(syscfg_arg_begin = .);
KEEP(*(.syscfg.arg))
_syscfg_arg_end = .;
PROVIDE(syscfg_arg_end = .);
_syscfg_handler_begin = .;
PROVIDE(syscfg_handler_begin = .);
KEEP(*(.syscfg.handler))
_syscfg_handler_end = .;
PROVIDE(syscfg_handler_end = .);
_syscfg_ops_begin = .;
PROVIDE(syscfg_ops_begin = .);
KEEP(*(.syscfg.2.ops))
KEEP(*(.syscfg.1.ops))
KEEP(*(.syscfg.0.ops))
_syscfg_ops_end = .;
PROVIDE(syscfg_ops_end = .);
_server_info_begin = .;
PROVIDE(server_info_begin = .);
KEEP(*(.server_info))
_server_info_end = .;
PROVIDE(server_info_end = .);
_bus_device_begin = .;
PROVIDE(bus_device_begin = .);
KEEP(*(.bus_device))
_bus_device_end = .;
PROVIDE(bus_device_end = .);
_sys_power_hal_ops_begin = .;
PROVIDE(sys_power_hal_ops_begin = .);
KEEP(*(.sys_power_hal_ops))
_sys_power_hal_ops_end = .;
PROVIDE(sys_power_hal_ops_end = .);
crypto_begin = .;
*(.crypto_ecdh_code)
*(.crypto_ecdh_const)
*(.crypto_bigint_code)
*(.crypto_bigint_const)
*(.crypto_code)
*(.crypto_const)
*(.ECDH_sample_code)
*(.ECDH_sample_const)
*(.uECC_code)
*(.uECC_const)
*(.hmac_code)
*(.hmac_const)
*(.hash_sample_code)
*(.hash_sample_const)
*(.aes_cmac_sample_code)
*(.aes_cmac_sample_const)
crypto_end = .;
crypto_size = . - crypto_begin;
*(.mem_code)
*(.mem_const)
*(.os_port_code)
*(.os_port_const)
*(.os_const)
*(.math_fast_funtion_code)
__movable_function_start = .;
*(movable.text.*);
*(movable.stub.*);
*(movable.region.*);
__movable_function_end = .;
__movable_function_size = __movable_function_end - __movable_function_start;
system_text_end = .;
system_code_total_size = system_text_end - system_text_start;
} > code0
.data_code ALIGN(32):
{
*(.os_code)
} > ram0
}
SECTIONS
{
.data : ALIGN(4)
{
btctler_data_start = .;
BTCTLER_CONTROLLER_DATA_START = .;
*(.bt_rf_data)
*(.vendor_manager_data)
*(.device_manager_data)
*(.hci_controller_data)
*(.hci_interface_data)
BTCTLER_CONTROLLER_DATA_SIZE = ABSOLUTE(. - BTCTLER_CONTROLLER_DATA_START);
BTCTLER_LE_CONTROLLER_DATA_START = .;
*(.ble_ll_data)
*(.ble_hci_data)
*(.ble_rf_data)
BTCTLER_LE_CONTROLLER_DATA_SIZE = ABSOLUTE(. - BTCTLER_LE_CONTROLLER_DATA_START);
BTCTLER_CL_DATA_START = .;
*(.classic_hci_data)
*(.classic_lmp_data)
*(.classic_lmp_auth_data)
*(.classic_lmp_bigint_data)
*(.classic_lmp_crypt_data)
*(.classic_lmp_ecdh_data)
*(.classic_lmp_linkbulk_data)
*(.classic_lmp_hmac_data)
*(.classic_rf_data)
*(.classic_bb_data)
BTCTLER_CL_DATA_SIZE = ABSOLUTE(. - BTCTLER_CL_DATA_START);
btctler_data_end = .;
} > ram0
.bss (NOLOAD) :ALIGN(4)
{
btctler_bss_start = .;
BTCTLER_CONTROLLER_BSS_START = .;
*(.bd_base)
*(.bredr_rxtx_bulk)
*(.bredr_tx_bulk)
*(.bt_rf_bss)
*(.hci_controller_bss)
*(.hci_interface_bss)
*(.device_manager_bss)
*(.vendor_manager_bss)
BTCTLER_CONTROLLER_BSS_SIZE = ABSOLUTE(. - BTCTLER_CONTROLLER_BSS_START);
BTCTLER_LE_CONTROLLER_BSS_START = .;
*(.ble_hci_bss)
*(.ble_ll_bss)
*(.ble_rf_bss)
BTCTLER_LE_CONTROLLER_BSS_SIZE = ABSOLUTE(. - BTCTLER_LE_CONTROLLER_BSS_START);
BTCTLER_CL_BSS_START = .;
*(.classic_rf_bss)
*(.classic_lmp_bss)
*(.classic_lmp_auth_bss)
*(.classic_lmp_bigint_bss)
*(.classic_lmp_crypt_bss)
*(.classic_lmp_ecdh_bss)
*(.classic_lmp_linkbulk_bss)
*(.classic_lmp_hmac_bss)
*(.classic_bb_bss)
*(.classic_hci_bss)
BTCTLER_CL_BSS_SIZE = ABSOLUTE(. - BTCTLER_CL_BSS_START);
btctler_bss_end = .;
} > ram0
.text : ALIGN(4)
{
btctler_code_start = .;
BTCTLER_CONTROLLER_CODE_START = .;
*(.bt_rf_const)
*(.bt_rf_code)
*(.vendor_manager_const)
*(.vendor_manager_code)
*(.device_manager_const)
*(.device_manager_code)
*(.hci_controller_const)
*(.hci_controller_code)
*(.hci_interface_const)
*(.hci_interface_code)
BTCTLER_CONTROLLER_CODE_SIZE = ABSOLUTE(. - BTCTLER_CONTROLLER_CODE_START);
BTCTLER_LE_CONTROLLER_CODE_START = .;
*(.ble_rf_const)
*(.ble_rf_code)
*(.ble_ll_const)
*(.ble_ll_code)
*(.ble_hci_const)
*(.ble_hci_code)
BTCTLER_LE_CONTROLLER_CODE_SIZE = ABSOLUTE(. - BTCTLER_LE_CONTROLLER_CODE_START);
BTCTLER_CL_CODE_START = .;
*(.bredr_irq)
*(.bredr_irq_code)
*(.bredr_irq_const)
*(.classic_hci_const)
*(.classic_hci_code)
*(.classic_lmp_const)
*(.classic_lmp_auth_const)
*(.classic_lmp_bigint_const)
*(.classic_lmp_crypt_const)
*(.classic_lmp_ecdh_const)
*(.classic_lmp_hmac_const)
*(.classic_lmp_code)
*(.classic_lmp_auth_code)
*(.classic_lmp_bigint_code)
*(.classic_lmp_crypt_code)
*(.classic_lmp_ecdh_code)
*(.classic_lmp_hmac_code)
*(.classic_rf_const)
*(.classic_rf_code)
*(.classic_bb_const)
*(.classic_bb_code)
BTCTLER_CL_CODE_SIZE = ABSOLUTE(. - BTCTLER_CL_CODE_START);
*(.classic_tws_const)
*(.classic_tws_code)
*(.classic_tws_code.esco)
. = ALIGN(4);
} > code0
.data_code ALIGN(32):
{
. = ALIGN(4);
*(.lmp_irq_code)
*(.link_bulk_code)
*(.frame_irq_code)
. = ALIGN(4);
*(.link_task_const)
*(.link_task_code)
. = ALIGN(4);
*(.classic_irq_const)
*(.classic_irq_code)
. = ALIGN(4);
*(.tws_irq_code)
. = ALIGN(4);
tws_sync_call_begin = .;
KEEP(*(.tws_sync_call))
tws_sync_call_end = .;
. = ALIGN(4);
tws_func_stub_begin = .;
KEEP(*(.tws_func_stub))
tws_func_stub_end = .;
*(.tws_media_sync_code)
*(.tws_media_sync_const)
*(.tws_data_forward_code)
*(.tws_data_forward_const)
. = ALIGN(4);
tws_sync_channel_begin = .;
KEEP(*(.tws_sync_channel.0))
KEEP(*(.tws_sync_channel.1))
KEEP(*(.tws_sync_channel.2))
KEEP(*(.tws_sync_channel.3))
KEEP(*(.tws_sync_channel.4))
KEEP(*(.tws_sync_channel.5))
KEEP(*(.tws_sync_channel.6))
KEEP(*(.tws_sync_channel.7))
KEEP(*(.tws_sync_channel.8))
KEEP(*(.tws_sync_channel.9))
KEEP(*(.tws_sync_channel.10))
KEEP(*(.tws_sync_channel.11))
KEEP(*(.tws_sync_channel.12))
KEEP(*(.tws_sync_channel.13))
tws_sync_channel_end = .;
btctler_code_end = .;
. = ALIGN(4);
} > ram0
BTCTLER_LE_RAM_TOTAL = BTCTLER_LE_CONTROLLER_DATA_SIZE + BTCTLER_LE_CONTROLLER_BSS_SIZE;
BTCTLER_LE_CODE_TOTAL = BTCTLER_LE_CONTROLLER_CODE_SIZE;
BTCTLER_CL_RAM_TOTAL = BTCTLER_CL_DATA_SIZE + BTCTLER_CL_BSS_SIZE;
BTCTLER_CL_CODE_TOTAL = BTCTLER_CL_CODE_SIZE;
BTCTLER_COMMON_RAM_TOTAL = BTCTLER_CONTROLLER_BSS_SIZE + BTCTLER_CONTROLLER_DATA_SIZE;
BTCTLER_COMMON_CODE_TOTAL = BTCTLER_CONTROLLER_CODE_SIZE ;
BTCTLER_RAM_TOTAL = (btctler_data_end - btctler_data_start) + (btctler_bss_end - btctler_bss_start);
BTCTLER_CODE_TOTAL = (btctler_code_end - btctler_code_start);
}
SECTIONS
{
.data : ALIGN(4)
{
driver_data_start = .;
CLOCK_DATA_START = .;
*(.clock_data)
CLOCK_DATA_SIZE = ABSOLUTE(. - CLOCK_DATA_START);
*(.debug_data)
*(.uart_data)
*(.power_driver.data)
*(.power_reset.data)
*(.power_wakeup.data)
driver_data_end = .;
. = ALIGN(32);
} > ram0
.bss (NOLOAD) :ALIGN(4)
{
driver_bss_start = .;
CLOCK_BSS_START = .;
*(.clock_bss)
CLOCK_BSS_SIZE = ABSOLUTE(. - CLOCK_BSS_START);
*(.debug_bss)
*(.uart_bss)
*(.sd_var)
*(.power_driver.data.bss)
*(.power_reset.data.bss)
*(.power_wakeup.data.bss)
driver_bss_end = .;
} > ram0
.text : ALIGN(4)
{
driver_code_start = .;
*(.fm_code)
CLOCK_CODE_START = .;
*(.clock_code)
*(.clock_const)
CLOCK_CODE_SIZE = ABSOLUTE(. - CLOCK_CODE_START);
*(.debug_code)
*(.debug_const)
*(.uart_code)
*(.uart_const)
*(.power_driver.text)
*(.power_driver.text.const)
*(.power_reset.text)
*(.power_reset.text.const)
*(.power_wakeup.text)
*(.power_wakeup.text.const)
. = ALIGN(4);
lp_target_begin = .;
PROVIDE(lp_target_begin = .);
KEEP(*(.lp_target))
lp_target_end = .;
PROVIDE(lp_target_end = .);
. = ALIGN(4);
lp_request_begin = .;
PROVIDE(lp_request_begin = .);
KEEP(*(.lp_request))
lp_request_end = .;
PROVIDE(lp_request_end = .);
. = ALIGN(4);
deepsleep_target_begin = .;
PROVIDE(deepsleep_target_begin = .);
KEEP(*(.deepsleep_target))
deepsleep_target_end = .;
PROVIDE(deepsleep_target_end = .);
. = ALIGN(4);
p2m_msg_handler_begin = .;
PROVIDE(p2m_msg_handler_begin = .);
KEEP(*(.p2m_msg_handler))
PROVIDE(p2m_msg_handler_end = .);
p2m_msg_handler_end = .;
driver_code_end = .;
. = ALIGN(4);
} > code0
.data_code : ALIGN(4)
{
driver_data_code_start = .;
CLOCK_CACHE_L1_CODE_START = .;
*(.clock.text.cache.L1)
CLOCK_CACHE_L1_SIZE = ABSOLUTE(. - CLOCK_CACHE_L1_CODE_START);
*(.vm.text.cache.L1)
*(.power_driver.text.cache.L1)
*(.timer.text.cache.L1)
*(.gpio.text.cache.L1)
*(.iic_hw.text.cache.L1)
driver_data_code_end = .;
. = ALIGN(4);
} > ram0
DRIVER_RAM_TOTAL = (driver_data_end - driver_data_start) + (driver_bss_end - driver_bss_start);
DRIVER_CODE_TOTAL = (driver_code_end - driver_code_start);
DRIVER_DATA_CODE_TOTAL = (driver_data_code_end - driver_data_code_start);
}
SECTIONS
{
.data : ALIGN(4)
{
. = ALIGN(4);
audio_sync_data_begin = .;
*(.audio_sync_data)
audio_sync_data_end = .;
. = ALIGN(4);
*(.sbc_data)
*(.msbc_data)
*(.cvsd_data)
*(.aac_data)
*(.ldac_decoder_data)
*(.sbc_eng_data)
*(.bt_audioplc_data)
*(.lc3_decoder_data)
*(.lc3_dec_data)
*(.wtgv2_data)
*(.wtgv2dec_data)
*(.opus_encoder_data)
*(.speex_encoder_data)
*(.anc_data)
*(.anc_user_data)
*(.anc_box_data)
*(.anc_btspp_data)
*(.audio_adc_data)
*(.audio_cfifo_data)
*(.sms_data)
. = ALIGN(4);
*(.pSOUND360TD_cal_data)
. = ALIGN(4);
*(.jlsp_data)
*(.jlsp_aec_data)
*(.jlsp_nlp_data)
*(.jlsp_dns_data)
*(.jlsp_enc_data)
*(.jlsp_prep_data)
*(.jlsp_wn_data)
*(.jlsp_tri_data)
*(.jlsp_agc_data)
. = ALIGN(4);
} > ram0
.bss (NOLOAD) :ALIGN(4)
{
. = ALIGN(4);
audio_sync_bss_begin = .;
*(.audio_sync_bss)
audio_sync_bss_end = .;
. = ALIGN(4);
*(.cvsd_bss)
*(.aac_bss)
*(.ldac_decoder_bss)
*(.sbc_eng_bss)
*(.bt_audioplc_bss)
*(.lc3_decoder_bss)
*(.lc3_dec_bss)
*(.wtgv2_bss)
*(.wtgv2dec_bss)
*(.speex_encoder_bss)
*(.opus_encoder_bss)
*(.anc_bss)
*(.anc_user_bss)
*(.anc_box_bss)
*(.anc_btspp_bss)
*(.audio_adc_bss)
*(.audio_cfifo_bss)
*(.audio_dec_bss)
*(.audio_buf)
*(.src_filt)
*(.src_dma)
*(.jlsp_bss)
*(.jlsp_aec_bss)
*(.jlsp_nlp_bss)
*(.jlsp_dns_bss)
*(.jlsp_enc_bss)
*(.jlsp_prep_bss)
*(.jlsp_wn_bss)
*(.jlsp_tri_bss)
*(.jlsp_agc_bss)
. = ALIGN(4);
*(.pSOUND360TD_cal_bss)
} > ram0
.text : ALIGN(4)
{
media_text_start = .;
. = ALIGN(4);
*(.stream_code)
*(.howlings_phf_code)
*(.notchhowling_sparse_code)
*(.notchhowling_code)
*(.howlings_phf_sparse_code)
*(.notchhowling_const)
*(.howlings_phf_const)
. = ALIGN(4);
*(.llns.text)
*(.llns.text.const)
. = ALIGN(4);
*(.aec_code)
*(.aec_const)
. = ALIGN(4);
*(.res_code)
*(.res_const)
. = ALIGN(4);
*(.ns_code)
*(.ns_const)
*(.bark_const)
. = ALIGN(4);
*(.jlsp_code)
. = ALIGN(4);
*(.jlsp_const)
. = ALIGN(4);
*(.dns_16k_data)
. = ALIGN(4);
*(.dns_8k_data)
. = ALIGN(4);
*(.jlsp_dns_code)
*(.jlsp_dns_const)
*(.dns_param_data_wind)
*(.dns_common_data_wind)
*(.agc_code)
*(.dms_code)
*(.dms_sparse_code)
*(.nlp_code)
*(.nlp_const)
*(.der_code)
*(.der_const)
*(.qmf_code)
*(.qmf_const)
*(.fft_code)
*(.fft_const)
*(.drc_sparse_code)
*(.drc_code)
*(.drc_const)
*(.audio_gain_code)
*(.audio_gain_const)
*(.ns_sparse_code )
*(.aec_sparse_code)
*(.nlp_sparse_code)
*(.der_sparse_code)
*(.qmf_sparse_code)
*(.bt_audioplc_code)
*(.bt_audioplc_sparse_code)
*(.bt_audioplc_const)
. = ALIGN(4);
*(.lf_audioplc_code)
*(.lf_audioplc_sparse_code)
*(.lf_audioplc_const)
. = ALIGN(4);
*(.pcm_code)
*(.pcm_const)
*(.wtg_dec_code)
*(.wtg_dec_sparse_code)
*(.wtg_dec_const)
*(.wtgv2_code)
*(.wtgv2_const)
*(.wtgv2dec_code)
*(.wtgv2dec_const)
*(.wtgv2dec_str)
*(.wtg_decv2_sparse_code)
*(.speex_dec_code)
*(.speex_dec_const)
*(.speex_const)
*(.speex_code)
*(.speex_encoder_code)
*(.speex_encoder_const)
*(.opus_code)
*(.opus_const)
*(.opus_encoder_code)
*(.opus_encoder_const)
*(.mp3_code)
*(.mp3_const)
*(.mp3_dec_sparse_code)
*(.mp3_dec_sparse_const)
*(.mp3_dec_code)
*(.mp3_dec_const)
*(.bfilt_code)
*(.msbc_code)
*(.msbc_const)
*(.mty_code)
*(.mp3tsy_dec_code)
*(.mp3tsy_dec_sparse_code)
*(.mp3tsy_dec_const)
*(.sbc_code)
*(.sbc_const)
*(.sine_code)
*(.sine_const)
*(.wav_code)
*(.wav_const)
*(.wav_dec_code)
*(.wav_dec_const)
*(.wav_dec_sparse_code)
*(.wav_dec_sparse_const)
*(.wma_code)
*(.wma_const)
*(.wma_dec_code)
*(.wma_dec_sparse_code)
*(.wma_dec_const)
*(.aac_code)
*(.aac_const)
*(.ldac_decoder_code)
*(.ldac_decoder_const)
*(.bt_ldac_dec_code)
*(.bt_ldac_dec_const)
*(.amr_code)
*(.amr_const)
*(.amr_dec_code)
*(.amr_dec_const)
*(.amr_dec_sparse_code)
*(.ape_code)
*(.ape_const)
*(.ape_dec_code)
*(.ape_dec_sparse_code)
*(.ape_dec_const)
*(.dts_code)
*(.dts_const)
*(.dts_dec_sparse_code)
*(.dts_dec_code)
*(.dts_dec_const)
*(.dts_dec_ff_const)
*(.flac_code)
*(.flac_const)
*(.flac_dec_code)
*(.flac_dec_const)
*(.flac_dec_sparse_code)
*(.audio_decoder_code)
*(.audio_decoder_const)
*(.audio_track_const)
*(.audio_track_code)
*(.m4a_code)
*(.m4a_const)
*(.m4a_dec_code)
*(.m4a_dec_sparse_code)
*(.m4a_dec_sparse_const)
*(.bt_aac_dec_core_sparse_const)
*(.bt_aac_dec_core_sparse_code)
*(.bt_aac_dec_core_code)
*(.bt_aac_dec_eng_code)
*(.bt_aac_dec_eng_const)
*(.alac_code)
*(.alac_const)
*(.alac_dec_code)
*(.media_device_code)
*(.media_device_const)
*(.audio_encoder_code)
*(.audio_encoder_const)
*(.mixer_code)
*(.mixer_const)
*(.dec_server_code)
*(.dec_server_const)
*(.rec_server_code)
*(.rec_server_const)
*(.auto_mute_code)
*(.auto_mute_const)
*(.plc_code)
*(.plc_const)
*(.wireless_sync_code)
*(.wireless_sync_const)
*(.sbc_eng_code)
*(.sbc_eng_const)
anc_code_begin = .;
*(.anc_user_const)
*(.anc_user_code)
*(.anc_const)
*(.anc_code)
*(.anc_core_const)
*(.anc_core_code)
*(.anc_box_const)
*(.anc_box_code)
*(.anc_btspp_const)
*(.anc_btspp_code)
anc_code_end = .;
anc_code_size = anc_code_end - anc_code_begin;
*(.audio_codec_code)
*(.audio_adc_code)
*(.audio_adc_const)
*(.audio_cfifo_code)
*(.audio_cfifo_const)
*(.bt_compressor_sparse_const)
*(.bt_compressor_sparse_code)
*(.compressor_sparse_code)
*(.compressor_sparse_const)
*(.bt_limiter_sparse_const)
*(.bt_limiter_sparse_code)
*(.limiter_sparse_code)
*(.limiter_sparse_const)
*(.bt_crossOver_sparse_const)
*(.bt_crossOver_sparse_code)
*(.crossOver_sparse_code)
*(.crossOver_sparse_const)
*(.lib_pitchshift_code)
*(.lib_pitchshift_const)
. = ALIGN(4);
_audio_decoder_begin = .;
PROVIDE(audio_decoder_begin = .);
*(.audio_decoder)
_audio_decoder_end = .;
PROVIDE(audio_decoder_end = .);
_audio_encoder_begin = .;
PROVIDE(audio_encoder_begin = .);
*(.audio_encoder)
_audio_encoder_end = .;
PROVIDE(audio_encoder_end = .);
_audio_package_begin = .;
PROVIDE(audio_package_begin = .);
*(.audio_package)
_audio_package_end = .;
PROVIDE(audio_package_end = .);
_audio_dev_begin = .;
PROVIDE(audio_dev_begin = .);
*(.audio_device)
_audio_dev_end = .;
PROVIDE(audio_dev_end = .);
_audio_hwaccel_begin = .;
PROVIDE(audio_hwaccel_begin = .);
*(.audio_hwaccel)
_audio_hwaccel_end = .;
PROVIDE(audio_hwaccel_end = .);
. = ALIGN(4);
media_code_begin = .;
*(.media.*.text)
. = ALIGN(4);
*(.compressor_code)
*(.compressor_const)
*(.bt_compressor_const)
*(.bt_compressor_code)
*(.crossOver_code)
*(.crossOver_const)
*(.bt_crossOver_const)
*(.bt_crossOver_code)
*(.limiter_code)
*(.limiter_const)
*(.bt_limiter_const)
*(.bt_limiter_code)
*(.lc3_decoder_const)
*(.lc3_decoder_code)
*(.lc3_dec_const)
*(.lc3_dec_code)
*(.audio_vbass_code)
*(.audio_vbass_const)
*(.vbss_code)
*(.vbss_const)
*(.vbss_sparse_code)
*(.vbss_sparse_const)
. = ALIGN(4);
*(.pSOUND360TD_cal_sparse_code)
. = ALIGN(4);
*(.g729_code)
*(.g729_const)
*(.cvsd_code)
*(.cvsd_const)
*(.media.audio*)
*(.media.mixer*)
*(.media.media*)
*( .lib_wtg_dec_code )
*( .lib_wtg_dec_const)
*(.audio_resample_code)
*(.audio_resample_const)
*(.resample_fastcal_sparse_code)
*(.resample_fastcal_code)
*(.resample_fastcal_const)
audio_sync_code_begin = .;
*(.audio_sync_code)
audio_sync_code_end = .;
. = ALIGN(4);
media_code_end = .;
. = ALIGN(4);
media_code_size = media_code_end - media_code_begin;
. = ALIGN(4);
media_text_end = .;
} > code0
.data_code ALIGN(32):
{
*(.media.aec.text)
} > ram0
}
text_begin = ADDR(.text);
text_size = SIZEOF(.text);
text_end = text_begin + text_size;
bss_begin = ADDR(.bss);
bss_size = SIZEOF(.bss);
bss_end = bss_begin + bss_size;
data_addr = ADDR(.data);
data_begin = text_begin + text_size;
data_size = SIZEOF(.data);
moveable_slot_addr = ADDR(.moveable_slot);
moveable_slot_begin = data_begin + data_size;
moveable_slot_size = SIZEOF(.moveable_slot);
data_code_addr = ADDR(.data_code);
data_code_begin = moveable_slot_begin + moveable_slot_size;
data_code_size = SIZEOF(.data_code);
aec_addr = ADDR(.overlay_aec);
aec_begin = data_code_begin + data_code_size;
aec_size = SIZEOF(.overlay_aec);
aac_addr = ADDR(.overlay_aac);
aac_begin = aec_begin + aec_size;
aac_size = SIZEOF(.overlay_aac);
psr_data_code_addr = ADDR(.psr_data_code);
psr_data_code_begin = aac_begin + aac_size;
psr_data_code_size = SIZEOF(.psr_data_code);
ASSERT(_HEAP_BEGIN > bss_begin,"_HEAP_BEGIN < bss_begin");
ASSERT(_HEAP_BEGIN > data_addr,"_HEAP_BEGIN < data_addr");
ASSERT(_HEAP_BEGIN > data_code_addr,"_HEAP_BEGIN < data_code_addr");
PROVIDE(HEAP_BEGIN = _HEAP_BEGIN);
PROVIDE(HEAP_END = _HEAP_END);
_MALLOC_SIZE = _HEAP_END - _HEAP_BEGIN;
PROVIDE(MALLOC_SIZE = _HEAP_END - _HEAP_BEGIN);
ASSERT(MALLOC_SIZE >= 0x8000, "heap space too small !")
report_text_beign = ADDR(.text);
report_text_size = SIZEOF(.text);
report_text_end = report_text_beign + report_text_size;
report_mmu_tlb_begin = ADDR(.mmu_tlb);
report_mmu_tlb_size = SIZEOF(.mmu_tlb);
report_mmu_tlb_end = report_mmu_tlb_begin + report_mmu_tlb_size;
report_boot_info_begin = ADDR(.boot_info);
report_boot_info_size = SIZEOF(.boot_info);
report_boot_info_end = report_boot_info_begin + report_boot_info_size;
report_irq_stack_begin = ADDR(.irq_stack);
report_irq_stack_size = SIZEOF(.irq_stack);
report_irq_stack_end = report_irq_stack_begin + report_irq_stack_size;
report_data_begin = ADDR(.data);
report_data_size = SIZEOF(.data);
report_data_end = report_data_begin + report_data_size;
report_bss_begin = ADDR(.bss);
report_bss_size = SIZEOF(.bss);
report_bss_end = report_bss_begin + report_bss_size;
report_data_code_begin = ADDR(.data_code);
report_data_code_size = SIZEOF(.data_code);
report_data_code_end = report_data_code_begin + report_data_code_size;
report_overlay_begin = __report_overlay_begin;
report_overlay_size = __report_overlay_end - __report_overlay_begin;
report_overlay_end = __report_overlay_end;
report_heap_beign = _HEAP_BEGIN;
report_heap_size = _HEAP_END - _HEAP_BEGIN;
report_heap_end = _HEAP_END;
BR28_PHY_RAM_SIZE = PHY_RAM_SIZE;
BR28_SDK_RAM_SIZE = report_mmu_tlb_size + report_boot_info_size + report_irq_stack_size + report_data_size + report_bss_size + report_overlay_size + report_data_code_size + report_heap_size;