Skip to content

Commit 07baa61

Browse files
lib: stm32wb0: implement IAR toolchain compatibility
Replace all GCC-isms in the CMakeLists for STM32WB0 series libraries with toolchain agnostic patterns (or gate behind toolchain check) and rename some preprocessed assembler files to the proper extension to enable compilation of STM32WB0 Bluetooth apps with IAR toolchain. Signed-off-by: Mathieu Choplain <[email protected]>
1 parent 50fcec6 commit 07baa61

File tree

4 files changed

+45
-41
lines changed

4 files changed

+45
-41
lines changed

lib/stm32wb0/BLE_TransparentMode/System/Modules/blue_unit_conversion.s renamed to lib/stm32wb0/BLE_TransparentMode/System/Modules/blue_unit_conversion.S

File renamed without changes.

lib/stm32wb0/BLE_TransparentMode/System/Modules/osal_memcpy.s renamed to lib/stm32wb0/BLE_TransparentMode/System/Modules/osal_memcpy.S

File renamed without changes.

lib/stm32wb0/CMakeLists.txt

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ zephyr_library()
66

77
if(CONFIG_STM32WB0_RADIO_TIMER)
88
zephyr_include_directories(BLE_TransparentMode/System/Modules)
9-
zephyr_library_sources(BLE_TransparentMode/System/Modules/blue_unit_conversion.s)
9+
zephyr_library_sources(BLE_TransparentMode/System/Modules/blue_unit_conversion.S)
1010
endif()
1111

1212
if(CONFIG_BT_STM32WB0)
@@ -21,8 +21,7 @@ zephyr_include_directories(BLE_TransparentMode/System/Modules/RTDebug)
2121
zephyr_include_directories(BLE_TransparentMode/Core/Inc)
2222
zephyr_include_directories(BLE_TransparentMode/STM32_BLE/App)
2323

24-
target_link_directories(app PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../zephyr/blobs/stm32wb0/lib)
25-
target_link_libraries(app PUBLIC -l:stm32wb0x_ble_stack_controller_only.a)
24+
target_link_libraries(app PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../zephyr/blobs/stm32wb0/lib/stm32wb0x_ble_stack_controller_only.a)
2625

2726
function(min OUT_VAR)
2827
list(SORT ARGN COMPARE NATURAL ORDER ASCENDING)
@@ -50,14 +49,14 @@ set(CFG_BLE_CONNECTION_SUBRATING_ENABLED "0")
5049
set(CFG_BLE_CONTROLLER_CIS_ENABLED "0")
5150

5251
zephyr_compile_definitions(
53-
-DBLESTACK_CONTROLLER_ONLY=1
54-
-DACI_HAL_GET_FIRMWARE_DETAILS_ENABLED=0
55-
-DACI_HAL_GET_FIRMWARE_DETAILS_V2_ENABLED=0
56-
-DACI_HAL_UPDATER_START_ENABLED=0
57-
-DACI_HAL_TRANSMITTER_TEST_PACKETS_ENABLED=0
58-
-DACI_HAL_TRANSMITTER_TEST_PACKETS_V2_ENABLED=0
59-
-DACI_HAL_WRITE_RADIO_REG_ENABLED=0
60-
-DACI_HAL_READ_RADIO_REG_ENABLED=0
52+
BLESTACK_CONTROLLER_ONLY=1
53+
ACI_HAL_GET_FIRMWARE_DETAILS_ENABLED=0
54+
ACI_HAL_GET_FIRMWARE_DETAILS_V2_ENABLED=0
55+
ACI_HAL_UPDATER_START_ENABLED=0
56+
ACI_HAL_TRANSMITTER_TEST_PACKETS_ENABLED=0
57+
ACI_HAL_TRANSMITTER_TEST_PACKETS_V2_ENABLED=0
58+
ACI_HAL_WRITE_RADIO_REG_ENABLED=0
59+
ACI_HAL_READ_RADIO_REG_ENABLED=0
6160
)
6261

