SECTIONS { .data : ALIGN(4) { . = 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) *(.classic_hci_data) *(.ble_rf_data) BTCTLER_LE_CONTROLLER_DATA_SIZE = ABSOLUTE(. - BTCTLER_LE_CONTROLLER_DATA_START); BTCTLER_CL_DATA_START = .; *(.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); . = ALIGN(4); btctler_data_end = .; } > ram0 .bss (NOLOAD) :ALIGN(4) { . = ALIGN(4); btctler_bss_start = .; BTCTLER_CONTROLLER_BSS_START = .; #if TCFG_BLUETOOTH_BACK_MODE *(.bd_base) *(.bredr_rxtx_bulk) acl_tx_pool = .; *(.bredr_tx_bulk) #ifdef CONFIG_BT_TX_BUFF_SIZE acl_tx_pool_end = acl_tx_pool + CONFIG_BT_TX_BUFF_SIZE; #else acl_tx_pool_end = acl_tx_pool; #endif . = acl_tx_pool_end; acl_rx_pool = .; *(.bredr_rx_bulk) #ifdef CONFIG_BT_RX_BUFF_SIZE acl_rx_pool_end = acl_rx_pool + CONFIG_BT_RX_BUFF_SIZE; #else acl_rx_pool_end = acl_rx_pool; #endif . = acl_rx_pool_end; tws_bulk_pool = .; #ifdef CONFIG_TWS_BULK_POOL_SIZE tws_bulk_pool_end = tws_bulk_pool + CONFIG_TWS_BULK_POOL_SIZE; #else tws_bulk_pool_end = tws_bulk_pool; #endif . = tws_bulk_pool_end; #endif *(.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); . = ALIGN(4); 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) *(.classic_hci_const) *(.classic_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_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); . = ALIGN(4); *(.classic_tws_const) *(.classic_tws_code) *(.classic_tws_code.esco) *(.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); } > code0 /*代码统计 Code & RAM : 蓝牙协议栈*/ 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); }