chipset/cc256x: download only init script required for port (cmake)

This commit is contained in:
Matthias Ringwald 2022-06-13 12:53:19 +02:00
parent 2f2a785f81
commit f495c71240
2 changed files with 116 additions and 93 deletions

View File

@ -9,94 +9,119 @@
set(BLUEKITCHEN_URL https://bluekitchen-gmbh.com/files/ti/service-packs)
set(CONVERSION_SCRIPT ${BTSTACK_ROOT}/chipset/cc256x/convert_bts_init_scripts.py)
set (BK_FILES
CC2560_BT_SP_BTS.zip
CC2560A_BT_SP_BTS.zip
CC2564_BT_BLE_SP_BTS.zip
bluetooth_init_cc2560B_1.2_BT_Spec_4.1.bts
bluetooth_init_cc2564B_1.2_BT_Spec_4.1.bts
BLE_init_cc2564B_1.2.bts
cc256xb_bt_sp_v1.6.zip
cc256xb_bt_sp_v1.8.zip
cc256xc_bt_sp_v1.0.zip
cc256xc_bt_sp_v1.1.zip
cc256xc_bt_sp_v1.2.zip
cc256xc_bt_sp_v1.3.zip
cc256xc_bt_sp_v1.4.zip
cc256xc_bt_sp_v1.5.zip
TIInit_6.7.16_bt_spec_4.1.bts
TIInit_6.7.16_ble_add-on.bts
TIInit_11.8.32_4.2.bts
TIInit_11.8.32_4.6.bts
TIInit_11.8.32_4.7.bts
TIInit_12.10.28.bts
TIInit_12.8.32.bts
)
#
# Service Pack / Init Script / .bts Conversion function
#
# only download and unzip if requested by main target via CC256X_INIT_SCRIPT
#
function(cc256x_init_script output_file archive main_script optional_script)
if (DEFINED CC256X_INIT_SCRIPT)
if ("${CC256X_INIT_SCRIPT}" STREQUAL ${output_file})
# Conversion function
function(cc256x_init_script output_file main_script optional_script)
message("CC256x: ${output_file} <- ${main_script} ${optional_script}")
add_custom_command(
OUTPUT ${output_file}
DEPENDS ${main_script} ${optional_script}
COMMAND ${CONVERSION_SCRIPT}
ARGS ${main_script} ${optional_script} ${output_file}
)
# Download init scripts
message("CC256x: Download ${archive}")
file(DOWNLOAD ${BLUEKITCHEN_URL}/${archive} ${archive})
# unpack zip
if (${archive} MATCHES "zip$")
message("CC256x: Extract ${archive}")
file(ARCHIVE_EXTRACT INPUT ${archive})
endif()
# add custom command to convert bts file(s) into C array
message("CC256x: ${output_file} <- ${main_script} ${optional_script}")
add_custom_command(
OUTPUT ${output_file}
DEPENDS ${main_script} ${optional_script}
COMMAND ${CONVERSION_SCRIPT}
ARGS ${main_script} ${optional_script} ${output_file}
)
# Add CC256x chipset support
include_directories(${BTSTACK_ROOT}/chipset/cc256x)
target_sources(btstack PRIVATE ${BTSTACK_ROOT}/chipset/cc256x/btstack_chipset_cc256x.c)
# add init script to target
target_sources(btstack PRIVATE ${CC256X_INIT_SCRIPT})
endif()
endif()
endfunction()
# ZIP and bts from BlueKitchen mirror
foreach(FILE ${BK_FILES})
message("CC256x: Download ${FILE}")
file(DOWNLOAD ${BLUEKITCHEN_URL}/${FILE} ${CMAKE_CURRENT_BINARY_DIR}/${FILE})
endforeach()
# Extract archives
foreach(FILE ${BK_FILES})
# filter for .zip
if (${FILE} MATCHES "zip$")
message("CC256x: Extract ${FILE}")
file(ARCHIVE_EXTRACT INPUT ${FILE})
endif()
endforeach()
# Define all init script
#
# output_file main_bts add_on
# output_file archives main_bts add_on
#
cc256x_init_script(bluetooth_init_cc2560_2.44.c CC2560_BT_SP_BTS/bluetooth_init_cc2560_2.44.bts "")
cc256x_init_script(bluetooth_init_cc2560A_2.14.c CC2560A_BT_SP_BTS/bluetooth_init_cc2560A_2.14.bts "")
cc256x_init_script(bluetooth_init_cc2564_2.14.c CC2564_BT_BLE_SP_BTS/bluetooth_init_cc2564_2.14.bts "")
cc256x_init_script(bluetooth_init_cc2560B_1.2_BT_Spec_4.1.c bluetooth_init_cc2560B_1.2_BT_Spec_4.1.bts "")
cc256x_init_script(bluetooth_init_cc2564B_1.2_BT_Spec_4.1.c bluetooth_init_cc2564B_1.2_BT_Spec_4.1.bts BLE_init_cc2564B_1.2.bts)
cc256x_init_script(bluetooth_init_cc2560B_1.4_BT_Spec_4.1.c TIInit_6.7.16_bt_spec_4.1.bts "")
cc256x_init_script(bluetooth_init_cc2564B_1.4_BT_Spec_4.1.c TIInit_6.7.16_bt_spec_4.1.bts TIInit_6.7.16_ble_add-on.bts)
cc256x_init_script(bluetooth_init_cc2560B_1.5_BT_Spec_4.1.c cc256x_bt_sp_v1.5/initscripts-TIInit_6.7.16_bt_spec_4.1.bts "")
cc256x_init_script(bluetooth_init_cc2564B_1.5_BT_Spec_4.1.c cc256x_bt_sp_v1.5/initscripts-TIInit_6.7.16_bt_spec_4.1.bts cc256x_bt_sp_v1.5/initscripts-TIInit_6.7.16_ble_add-on.bts)
cc256x_init_script(bluetooth_init_cc2560B_1.6_BT_Spec_4.1.c cc256xb_bt_sp_v1.6/initscripts-TIInit_6.7.16_bt_spec_4.1.bts "")
cc256x_init_script(bluetooth_init_cc2564B_1.6_BT_Spec_4.1.c cc256xb_bt_sp_v1.6/initscripts-TIInit_6.7.16_bt_spec_4.1.bts cc256xb_bt_sp_v1.6/initscripts-TIInit_6.7.16_ble_add-on.bts)
cc256x_init_script(bluetooth_init_cc2560B_1.8_BT_Spec_4.1.c cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_bt_spec_4.1.bts "")
cc256x_init_script(bluetooth_init_cc2560B_avpr_1.8_BT_Spec_4.1.c cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_bt_spec_4.1.bts cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_avpr_add-on.bts)
cc256x_init_script(bluetooth_init_cc2564B_1.8_BT_Spec_4.1.c cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_bt_spec_4.1.bts cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_ble_add-on.bts)
cc256x_init_script(bluetooth_init_cc2560C_1.0.c CC256XC_BT_SP/v1.0/initscripts-TIInit_6.12.26.bts "")
cc256x_init_script(bluetooth_init_cc2564C_1.0.c CC256XC_BT_SP/v1.0/initscripts-TIInit_6.12.26.bts CC256XC_BT_SP/v1.0/initscripts-TIInit_6.12.26_ble_add-on.bts)
cc256x_init_script(bluetooth_init_cc2560C_1.1.c CC256XC_BT_SP/v1.1/initscripts-TIInit_6.12.26.bts "")
cc256x_init_script(bluetooth_init_cc2564C_1.1.c CC256XC_BT_SP/v1.1/initscripts-TIInit_6.12.26.bts CC256XC_BT_SP/v1.1/initscripts-TIInit_6.12.26_ble_add-on.bts)
cc256x_init_script(bluetooth_init_cc2560C_1.2.c CC256XC_BT_SP/v1.2/initscripts-TIInit_6.12.26.bts "")
cc256x_init_script(bluetooth_init_cc2564C_1.2.c CC256XC_BT_SP/v1.2/initscripts-TIInit_6.12.26.bts CC256XC_BT_SP/v1.2/initscripts-TIInit_6.12.26_ble_add-on.bts)
cc256x_init_script(bluetooth_init_cc2560C_1.3.c CC256XC_BT_SP/v1.3/initscripts-TIInit_6.12.26.bts "")
cc256x_init_script(bluetooth_init_cc2564C_1.3.c CC256XC_BT_SP/v1.3/initscripts-TIInit_6.12.26.bts CC256XC_BT_SP/v1.3/initscripts-TIInit_6.12.26_ble_add-on.bts)
cc256x_init_script(bluetooth_init_cc2560C_1.4.c CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26.bts "")
cc256x_init_script(bluetooth_init_cc2560C_avpr_1.4.c CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26.bts CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26_avpr_add-on.bts)
cc256x_init_script(bluetooth_init_cc2564C_1.4.c CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26.bts CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26_ble_add-on.bts)
cc256x_init_script(bluetooth_init_cc2560C_1.5.c CC256XC_v1.5/v1.5/initscripts-TIInit_6.12.26.bts "")
cc256x_init_script(bluetooth_init_cc2560C_avpr_1.5.c CC256XC_v1.5/v1.5/initscripts-TIInit_6.12.26.bts CC256XC_v1.5/v1.5i/nitscripts-TIInit_6.12.26_avpr_add-on.bts)
cc256x_init_script(bluetooth_init_cc2564C_1.5.c CC256XC_v1.5/v1.5/initscripts-TIInit_6.12.26.bts CC256XC_v1.5/v1.5/initscripts-TIInit_6.12.26_ble_add-on.bts)
cc256x_init_script(TIInit_11.8.32_4.2.c TIInit_11.8.32_4.2.bts "")
cc256x_init_script(TIInit_11.8.32_4.6.c TIInit_11.8.32_4.6.bts "")
cc256x_init_script(TIInit_11.8.32_4.7.c TIInit_11.8.32_4.7.bts "")
cc256x_init_script(TIInit_12.10.28.c TIInit_12.10.28.bts "")
cc256x_init_script(TIInit_12.8.32.c TIInit_12.8.32.bts "")
# First generation CC2560 - AKA TIInit_6.2.31.bts
# - v2.44 - file part of .zip archive
cc256x_init_script(bluetooth_init_cc2560_2.44.c CC2560_BT_SP_BTS.zip CC2560_BT_SP_BTS/bluetooth_init_cc2560_2.44.bts "")
# Second generation CC2560A and CC2564 - AKA TIInit_6.6.15.bts
# - v2.14 - files part of .zip archive
cc256x_init_script(bluetooth_init_cc2560A_2.14.c CC2560A_BT_SP_BTS.zip CC2560A_BT_SP_BTS/bluetooth_init_cc2560A_2.14.bts "")
cc256x_init_script(bluetooth_init_cc2564_2.14.c CC2564_BT_BLE_SP_BTS.zip CC2564_BT_BLE_SP_BTS/bluetooth_init_cc2564_2.14.bts "")
# Third generation CC256xB - AKA TIInit_6.7.16.bts
# - v1.2 - versioned files TI Git Repo
cc256x_init_script(bluetooth_init_cc2560B_1.2_BT_Spec_4.1.c cc256xb_bt_sp_v1.2.zip bluetooth_init_cc2560B_1.2_BT_Spec_4.1.bts "")
cc256x_init_script(bluetooth_init_cc2564B_1.2_BT_Spec_4.1.c cc256xb_bt_sp_v1.2.zip bluetooth_init_cc2564B_1.2_BT_Spec_4.1.bts BLE_init_cc2564B_1.2.bts)
# - v1.3 - not available, please use v1.8 or newer
# - v1.4 - versioned files TI Git Repo
cc256x_init_script(bluetooth_init_cc2560B_1.4_BT_Spec_4.1.c cc256xb_bt_sp_v1.4.zip TIInit_6.7.16_bt_spec_4.1.bts "")
cc256x_init_script(bluetooth_init_cc2564B_1.4_BT_Spec_4.1.c cc256xb_bt_sp_v1.4.zip TIInit_6.7.16_bt_spec_4.1.bts TIInit_6.7.16_ble_add-on.bts)
# - v1.5 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xb-bt-sp
cc256x_init_script(bluetooth_init_cc2560B_1.5_BT_Spec_4.1.c cc256xb_bt_sp_v1.5.zip cc256x_bt_sp_v1.5/initscripts-TIInit_6.7.16_bt_spec_4.1.bts "")
cc256x_init_script(bluetooth_init_cc2564B_1.5_BT_Spec_4.1.c cc256xb_bt_sp_v1.5.zip cc256x_bt_sp_v1.5/initscripts-TIInit_6.7.16_bt_spec_4.1.bts cc256x_bt_sp_v1.5/initscripts-TIInit_6.7.16_ble_add-on.bts)
# - v1.6 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xb-bt-sp
cc256x_init_script(bluetooth_init_cc2560B_1.6_BT_Spec_4.1.c cc256xb_bt_sp_v1.6.zip cc256xb_bt_sp_v1.6/initscripts-TIInit_6.7.16_bt_spec_4.1.bts "")
cc256x_init_script(bluetooth_init_cc2564B_1.6_BT_Spec_4.1.c cc256xb_bt_sp_v1.6.zip cc256xb_bt_sp_v1.6/initscripts-TIInit_6.7.16_bt_spec_4.1.bts cc256xb_bt_sp_v1.6/initscripts-TIInit_6.7.16_ble_add-on.bts)
cc256x_init_script(bluetooth_init_cc2560B_1.8_BT_Spec_4.1.c cc256xb_bt_sp_v1.6.zip cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_bt_spec_4.1.bts "")
# - v1.7 - not available, please use v1.8 or newer
# - v1.8 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xb-bt-sp
cc256x_init_script(bluetooth_init_cc2560B_avpr_1.8_BT_Spec_4.1.c cc256xb_bt_sp_v1.8.zip cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_bt_spec_4.1.bts cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_avpr_add-on.bts)
cc256x_init_script(bluetooth_init_cc2564B_1.8_BT_Spec_4.1.c cc256xb_bt_sp_v1.8.zip cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_bt_spec_4.1.bts cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_ble_add-on.bts)
# Fourth generation CC256xC - TIInit_6.12.26.bts
# - v1.0 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xc-bt-sp
cc256x_init_script(bluetooth_init_cc2560C_1.0.c cc256xc_bt_sp_v1.0.zip CC256XC_BT_SP/v1.0/initscripts-TIInit_6.12.26.bts "")
cc256x_init_script(bluetooth_init_cc2564C_1.0.c cc256xc_bt_sp_v1.0.zip CC256XC_BT_SP/v1.0/initscripts-TIInit_6.12.26.bts CC256XC_BT_SP/v1.0/initscripts-TIInit_6.12.26_ble_add-on.bts)
# - v1.1 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xc-bt-sp
cc256x_init_script(bluetooth_init_cc2560C_1.1.c cc256xc_bt_sp_v1.1.zip CC256XC_BT_SP/v1.1/initscripts-TIInit_6.12.26.bts "")
cc256x_init_script(bluetooth_init_cc2564C_1.1.c cc256xc_bt_sp_v1.1.zip CC256XC_BT_SP/v1.1/initscripts-TIInit_6.12.26.bts CC256XC_BT_SP/v1.1/initscripts-TIInit_6.12.26_ble_add-on.bts)
# - v1.2 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xc-bt-sp
cc256x_init_script(bluetooth_init_cc2560C_1.2.c cc256xc_bt_sp_v1.2.zip CC256XC_BT_SP/v1.2/initscripts-TIInit_6.12.26.bts "")
cc256x_init_script(bluetooth_init_cc2564C_1.2.c cc256xc_bt_sp_v1.2.zip CC256XC_BT_SP/v1.2/initscripts-TIInit_6.12.26.bts CC256XC_BT_SP/v1.2/initscripts-TIInit_6.12.26_ble_add-on.bts)
# - v1.3 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xc-bt-sp
cc256x_init_script(bluetooth_init_cc2560C_1.3.c cc256xc_bt_sp_v1.3.zip CC256XC_BT_SP/v1.3/initscripts-TIInit_6.12.26.bts "")
cc256x_init_script(bluetooth_init_cc2564C_1.3.c cc256xc_bt_sp_v1.3.zip CC256XC_BT_SP/v1.3/initscripts-TIInit_6.12.26.bts CC256XC_BT_SP/v1.3/initscripts-TIInit_6.12.26_ble_add-on.bts)
# - v1.4 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xc-bt-sp
cc256x_init_script(bluetooth_init_cc2560C_1.4.c cc256xc_bt_sp_v1.4.zip CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26.bts "")
cc256x_init_script(bluetooth_init_cc2560C_avpr_1.4.c cc256xc_bt_sp_v1.4.zip CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26.bts CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26_avpr_add-on.bts)
cc256x_init_script(bluetooth_init_cc2564C_1.4.c cc256xc_bt_sp_v1.4.zip CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26.bts CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26_ble_add-on.bts)
# - v1.5 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xc-bt-sp
cc256x_init_script(bluetooth_init_cc2560C_1.5.c cc256xc_bt_sp_v1.5.zip CC256XC_v1.5/v1.5/initscripts-TIInit_6.12.26.bts "")
cc256x_init_script(bluetooth_init_cc2560C_avpr_1.5.c cc256xc_bt_sp_v1.5.zip CC256XC_v1.5/v1.5/initscripts-TIInit_6.12.26.bts CC256XC_v1.5/v1.5i/nitscripts-TIInit_6.12.26_avpr_add-on.bts)
cc256x_init_script(bluetooth_init_cc2564C_1.5.c cc256xc_bt_sp_v1.5.zip CC256XC_v1.5/v1.5/initscripts-TIInit_6.12.26.bts CC256XC_v1.5/v1.5/initscripts-TIInit_6.12.26_ble_add-on.bts)
# Various scripts for WL chipsets from http://www.ti.com/tool/wl18xx-bt-sp
cc256x_init_script(TIInit_11.8.32_4.2.c TIInit_11.8.32_4.2.bts TIInit_11.8.32_4.2.bts "")
cc256x_init_script(TIInit_11.8.32_4.6.c TIInit_11.8.32_4.6.bts TIInit_11.8.32_4.6.bts "")
cc256x_init_script(TIInit_11.8.32_4.7.c TIInit_11.8.32_4.7.bts TIInit_11.8.32_4.7.bts "")
cc256x_init_script(TIInit_12.10.28.c TIInit_12.10.28.bts TIInit_12.10.28.bts "")
cc256x_init_script(TIInit_12.8.32.c TIInit_12.8.32.bts TIInit_12.8.32.bts "")
# ANT Service Pack required
# cc256x_init_script(bluetooth_init_cc2567_2.4.c CC2567_BT_ANT_Service_Pack_2.4.bts "")
# cc256x_init_script(bluetooth_init_cc2567_2.8.c CC256x_BT_Service_Pack_2.8_ANT_1.16.bts "")
# cc256x_init_script(bluetooth_init_cc2567_2.4.c "" CC2567_BT_ANT_Service_Pack_2.4.bts "")
# cc256x_init_script(bluetooth_init_cc2567_2.8.c "" CC256x_BT_Service_Pack_2.8_ANT_1.16.bts "")

View File

@ -4,12 +4,6 @@ project(BTstack-posix-h4)
SET(BTSTACK_ROOT ${CMAKE_SOURCE_DIR}/../..)
# CC256x Init Scripts
include(${BTSTACK_ROOT}/chipset/cc256x/cc256x.cmake)
# BCM Init Scripts
include(${BTSTACK_ROOT}/chipset/bcm/bcm.cmake)
# extra compiler warnings
if ("${CMAKE_C_COMPILER_ID}" MATCHES ".*Clang.*")
# using Clang
@ -44,7 +38,6 @@ include_directories(${BTSTACK_ROOT}/3rd-party/yxml)
include_directories(${BTSTACK_ROOT}/3rd-party/tinydir)
include_directories(${BTSTACK_ROOT}/src)
include_directories(${BTSTACK_ROOT}/chipset/bcm)
include_directories(${BTSTACK_ROOT}/chipset/cc256x)
include_directories(${BTSTACK_ROOT}/chipset/csr)
include_directories(${BTSTACK_ROOT}/chipset/cc256x)
include_directories(${BTSTACK_ROOT}/chipset/em9301)
@ -71,7 +64,6 @@ file(GLOB SOURCES_YXML "${BTSTACK_ROOT}/3rd-party/yxml/yxml.c")
file(GLOB SOURCES_POSIX "${BTSTACK_ROOT}/platform/posix/*.c")
file(GLOB SOURCES_BCM "${BTSTACK_ROOT}/chipset/bcm/*.c")
file(GLOB SOURCES_CSR "${BTSTACK_ROOT}/chipset/csr/*.c")
file(GLOB SOURCES_CC256X "${BTSTACK_ROOT}/chipset/cc256x/*.c")
file(GLOB SOURCES_EM9301 "${BTSTACK_ROOT}/chipset/em9301/*.c")
file(GLOB SOURCES_STLC2500D "${BTSTACK_ROOT}/chipset/stlc2500d/*.c")
file(GLOB SOURCES_TC2566X "${BTSTACK_ROOT}/chipset/tc3566x/*.c")
@ -147,7 +139,6 @@ set(SOURCES
${SOURCES_REALTEK}
${SOURCES_RIJNDAEL}
${SOURCES_SRC}
${SOURCES_CC256X}
${SOURCES_CSR}
${SOURCES_STLC2500D}
${SOURCES_TC2566X}
@ -161,6 +152,13 @@ list(SORT SOURCES)
# create static lib
add_library(btstack STATIC ${SOURCES})
# Add CC256x Support and specify init script
set (CC256X_INIT_SCRIPT bluetooth_init_cc2564C_1.5.c)
include(${BTSTACK_ROOT}/chipset/cc256x/cc256x.cmake)
# Add BCM Support and download PatchRAM files
include(${BTSTACK_ROOT}/chipset/bcm/bcm.cmake)
# get list of examples, skipping mesh_node_demo
include(../../example/CMakeLists.txt)
set (EXAMPLES ${EXAMPLES_GENERAL} ${EXAMPLES_CLASSIC_ONLY} ${EXAMPLES_LE_ONLY} ${EXAMPLES_DUAL_MODE})