6362
if(CONFIG_BT_OBSERVER)
@@ -131,22 +130,22 @@ message(STATUS "CONNECTION_SUBRATING_ENABLED=${CFG_BLE_CONNECTION_SUBRATING_ENAB
131130
message(STATUS "CONTROLLER_CIS_ENABLED=${CFG_BLE_CONTROLLER_CIS_ENABLED}")
132131

133132
zephyr_compile_definitions(
134-
-DCFG_BLE_CONTROLLER_SCAN_ENABLED=${CFG_BLE_CONTROLLER_SCAN_ENABLED}
135-
-DCFG_BLE_CONTROLLER_PRIVACY_ENABLED=${CFG_BLE_CONTROLLER_PRIVACY_ENABLED}
136-
-DCFG_BLE_SECURE_CONNECTIONS_ENABLED=${CFG_BLE_SECURE_CONNECTIONS_ENABLED}
137-
-DCFG_BLE_CONTROLLER_DATA_LENGTH_EXTENSION_ENABLED=${CFG_BLE_CONTROLLER_DATA_LENGTH_EXTENSION_ENABLED}
138-
-DCFG_BLE_CONTROLLER_2M_CODED_PHY_ENABLED=${CFG_BLE_CONTROLLER_2M_CODED_PHY_ENABLED}
139-
-DCFG_BLE_CONTROLLER_EXT_ADV_SCAN_ENABLED=${CFG_BLE_CONTROLLER_EXT_ADV_SCAN_ENABLED}
140-
-DCFG_BLE_L2CAP_COS_ENABLED=${CFG_BLE_L2CAP_COS_ENABLED}
141-
-DCFG_BLE_CONTROLLER_PERIODIC_ADV_ENABLED=${CFG_BLE_CONTROLLER_PERIODIC_ADV_ENABLED}
142-
-DCFG_BLE_CONTROLLER_PERIODIC_ADV_WR_ENABLED=${CFG_BLE_CONTROLLER_PERIODIC_ADV_WR_ENABLED}
143-
-DCFG_BLE_CONTROLLER_CTE_ENABLED=${CFG_BLE_CONTROLLER_CTE_ENABLED}
144-
-DCFG_BLE_CONTROLLER_POWER_CONTROL_ENABLED=${CFG_BLE_CONTROLLER_POWER_CONTROL_ENABLED}
145-
-DCFG_BLE_CONNECTION_ENABLED=${CFG_BLE_CONNECTION_ENABLED}
146-
-DCFG_BLE_CONTROLLER_CHAN_CLASS_ENABLED=${CFG_BLE_CONTROLLER_CHAN_CLASS_ENABLED}
147-
-DCFG_BLE_CONTROLLER_BIS_ENABLED=${CFG_BLE_CONTROLLER_BIS_ENABLED}
148-
-DCFG_BLE_CONNECTION_SUBRATING_ENABLED=${CFG_BLE_CONNECTION_SUBRATING_ENABLED}
149-
-DCFG_BLE_CONTROLLER_CIS_ENABLED=${CFG_BLE_CONTROLLER_CIS_ENABLED}
133+
CFG_BLE_CONTROLLER_SCAN_ENABLED=${CFG_BLE_CONTROLLER_SCAN_ENABLED}
134+
CFG_BLE_CONTROLLER_PRIVACY_ENABLED=${CFG_BLE_CONTROLLER_PRIVACY_ENABLED}
135+
CFG_BLE_SECURE_CONNECTIONS_ENABLED=${CFG_BLE_SECURE_CONNECTIONS_ENABLED}
136+
CFG_BLE_CONTROLLER_DATA_LENGTH_EXTENSION_ENABLED=${CFG_BLE_CONTROLLER_DATA_LENGTH_EXTENSION_ENABLED}
137+
CFG_BLE_CONTROLLER_2M_CODED_PHY_ENABLED=${CFG_BLE_CONTROLLER_2M_CODED_PHY_ENABLED}
138+
CFG_BLE_CONTROLLER_EXT_ADV_SCAN_ENABLED=${CFG_BLE_CONTROLLER_EXT_ADV_SCAN_ENABLED}
139+
CFG_BLE_L2CAP_COS_ENABLED=${CFG_BLE_L2CAP_COS_ENABLED}
140+
CFG_BLE_CONTROLLER_PERIODIC_ADV_ENABLED=${CFG_BLE_CONTROLLER_PERIODIC_ADV_ENABLED}
141+
CFG_BLE_CONTROLLER_PERIODIC_ADV_WR_ENABLED=${CFG_BLE_CONTROLLER_PERIODIC_ADV_WR_ENABLED}
142+
CFG_BLE_CONTROLLER_CTE_ENABLED=${CFG_BLE_CONTROLLER_CTE_ENABLED}
143+
CFG_BLE_CONTROLLER_POWER_CONTROL_ENABLED=${CFG_BLE_CONTROLLER_POWER_CONTROL_ENABLED}
144+
CFG_BLE_CONNECTION_ENABLED=${CFG_BLE_CONNECTION_ENABLED}
145+
CFG_BLE_CONTROLLER_CHAN_CLASS_ENABLED=${CFG_BLE_CONTROLLER_CHAN_CLASS_ENABLED}
146+
CFG_BLE_CONTROLLER_BIS_ENABLED=${CFG_BLE_CONTROLLER_BIS_ENABLED}
147+
CFG_BLE_CONNECTION_SUBRATING_ENABLED=${CFG_BLE_CONNECTION_SUBRATING_ENABLED}
148+
CFG_BLE_CONTROLLER_CIS_ENABLED=${CFG_BLE_CONTROLLER_CIS_ENABLED}
150149
)
151150
########### End of modularity selection ###########
152151

@@ -215,16 +214,16 @@ if (CONFIG_BT_ISO_MAX_CHAN)
215214
endif()
216215

217216
zephyr_compile_definitions(
218-
-DCFG_BLE_NUM_SYNC_SLOTS=${CFG_BLE_NUM_SYNC_SLOTS}
219-
-DCFG_BLE_NUM_ADV_SETS=${CFG_BLE_NUM_ADV_SETS}
220-
-DCFG_BLE_NUM_EATT_CHANNELS=${CFG_BLE_NUM_EATT_CHANNELS}
221-
-DCFG_BLE_NUM_BRC_BIG_MAX=${CFG_BLE_NUM_BRC_BIG_MAX}
222-
-DCFG_BLE_NUM_SYNC_BIG_MAX=${CFG_BLE_NUM_SYNC_BIG_MAX}
223-
-DCFG_BLE_NUM_SYNC_BIS_MAX=${CFG_BLE_NUM_SYNC_BIS_MAX}
224-
-DCFG_BLE_NUM_BRC_BIS_MAX=${CFG_BLE_NUM_BRC_BIS_MAX}
225-
-DCFG_BLE_NUM_CIG_MAX=${CFG_BLE_NUM_CIG_MAX}
226-
-DCFG_BLE_NUM_CIS_MAX=${CFG_BLE_NUM_CIS_MAX}
227-
-DCFG_BLE_NUM_AUX_SCAN_SLOTS=${CFG_BLE_NUM_AUX_SCAN_SLOTS}
217+
CFG_BLE_NUM_SYNC_SLOTS=${CFG_BLE_NUM_SYNC_SLOTS}
218+
CFG_BLE_NUM_ADV_SETS=${CFG_BLE_NUM_ADV_SETS}
219+
CFG_BLE_NUM_EATT_CHANNELS=${CFG_BLE_NUM_EATT_CHANNELS}
220+
CFG_BLE_NUM_BRC_BIG_MAX=${CFG_BLE_NUM_BRC_BIG_MAX}
221+
CFG_BLE_NUM_SYNC_BIG_MAX=${CFG_BLE_NUM_SYNC_BIG_MAX}
222+
CFG_BLE_NUM_SYNC_BIS_MAX=${CFG_BLE_NUM_SYNC_BIS_MAX}
223+
CFG_BLE_NUM_BRC_BIS_MAX=${CFG_BLE_NUM_BRC_BIS_MAX}
224+
CFG_BLE_NUM_CIG_MAX=${CFG_BLE_NUM_CIG_MAX}
225+
CFG_BLE_NUM_CIS_MAX=${CFG_BLE_NUM_CIS_MAX}
226+
CFG_BLE_NUM_AUX_SCAN_SLOTS=${CFG_BLE_NUM_AUX_SCAN_SLOTS}
228227
)
229228
########### End of numeric value section ###########
230229

@@ -279,23 +278,26 @@ if(${CFG_BLE_CONTROLLER_SCAN_ENABLED})
279278
endif()
280279

281280
message(STATUS "Number of computed radio tasks: ${tasks}")
282-
zephyr_compile_definitions(-DCFG_BLE_NUM_RADIO_TASKS=${tasks})
281+
zephyr_compile_definitions(CFG_BLE_NUM_RADIO_TASKS=${tasks})
283282

284283
########### End of number of radio tasks calculation ###########
285284

286285
zephyr_library_sources(BLE_TransparentMode/STM32_BLE/App/dm_alloc.c)
287286
zephyr_library_sources(BLE_TransparentMode/STM32_BLE/App/dtm_cmd_db.c)
288287
zephyr_library_sources(BLE_TransparentMode/STM32_BLE/App/aci_adv_nwk.c)
289288

290-
set_source_files_properties(BLE_TransparentMode/STM32_BLE/App/dtm_cmd_db.c PROPERTIES COMPILE_FLAGS -Wno-array-bounds)
291-
set_source_files_properties(STM32_BLE/stack/config/ble_stack_user_cfg.c PROPERTIES COMPILE_FLAGS -Wno-array-parameter)
289+
if(ZEPHYR_TOOLCHAIN_VARIANT STREQUAL "zephyr")
290+
# Silence some warnings in third-party code to prevent CI breakage
291+
set_source_files_properties(BLE_TransparentMode/STM32_BLE/App/dtm_cmd_db.c PROPERTIES COMPILE_FLAGS -Wno-array-bounds)
292+
set_source_files_properties(STM32_BLE/stack/config/ble_stack_user_cfg.c PROPERTIES COMPILE_FLAGS -Wno-array-parameter)
293+
endif()
292294
zephyr_library_sources(BLE_TransparentMode/STM32_BLE/Target/bleplat_cntr.c)
293295
zephyr_library_sources(BLE_TransparentMode/STM32_BLE/Target/bleplat.c)
294296
zephyr_library_sources(BLE_TransparentMode/System/Modules/PKAMGR/Src/pka_manager.c)
295297
zephyr_library_sources(BLE_TransparentMode/System/Interfaces/hw_aes.c)
296298
zephyr_library_sources(BLE_TransparentMode/System/Interfaces/hw_pka.c)
297299
zephyr_library_sources(BLE_TransparentMode/System/Interfaces/hw_rng.c)
298-
zephyr_library_sources(BLE_TransparentMode/System/Modules/osal_memcpy.s)
300+
zephyr_library_sources(BLE_TransparentMode/System/Modules/osal_memcpy.S)
299301
zephyr_library_sources(BLE_TransparentMode/STM32_BLE/App/adv_buff_alloc_tiny.c)
300302
zephyr_library_sources(BLE_TransparentMode/STM32_BLE/App/transport_layer.c)
301303
zephyr_library_sources(BLE_TransparentMode/STM32_BLE/App/dtm_preprocess_events.c)

lib/stm32wb0/README.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,5 +131,7 @@ Patch List:
131131
Impacted file: bleplat.c
132132
- Removed BLEPLAT_SetRadioTimerValue function:
133133
Impacted file: bleplat.c
134+
- Rename assembly-with-preprocessing files from ".s" to ".S"
135+
Impacted files: blue_unit_conversion.s, osal_memcpy.s
134136
- dos2unix applied
135137
- trailing white spaces removed

0 commit comments

Comments
 (0)