From 8364d8c4142367002b0f0fbccef4e29f80455dfa Mon Sep 17 00:00:00 2001 From: Wuchuyuan <1917507415@qq.com> Date: Wed, 19 Aug 2026 16:49:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BF=BD=E7=95=A5=20make=20=E9=A2=84?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E7=94=9F=E6=88=90=E7=9A=84=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E4=B8=8E=E4=B8=8B=E8=BD=BD=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- .gitignore | 27 +- cpu/br28/sdk.ld | 2079 --------------------------------- cpu/br28/tools/aac.bin | 0 cpu/br28/tools/aec.bin | 0 cpu/br28/tools/aptx.bin | 0 cpu/br28/tools/data_code.bin | Bin 20992 -> 0 bytes cpu/br28/tools/download.bat | 48 - cpu/br28/tools/eq_cfg_hw.bin | Bin 570 -> 0 bytes cpu/br28/tools/isd_config.ini | 81 -- 9 files changed, 24 insertions(+), 2211 deletions(-) delete mode 100644 cpu/br28/sdk.ld delete mode 100644 cpu/br28/tools/aac.bin delete mode 100644 cpu/br28/tools/aec.bin delete mode 100644 cpu/br28/tools/aptx.bin delete mode 100644 cpu/br28/tools/data_code.bin delete mode 100644 cpu/br28/tools/download.bat delete mode 100644 cpu/br28/tools/eq_cfg_hw.bin delete mode 100644 cpu/br28/tools/isd_config.ini diff --git a/.gitignore b/.gitignore index d83202b..fff7e3d 100644 --- a/.gitignore +++ b/.gitignore @@ -5,15 +5,36 @@ # ── 编译输出目录 ─────────────────────────────────────────────────────────── objs/ +obj/ -# ── 链接 / 编译产物(按路径忽略,避免误伤厂商预置 blob)────────────────── +# ── make pre_build 生成(源文件分别是 sdk_ld.c / download.c / isd_config_rule.c) +cpu/*/sdk.ld +cpu/*/tools/download.bat +cpu/*/tools/download.sh +cpu/*/tools/isd_config.ini +cpu/*/sdk_used_list.used + +# ── 链接 / 后处理产物(按路径忽略,避免误伤厂商预置 blob)──────────────── # 注意:不可全局忽略 *.bin -# cpu/*/tools/ 下 aac.bin / ota.bin / p11_code.bin / br28loader.bin / eq_*.bin 等必须入库 +# 须入库:ota.bin / p11_code.bin / br28loader.bin / eq_cfg_hw_*.bin 等 +# 每次编译重写、不入库:data_code.bin / app.bin / eq_cfg_hw.bin / overlay 抽出 bin cpu/*/tools/sdk.elf cpu/*/tools/sdk.elf.* cpu/*/tools/sdk.map cpu/*/tools/app.bin -cpu/*/sdk_used_list.used +cpu/*/tools/text.bin +cpu/*/tools/data.bin +cpu/*/tools/data_code.bin +cpu/*/tools/mov_slot.bin +cpu/*/tools/psr_data_code.bin +cpu/*/tools/common.bin +cpu/*/tools/bank.bin +cpu/*/tools/bank[0-9]*.bin +cpu/*/tools/eq_cfg_hw.bin +cpu/*/tools/aec.bin +cpu/*/tools/aac.bin +cpu/*/tools/aptx.bin +cpu/*/tools/symbol_tbl.txt cpu/*/tools/local.db # LTO / LLVM 中间 bitcode(sdk.elf.*.bc) diff --git a/cpu/br28/sdk.ld b/cpu/br28/sdk.ld deleted file mode 100644 index e05c972..0000000 --- a/cpu/br28/sdk.ld +++ /dev/null @@ -1,2079 +0,0 @@ - - - - - - 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 -); - -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 * 2); - - - -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 - { - - 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) - - - - } - .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 = .; - . = 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; diff --git a/cpu/br28/tools/aac.bin b/cpu/br28/tools/aac.bin deleted file mode 100644 index e69de29..0000000 diff --git a/cpu/br28/tools/aec.bin b/cpu/br28/tools/aec.bin deleted file mode 100644 index e69de29..0000000 diff --git a/cpu/br28/tools/aptx.bin b/cpu/br28/tools/aptx.bin deleted file mode 100644 index e69de29..0000000 diff --git a/cpu/br28/tools/data_code.bin b/cpu/br28/tools/data_code.bin deleted file mode 100644 index 955374eefd7f2637318586a007606dcf73c9fb59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20992 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 T#s_{ diff --git a/cpu/br28/tools/download.bat b/cpu/br28/tools/download.bat deleted file mode 100644 index 64f3c15..0000000 --- a/cpu/br28/tools/download.bat +++ /dev/null @@ -1,48 +0,0 @@ - - - - - -@echo off -Setlocal enabledelayedexpansion -@echo ******************************************************************************** -@echo SDK BR28 -@echo ******************************************************************************** -@echo %date% - - -cd /d %~dp0 - -set OBJDUMP=C:\JL\pi32\bin\llvm-objdump.exe -set OBJCOPY=C:\JL\pi32\bin\llvm-objcopy.exe -set ELFFILE=sdk.elf -set bankfiles= -set LZ4_PACKET=.\lz4_packet.exe - -REM %OBJDUMP% -D -address-mask=0x1ffffff -print-dbg $1.elf > $1.lst -%OBJCOPY% -O binary -j .text %ELFFILE% text.bin -%OBJCOPY% -O binary -j .data %ELFFILE% data.bin -%OBJCOPY% -O binary -j .data_code %ELFFILE% data_code.bin -%OBJCOPY% -O binary -j .overlay_aec %ELFFILE% aec.bin -%OBJCOPY% -O binary -j .overlay_aac %ELFFILE% aac.bin -%OBJCOPY% -O binary -j .overlay_aptx %ELFFILE% aptx.bin - -%OBJCOPY% -O binary -j .common %ELFFILE% common.bin - -for /L %%i in (0,1,20) do ( - %OBJCOPY% -O binary -j .overlay_bank%%i %ELFFILE% bank%%i.bin - set bankfiles=!bankfiles! bank%%i.bin 0x0 - ) - - -%LZ4_PACKET% -dict text.bin -input common.bin 0 aec.bin 0 aac.bin 0 !bankfiles! -o bank.bin - -%OBJDUMP% -section-headers -address-mask=0x1ffffff %ELFFILE% -REM %OBJDUMP% -t %ELFFILE% > symbol_tbl.txt - -copy /b text.bin + data.bin + mov_slot.bin + data_code.bin + aec.bin + aac.bin + psr_data_code.bin app.bin - - -del !bankfiles! common.bin text.bin data.bin bank.bin -copy eq_cfg_hw_less.bin eq_cfg_hw.bin -call download/earphone/download_app_ota.bat diff --git a/cpu/br28/tools/eq_cfg_hw.bin b/cpu/br28/tools/eq_cfg_hw.bin deleted file mode 100644 index b589b694214744306cb717d9ab704642cd0aac8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmZQ#;9y{2G;m^QvJq0SVE_SUAZ7=%m>49%Gy{XNv9UcP0~5nDCWrut&jjRu2u0#k z#S~_sDHk3IQ|J~Js+huHu!-TTh@iq6hO{)d16)9_)pnxC{&jK<2Rn`J%#LJ~$pYfc!3y1AqXeo)gGd3PbS!|4(KRdD$@Q#rnBV*X@0| rXyTI{-7gmQxCTN6pRa1c6ojel!ln`;$oFjKI-s#H=WhmTcMSvp3^sd2 diff --git a/cpu/br28/tools/isd_config.ini b/cpu/br28/tools/isd_config.ini deleted file mode 100644 index a3be0ba..0000000 --- a/cpu/br28/tools/isd_config.ini +++ /dev/null @@ -1,81 +0,0 @@ - - - -[EXTRA_CFG_PARAM] - -BR22_TWS_DB = YES; -FLASH_SIZE = 0x100000; -BR22_TWS_VERSION = 0; -FORCE_4K_ALIGN = YES; -SPECIAL_OPT = 0; - -DB_UPDATE_DATA = YES; -CHIP_NAME = AC701N; -ENTRY = 0x6000100; -PID = AC701N; -VID = 0.01; - -SDK_VERSION = JL701N_V1.6.1; - -RESERVED_OPT = 0; - -UFW_ELEMENT = 0x10 - 0x0, 0x1 - 0x0; - -DOWNLOAD_MODEL = USB; -SERIAL_DEVICE_NAME = JlVirtualJtagSerial; -SERIAL_BARD_RATE = 1000000; -SERIAL_CMD_OPT = 2; -SERIAL_CMD_RATE = 100; -SERIAL_CMD_RES = 0; -SERIAL_INIT_BAUD_RATE = 9600; -LOADER_BAUD_RATE = 1000000; -LOADER_ASK_BAUD_RATE = 1000000; -BEFORE_LOADER_WAIT_TIME = 150; -SERIAL_SEND_KEY = YES; - - - - - - -[CHIP_VERSION] -SUPPORTED_LIST = P, B; - -[SYS_CFG_PARAM] -SPI = 2_3_0_0; - - - - - - -UTTX = PB02; -UTBD = 1000000; -UTRX = -1; - - - - - -RESET1 = PB01_16_0; - - - -VLVD = 3; -[FW_ADDITIONAL] -FILE_LIST = (file = ota.bin: type = 100); -[RESERVED_CONFIG] -BTIF_ADR = AUTO; -BTIF_LEN = 0x1000; -BTIF_OPT = 1; -PRCT_ADR = 0; -PRCT_LEN = CODE_LEN; -PRCT_OPT = 2; - - - -VM_ADR = 0; -VM_LEN = 8K; -VM_OPT = 1; -[BURNER_CONFIG] -SIZE = 32;