diff --git a/.editorconfig b/.editorconfig index c7bf2228..47433680 100644 --- a/.editorconfig +++ b/.editorconfig @@ -5,6 +5,12 @@ indent_style = space indent_size = 2 trim_trailing_whitespace = true +[*.patch] +insert_final_newline = unset +indent_style = unset +indent_size = unset +trim_trailing_whitespace = unset + [*.md] trim_trailing_whitespace = false diff --git a/extras/STM32Cube_FW/0001-chore-adapt-STM32Cube_FW-sources.patch b/extras/STM32Cube_FW/0001-chore-adapt-STM32Cube_FW-sources.patch index 246a1257..48a28137 100644 --- a/extras/STM32Cube_FW/0001-chore-adapt-STM32Cube_FW-sources.patch +++ b/extras/STM32Cube_FW/0001-chore-adapt-STM32Cube_FW-sources.patch @@ -1,25 +1,22 @@ -From ef2495f6fa746df9f86f0db39fa00244d22feb3b Mon Sep 17 00:00:00 2001 +From 542e007fa5a1b53664d2efb5f01d67767123a357 Mon Sep 17 00:00:00 2001 From: Frederic Pillon -Date: Wed, 5 Apr 2023 10:18:52 +0200 +Date: Thu, 13 Jul 2023 17:08:05 +0200 Subject: [PATCH 1/4] chore: adapt STM32Cube_FW sources -Compare to previous patch, do the minimum changes required -to ease further update. - Signed-off-by: Frederic Pillon --- - src/utility/STM32Cube_FW/app_conf_default.h | 47 +++++++++++++++------ - src/utility/STM32Cube_FW/ble_bufsize.h | 11 ++++- - src/utility/STM32Cube_FW/hw.h | 15 +++++-- - src/utility/STM32Cube_FW/hw_ipcc.c | 4 +- + src/utility/STM32Cube_FW/app_conf_default.h | 46 ++++++++++++++++----- + src/utility/STM32Cube_FW/ble_bufsize.h | 7 ++++ + src/utility/STM32Cube_FW/hw.h | 13 +++++- + src/utility/STM32Cube_FW/hw_ipcc.c | 5 ++- src/utility/STM32Cube_FW/shci.c | 3 +- src/utility/STM32Cube_FW/shci_tl.c | 18 +++++++- - src/utility/STM32Cube_FW/stm_list.c | 7 ++- - src/utility/STM32Cube_FW/tl_mbox.c | 8 +++- - 8 files changed, 90 insertions(+), 23 deletions(-) + src/utility/STM32Cube_FW/stm_list.c | 7 +++- + src/utility/STM32Cube_FW/tl_mbox.c | 7 +++- + 8 files changed, 86 insertions(+), 20 deletions(-) diff --git a/src/utility/STM32Cube_FW/app_conf_default.h b/src/utility/STM32Cube_FW/app_conf_default.h -index 51bd33a..e89df14 100644 +index 51bd33a..1c6dd91 100644 --- a/src/utility/STM32Cube_FW/app_conf_default.h +++ b/src/utility/STM32Cube_FW/app_conf_default.h @@ -1,9 +1,9 @@ @@ -121,19 +118,18 @@ index 51bd33a..e89df14 100644 /****************************************************************************** * Transport Layer ******************************************************************************/ -@@ -657,5 +680,5 @@ typedef enum - #define CFG_OTP_BASE_ADDRESS OTP_AREA_BASE +@@ -658,4 +681,5 @@ typedef enum #define CFG_OTP_END_ADRESS OTP_AREA_END_ADDR -- + -#endif /*APP_CONF_H */ +#endif +#endif /*APP_CONF_DEFAULT_H */ diff --git a/src/utility/STM32Cube_FW/ble_bufsize.h b/src/utility/STM32Cube_FW/ble_bufsize.h -index 7b7c170..53cf59a 100644 +index b9935c0..d4d2890 100644 --- a/src/utility/STM32Cube_FW/ble_bufsize.h +++ b/src/utility/STM32Cube_FW/ble_bufsize.h -@@ -75,15 +75,22 @@ +@@ -75,6 +75,13 @@ ((pw) + MAX(BLE_MEM_BLOCK_X_MTU(mtu, n_link), \ BLE_MBLOCKS_SECURE_CONNECTIONS)) @@ -147,19 +143,8 @@ index 7b7c170..53cf59a 100644 /* * BLE_FIXED_BUFFER_SIZE_BYTES: * A part of the RAM, is dynamically allocated by initializing all the pointers - * defined in a global context variable "mem_alloc_ctx_p". -- * This initialization is made in the Dynamic_allocator functions, which -+ * This initialization is made in the Dynamic_allocator functions, which - * assign a portion of RAM given by the external application to the above - * mentioned "global pointers". - * -- * The size of this Dynamic RAM is made of 2 main components: -+ * The size of this Dynamic RAM is made of 2 main components: - * - a part that is parameters-dependent (num of links, GATT buffers, ...), - * and which value is made explicit by the following macro; - * - a part, that may be considered "fixed", i.e. independent from the above diff --git a/src/utility/STM32Cube_FW/hw.h b/src/utility/STM32Cube_FW/hw.h -index 503fa2c..1472a5e 100644 +index 651e1f1..1472a5e 100644 --- a/src/utility/STM32Cube_FW/hw.h +++ b/src/utility/STM32Cube_FW/hw.h @@ -26,14 +26,23 @@ extern "C" { @@ -188,23 +173,15 @@ index 503fa2c..1472a5e 100644 void HW_IPCC_BLE_Init( void ); void HW_IPCC_BLE_SendCmd( void ); -@@ -76,7 +85,7 @@ extern "C" { - void HW_IPCC_BLE_LLD_ReceiveRsp( void ); - void HW_IPCC_BLE_LLD_SendRspAck( void ); - -- -+ - void HW_IPCC_TRACES_Init( void ); - void HW_IPCC_TRACES_EvtNot( void ); - diff --git a/src/utility/STM32Cube_FW/hw_ipcc.c b/src/utility/STM32Cube_FW/hw_ipcc.c -index fd620b8..3461cbe 100644 +index fd620b8..c730482 100644 --- a/src/utility/STM32Cube_FW/hw_ipcc.c +++ b/src/utility/STM32Cube_FW/hw_ipcc.c -@@ -18,8 +18,9 @@ +@@ -17,9 +17,9 @@ + ****************************************************************************** */ /* USER CODE END Header */ - +- +#if defined(STM32WBxx) /* Includes ------------------------------------------------------------------*/ -#include "app_common.h" @@ -212,13 +189,13 @@ index fd620b8..3461cbe 100644 #include "mbox_def.h" /* Global variables ---------------------------------------------------------*/ -@@ -667,3 +668,4 @@ static void HW_IPCC_TRACES_EvtHandler( void ) +@@ -667,3 +667,4 @@ static void HW_IPCC_TRACES_EvtHandler( void ) } __weak void HW_IPCC_TRACES_EvtNot( void ){}; +#endif /* STM32WBxx */ diff --git a/src/utility/STM32Cube_FW/shci.c b/src/utility/STM32Cube_FW/shci.c -index 301db76..cb7d7bd 100644 +index eaa35d7..4525656 100644 --- a/src/utility/STM32Cube_FW/shci.c +++ b/src/utility/STM32Cube_FW/shci.c @@ -16,7 +16,7 @@ @@ -236,7 +213,7 @@ index 301db76..cb7d7bd 100644 } +#endif /* STM32WBxx */ diff --git a/src/utility/STM32Cube_FW/shci_tl.c b/src/utility/STM32Cube_FW/shci_tl.c -index 2b387b1..a336aa6 100644 +index 0f60430..e343809 100644 --- a/src/utility/STM32Cube_FW/shci_tl.c +++ b/src/utility/STM32Cube_FW/shci_tl.c @@ -16,12 +16,13 @@ @@ -275,7 +252,7 @@ index 2b387b1..a336aa6 100644 /* Private functions ---------------------------------------------------------*/ static void TlInit( TL_CmdPacket_t * p_cmdbuffer ) { -@@ -251,3 +266,4 @@ __WEAK void shci_cmd_resp_release(uint32_t flag) +@@ -250,3 +265,4 @@ __WEAK void shci_cmd_resp_release(uint32_t flag) return; } @@ -306,7 +283,7 @@ index 4c92864..4e8c364 100644 } +#endif /* STM32WBxx */ diff --git a/src/utility/STM32Cube_FW/tl_mbox.c b/src/utility/STM32Cube_FW/tl_mbox.c -index 27a998a..ff219b9 100644 +index 27a998a..1139316 100644 --- a/src/utility/STM32Cube_FW/tl_mbox.c +++ b/src/utility/STM32Cube_FW/tl_mbox.c @@ -16,6 +16,7 @@ @@ -329,11 +306,10 @@ index 27a998a..ff219b9 100644 /**< tables */ PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static tListNode FreeBufQueue; PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static tListNode TracesEvtQueue; -@@ -97,8 +99,11 @@ void TL_Init( void ) +@@ -97,8 +99,10 @@ void TL_Init( void ) TL_RefTable.p_sys_table = &TL_SysTable; TL_RefTable.p_mem_manager_table = &TL_MemManagerTable; TL_RefTable.p_traces_table = &TL_TracesTable; -+ +#if 0 TL_RefTable.p_mac_802_15_4_table = &TL_Mac_802_15_4_Table; TL_RefTable.p_zigbee_table = &TL_Zigbee_Table; @@ -341,7 +317,7 @@ index 27a998a..ff219b9 100644 HW_IPCC_Init(); return; -@@ -846,3 +851,4 @@ static void OutputDbgTrace(TL_MB_PacketType_t packet_type, uint8_t* buffer) +@@ -846,3 +850,4 @@ static void OutputDbgTrace(TL_MB_PacketType_t packet_type, uint8_t* buffer) return; } diff --git a/extras/STM32Cube_FW/0002-fix-include-a-timeout-when-waiting-for-the-cmd_resp.patch b/extras/STM32Cube_FW/0002-fix-include-a-timeout-when-waiting-for-the-cmd_resp.patch index feeef35a..07ce6e6e 100644 --- a/extras/STM32Cube_FW/0002-fix-include-a-timeout-when-waiting-for-the-cmd_resp.patch +++ b/extras/STM32Cube_FW/0002-fix-include-a-timeout-when-waiting-for-the-cmd_resp.patch @@ -1,6 +1,6 @@ -From 12683bb7a3f0b0ad1e10400cba0e3694f9b9ee95 Mon Sep 17 00:00:00 2001 +From 5d07a0e5c0463965f8cf8dde6076b5cf2c779e90 Mon Sep 17 00:00:00 2001 From: Frederic Pillon -Date: Mon, 12 Dec 2022 17:17:48 +0100 +Date: Thu, 13 Jul 2023 17:16:40 +0200 Subject: [PATCH 2/4] fix: include a timeout when waiting for the cmd_resp Signed-off-by: Frederic Pillon @@ -9,7 +9,7 @@ Signed-off-by: Frederic Pillon 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/utility/STM32Cube_FW/shci_tl.c b/src/utility/STM32Cube_FW/shci_tl.c -index a336aa6..d1d35f5 100644 +index e343809..6038025 100644 --- a/src/utility/STM32Cube_FW/shci_tl.c +++ b/src/utility/STM32Cube_FW/shci_tl.c @@ -23,6 +23,7 @@ @@ -20,13 +20,12 @@ index a336aa6..d1d35f5 100644 /* Private typedef -----------------------------------------------------------*/ typedef enum -@@ -250,11 +251,12 @@ static void TlUserEvtReceived(TL_EvtPacket_t *shcievt) +@@ -250,10 +251,11 @@ static void TlUserEvtReceived(TL_EvtPacket_t *shcievt) /* Weak implementation ----------------------------------------------------------------*/ __WEAK void shci_cmd_resp_wait(uint32_t timeout) { - (void)timeout; - - CmdRspStatusFlag = SHCI_TL_CMD_RESP_WAIT; - while(CmdRspStatusFlag != SHCI_TL_CMD_RESP_RELEASE); - + for (unsigned long start = millis(); (millis() - start) < timeout;) { diff --git a/extras/STM32Cube_FW/0003-chore-add-support-for-customize-app_conf_default.h.patch b/extras/STM32Cube_FW/0003-chore-add-support-for-customize-app_conf_default.h.patch index e2da2673..e23d54c8 100644 --- a/extras/STM32Cube_FW/0003-chore-add-support-for-customize-app_conf_default.h.patch +++ b/extras/STM32Cube_FW/0003-chore-add-support-for-customize-app_conf_default.h.patch @@ -1,4 +1,4 @@ -From 8575588fedd55cf7238a1a810708100e700e57c0 Mon Sep 17 00:00:00 2001 +From 370e1082edae9b69d50f824db85b5cbe3b786e79 Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Mon, 12 Dec 2022 17:29:27 +0100 Subject: [PATCH 3/4] chore: add support for customize app_conf_default.h @@ -9,7 +9,7 @@ Signed-off-by: Frederic Pillon 1 file changed, 68 insertions(+), 18 deletions(-) diff --git a/src/utility/STM32Cube_FW/app_conf_default.h b/src/utility/STM32Cube_FW/app_conf_default.h -index e89df14..1f17900 100644 +index 1c6dd91..d39492e 100644 --- a/src/utility/STM32Cube_FW/app_conf_default.h +++ b/src/utility/STM32Cube_FW/app_conf_default.h @@ -48,7 +48,9 @@ diff --git a/extras/STM32Cube_FW/0004-fix-TL_Evt_t-payload-size-for-reset.patch b/extras/STM32Cube_FW/0004-fix-TL_Evt_t-payload-size-for-reset.patch new file mode 100644 index 00000000..c239749f --- /dev/null +++ b/extras/STM32Cube_FW/0004-fix-TL_Evt_t-payload-size-for-reset.patch @@ -0,0 +1,30 @@ +From b294edcaee311c15dfb307ea1298ae88b16a92bf Mon Sep 17 00:00:00 2001 +From: Frederic Pillon +Date: Mon, 24 Jul 2023 10:55:20 +0200 +Subject: [PATCH 4/4] fix: TL_Evt_t payload size for reset + +Within STM32CubeWB v1.17.0 update TL_Evt_t payload size was reduced. +This produce a warning -Warray-bounds due to the reset management +which require 4 bytes. + +Signed-off-by: Frederic Pillon +--- + src/utility/STM32Cube_FW/tl.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/utility/STM32Cube_FW/tl.h b/src/utility/STM32Cube_FW/tl.h +index 8e8c6cb..7452087 100644 +--- a/src/utility/STM32Cube_FW/tl.h ++++ b/src/utility/STM32Cube_FW/tl.h +@@ -108,7 +108,7 @@ typedef PACKED_STRUCT + { + uint8_t evtcode; + uint8_t plen; +- uint8_t payload[2]; ++ uint8_t payload[4]; + } TL_Evt_t; + + typedef PACKED_STRUCT +-- +2.38.0.windows.1 + diff --git a/extras/STM32Cube_FW/0004-fix-warning-outside-array-bounds.patch b/extras/STM32Cube_FW/0004-fix-warning-outside-array-bounds.patch deleted file mode 100644 index ae4aed42..00000000 --- a/extras/STM32Cube_FW/0004-fix-warning-outside-array-bounds.patch +++ /dev/null @@ -1,304 +0,0 @@ -From 64caac5c39a47cac4ab840ba975bca065aa40efa Mon Sep 17 00:00:00 2001 -From: Frederic Pillon -Date: Wed, 8 Feb 2023 16:50:46 +0100 -Subject: [PATCH 4/4] fix: warning outside array bounds - -array subscript 'TL_CcEvt_t[0]' is partly outside array bounds - -Signed-off-by: Frederic Pillon ---- - src/utility/STM32Cube_FW/shci.c | 60 ++++++++++++++++----------------- - src/utility/STM32Cube_FW/tl.h | 3 ++ - 2 files changed, 33 insertions(+), 30 deletions(-) - -diff --git a/src/utility/STM32Cube_FW/shci.c b/src/utility/STM32Cube_FW/shci.c -index cb7d7bd..6348145 100644 ---- a/src/utility/STM32Cube_FW/shci.c -+++ b/src/utility/STM32Cube_FW/shci.c -@@ -42,7 +42,7 @@ uint8_t SHCI_C2_FUS_GetState( SHCI_FUS_GetState_ErrorCode_t *p_error_code ) - /** - * A command status event + payload has the same size than the expected command complete - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE + 1]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -66,7 +66,7 @@ SHCI_CmdStatus_t SHCI_C2_FUS_FwUpgrade( uint32_t fw_src_add, uint32_t fw_dest_a - * TL_BLEEVT_CS_BUFFER_SIZE is 15 bytes so it is large enough to hold the 8 bytes of command parameters - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - uint32_t *p_cmd; - uint8_t cmd_length; -@@ -101,7 +101,7 @@ SHCI_CmdStatus_t SHCI_C2_FUS_FwDelete( void ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -119,7 +119,7 @@ SHCI_CmdStatus_t SHCI_C2_FUS_UpdateAuthKey( SHCI_C2_FUS_UpdateAuthKey_Cmd_Param_ - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -137,7 +137,7 @@ SHCI_CmdStatus_t SHCI_C2_FUS_LockAuthKey( void ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -155,7 +155,7 @@ SHCI_CmdStatus_t SHCI_C2_FUS_StoreUsrKey( SHCI_C2_FUS_StoreUsrKey_Cmd_Param_t *p - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE + 1]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - uint8_t local_payload_len; - -@@ -189,7 +189,7 @@ SHCI_CmdStatus_t SHCI_C2_FUS_LoadUsrKey( uint8_t key_index ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -209,7 +209,7 @@ SHCI_CmdStatus_t SHCI_C2_FUS_StartWs( void ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -227,7 +227,7 @@ SHCI_CmdStatus_t SHCI_C2_FUS_LockUsrKey( uint8_t key_index ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -247,7 +247,7 @@ SHCI_CmdStatus_t SHCI_C2_FUS_UnloadUsrKey( uint8_t key_index ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -267,7 +267,7 @@ SHCI_CmdStatus_t SHCI_C2_FUS_ActivateAntiRollback( void ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -285,7 +285,7 @@ SHCI_CmdStatus_t SHCI_C2_BLE_Init( SHCI_C2_Ble_Init_Cmd_Packet_t *pCmdPacket ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -303,7 +303,7 @@ SHCI_CmdStatus_t SHCI_C2_THREAD_Init( void ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -321,7 +321,7 @@ SHCI_CmdStatus_t SHCI_C2_LLDTESTS_Init( uint8_t param_size, uint8_t * p_param ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -339,7 +339,7 @@ SHCI_CmdStatus_t SHCI_C2_BLE_LLD_Init( uint8_t param_size, uint8_t * p_param ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -357,7 +357,7 @@ SHCI_CmdStatus_t SHCI_C2_ZIGBEE_Init( void ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -375,7 +375,7 @@ SHCI_CmdStatus_t SHCI_C2_DEBUG_Init( SHCI_C2_DEBUG_Init_Cmd_Packet_t *pCmdPacket - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -393,7 +393,7 @@ SHCI_CmdStatus_t SHCI_C2_FLASH_EraseActivity( SHCI_EraseActivity_t erase_activit - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -413,7 +413,7 @@ SHCI_CmdStatus_t SHCI_C2_CONCURRENT_SetMode( SHCI_C2_CONCURRENT_Mode_Param_t Mod - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -433,7 +433,7 @@ SHCI_CmdStatus_t SHCI_C2_CONCURRENT_GetNextBleEvtTime( SHCI_C2_CONCURRENT_GetNex - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE+4]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -453,7 +453,7 @@ SHCI_CmdStatus_t SHCI_C2_CONCURRENT_EnableNext_802154_EvtNotification( void ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -471,7 +471,7 @@ SHCI_CmdStatus_t SHCI_C2_FLASH_StoreData( SHCI_C2_FLASH_Ip_t Ip ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -491,7 +491,7 @@ SHCI_CmdStatus_t SHCI_C2_FLASH_EraseData( SHCI_C2_FLASH_Ip_t Ip ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -511,7 +511,7 @@ SHCI_CmdStatus_t SHCI_C2_RADIO_AllowLowPower( SHCI_C2_FLASH_Ip_t Ip,uint8_t Fla - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -532,7 +532,7 @@ SHCI_CmdStatus_t SHCI_C2_MAC_802_15_4_Init( void ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -550,7 +550,7 @@ SHCI_CmdStatus_t SHCI_C2_Reinit( void ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -569,7 +569,7 @@ SHCI_CmdStatus_t SHCI_C2_ExtpaConfig(uint32_t gpio_port, uint16_t gpio_pin_numbe - * TL_BLEEVT_CS_BUFFER_SIZE is 15 bytes so it is large enough to hold the 8 bytes of command parameters - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -593,7 +593,7 @@ SHCI_CmdStatus_t SHCI_C2_SetFlashActivityControl(SHCI_C2_SET_FLASH_ACTIVITY_CONT - * TL_BLEEVT_CS_BUFFER_SIZE is 15 bytes so it is large enough to hold the 1 byte of command parameter - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -613,7 +613,7 @@ SHCI_CmdStatus_t SHCI_C2_Config(SHCI_C2_CONFIG_Cmd_Param_t *pCmdPacket) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -@@ -631,7 +631,7 @@ SHCI_CmdStatus_t SHCI_C2_802_15_4_DeInit( void ) - /** - * Buffer is large enough to hold command complete without payload - */ -- uint8_t local_buffer[TL_BLEEVT_CS_BUFFER_SIZE]; -+ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; - TL_EvtPacket_t * p_rsp; - - p_rsp = (TL_EvtPacket_t *)local_buffer; -diff --git a/src/utility/STM32Cube_FW/tl.h b/src/utility/STM32Cube_FW/tl.h -index 6bfa265..63126b3 100644 ---- a/src/utility/STM32Cube_FW/tl.h -+++ b/src/utility/STM32Cube_FW/tl.h -@@ -61,6 +61,9 @@ extern "C" { - #define TL_BLEEVT_CS_PACKET_SIZE (TL_EVT_HDR_SIZE + sizeof(TL_CsEvt_t)) - #define TL_BLEEVT_CS_BUFFER_SIZE (sizeof(TL_PacketHeader_t) + TL_BLEEVT_CS_PACKET_SIZE) - -+#define TL_BLEEVT_CC_PACKET_SIZE (TL_EVT_HDR_SIZE + sizeof(TL_CcEvt_t)) -+#define TL_BLEEVT_CC_BUFFER_SIZE (sizeof(TL_PacketHeader_t) + TL_BLEEVT_CC_PACKET_SIZE) -+ - /* Exported types ------------------------------------------------------------*/ - /**< Packet header */ - typedef PACKED_STRUCT --- -2.38.0.windows.1 - diff --git a/library.properties b/library.properties index 35083868..da5c1c4c 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=STM32duinoBLE -version=1.2.5 +version=1.2.6 author=Arduino, SRA maintainer=stm32duino sentence=Fork of ArduinoBLE library to add the support of STM32WB, SPBTLE-RF, SPBTLE-1S, BLUENRG-M2SP and BLUENRG-M0 BLE modules. diff --git a/src/utility/STM32Cube_FW/README.md b/src/utility/STM32Cube_FW/README.md index 780e2706..0d39a3ef 100644 --- a/src/utility/STM32Cube_FW/README.md +++ b/src/utility/STM32Cube_FW/README.md @@ -1,6 +1,6 @@ ## Source -[STMicroelectronics/STM32CubeWB Release vvv1.16.0](https://github.com/STMicroelectronics/STM32CubeWB/releases/tag/vvv1.16.0) -- Application: [BLE_TransparentMode](https://github.com/STMicroelectronics/STM32CubeWB/tree/vvv1.16.0/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_TransparentMode) +[STMicroelectronics/STM32CubeWB Release v1.17.0](https://github.com/STMicroelectronics/STM32CubeWB/releases/tag/v1.17.0) +- Application: [BLE_TransparentMode](https://github.com/STMicroelectronics/STM32CubeWB/tree/v1.17.0/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_TransparentMode) diff --git a/src/utility/STM32Cube_FW/app_conf_default.h b/src/utility/STM32Cube_FW/app_conf_default.h index 1f17900d..d39492ea 100644 --- a/src/utility/STM32Cube_FW/app_conf_default.h +++ b/src/utility/STM32Cube_FW/app_conf_default.h @@ -730,5 +730,6 @@ typedef enum #define CFG_OTP_BASE_ADDRESS OTP_AREA_BASE #define CFG_OTP_END_ADRESS OTP_AREA_END_ADDR + #endif #endif /*APP_CONF_DEFAULT_H */ diff --git a/src/utility/STM32Cube_FW/ble_bufsize.h b/src/utility/STM32Cube_FW/ble_bufsize.h index 53cf59a8..d4d28907 100644 --- a/src/utility/STM32Cube_FW/ble_bufsize.h +++ b/src/utility/STM32Cube_FW/ble_bufsize.h @@ -103,11 +103,11 @@ #elif (LL_ONLY != 0) #define BLE_FIXED_BUFFER_SIZE_BYTES 6036 /* LL only Full */ #elif (SLAVE_ONLY != 0) -#define BLE_FIXED_BUFFER_SIZE_BYTES 6292 /* Peripheral only */ +#define BLE_FIXED_BUFFER_SIZE_BYTES 6300 /* Peripheral only */ #elif (BASIC_FEATURES != 0) -#define BLE_FIXED_BUFFER_SIZE_BYTES 6624 /* Basic Features */ +#define BLE_FIXED_BUFFER_SIZE_BYTES 6632 /* Basic Features */ #else -#define BLE_FIXED_BUFFER_SIZE_BYTES 7144 /* Full stack */ +#define BLE_FIXED_BUFFER_SIZE_BYTES 7152 /* Full stack */ #endif /* diff --git a/src/utility/STM32Cube_FW/hw_ipcc.c b/src/utility/STM32Cube_FW/hw_ipcc.c index 3461cbed..c7304823 100644 --- a/src/utility/STM32Cube_FW/hw_ipcc.c +++ b/src/utility/STM32Cube_FW/hw_ipcc.c @@ -17,7 +17,6 @@ ****************************************************************************** */ /* USER CODE END Header */ - #if defined(STM32WBxx) /* Includes ------------------------------------------------------------------*/ #include "hw.h" diff --git a/src/utility/STM32Cube_FW/shci.c b/src/utility/STM32Cube_FW/shci.c index 6348145f..4525656e 100644 --- a/src/utility/STM32Cube_FW/shci.c +++ b/src/utility/STM32Cube_FW/shci.c @@ -40,9 +40,9 @@ uint8_t SHCI_C2_FUS_GetState( SHCI_FUS_GetState_ErrorCode_t *p_error_code ) { /** - * A command status event + payload has the same size than the expected command complete + * Buffer is large enough to hold command complete with payload */ - uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; + uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE + 1]; TL_EvtPacket_t * p_rsp; p_rsp = (TL_EvtPacket_t *)local_buffer; @@ -63,7 +63,7 @@ uint8_t SHCI_C2_FUS_GetState( SHCI_FUS_GetState_ErrorCode_t *p_error_code ) SHCI_CmdStatus_t SHCI_C2_FUS_FwUpgrade( uint32_t fw_src_add, uint32_t fw_dest_add ) { /** - * TL_BLEEVT_CS_BUFFER_SIZE is 15 bytes so it is large enough to hold the 8 bytes of command parameters + * TL_BLEEVT_CC_BUFFER_SIZE is 16 bytes so it is large enough to hold the 8 bytes of command parameters * Buffer is large enough to hold command complete without payload */ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; @@ -153,9 +153,9 @@ SHCI_CmdStatus_t SHCI_C2_FUS_LockAuthKey( void ) SHCI_CmdStatus_t SHCI_C2_FUS_StoreUsrKey( SHCI_C2_FUS_StoreUsrKey_Cmd_Param_t *pParam, uint8_t *p_key_index ) { /** - * Buffer is large enough to hold command complete without payload + * Buffer is large enough to hold command complete with payload */ - uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; + uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE + 1]; TL_EvtPacket_t * p_rsp; uint8_t local_payload_len; @@ -431,9 +431,9 @@ SHCI_CmdStatus_t SHCI_C2_CONCURRENT_SetMode( SHCI_C2_CONCURRENT_Mode_Param_t Mod SHCI_CmdStatus_t SHCI_C2_CONCURRENT_GetNextBleEvtTime( SHCI_C2_CONCURRENT_GetNextBleEvtTime_Param_t *pParam ) { /** - * Buffer is large enough to hold command complete without payload + * Buffer is large enough to hold command complete with payload */ - uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; + uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE+4]; TL_EvtPacket_t * p_rsp; p_rsp = (TL_EvtPacket_t *)local_buffer; @@ -566,7 +566,7 @@ SHCI_CmdStatus_t SHCI_C2_Reinit( void ) SHCI_CmdStatus_t SHCI_C2_ExtpaConfig(uint32_t gpio_port, uint16_t gpio_pin_number, uint8_t gpio_polarity, uint8_t gpio_status) { /** - * TL_BLEEVT_CS_BUFFER_SIZE is 15 bytes so it is large enough to hold the 8 bytes of command parameters + * TL_BLEEVT_CC_BUFFER_SIZE is 16 bytes so it is large enough to hold the 8 bytes of command parameters * Buffer is large enough to hold command complete without payload */ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; @@ -590,7 +590,7 @@ SHCI_CmdStatus_t SHCI_C2_ExtpaConfig(uint32_t gpio_port, uint16_t gpio_pin_numbe SHCI_CmdStatus_t SHCI_C2_SetFlashActivityControl(SHCI_C2_SET_FLASH_ACTIVITY_CONTROL_Source_t Source) { /** - * TL_BLEEVT_CS_BUFFER_SIZE is 15 bytes so it is large enough to hold the 1 byte of command parameter + * TL_BLEEVT_CC_BUFFER_SIZE is 16 bytes so it is large enough to hold the 1 byte of command parameter * Buffer is large enough to hold command complete without payload */ uint8_t local_buffer[TL_BLEEVT_CC_BUFFER_SIZE]; diff --git a/src/utility/STM32Cube_FW/shci.h b/src/utility/STM32Cube_FW/shci.h index d2aa0a58..750fa972 100644 --- a/src/utility/STM32Cube_FW/shci.h +++ b/src/utility/STM32Cube_FW/shci.h @@ -535,7 +535,7 @@ extern "C" { * - bit 4: 1: CS Algo #2 supported 0: CS Algo #2 not supported * - bit 5: 1: Reduced GATT database in NVM 0: Full GATT database in NVM * - bit 6: 1: GATT caching is used 0: GATT caching is not used - * - bit 7: 1: LE Power Class 1 0: LE Power Classe 2-3 + * - bit 7: 1: LE Power Class 1 0: LE Power Class 2-3 * - other bits: complete with Options_extension flag */ uint8_t Options; @@ -668,6 +668,7 @@ extern "C" { */ #define SHCI_C2_BLE_INIT_BLE_CORE_5_2 11 #define SHCI_C2_BLE_INIT_BLE_CORE_5_3 12 +#define SHCI_C2_BLE_INIT_BLE_CORE_5_4 13 /** * LsSource information @@ -904,7 +905,7 @@ extern "C" { #define FUS_DEVICE_INFO_TABLE_VALIDITY_KEYWORD (0xA94656B9) /* - * At startup, the informations relative to the wireless binary are stored in RAM trough a structure defined by + * At startup, the information relative to the wireless binary are stored in RAM through a structure defined by * MB_WirelessFwInfoTable_t.This structure contains 4 fields (Version,MemorySize, Stack_info and a reserved part) * each of those coded on 32 bits as shown on the table below: * @@ -1150,7 +1151,7 @@ typedef struct { * @brief Starts the LLD tests CLI * * @param param_size : Nb of bytes - * @param p_param : pointeur with data to give from M4 to M0 + * @param p_param : pointer with data to give from M4 to M0 * @retval Status */ SHCI_CmdStatus_t SHCI_C2_LLDTESTS_Init( uint8_t param_size, uint8_t * p_param ); @@ -1160,7 +1161,7 @@ typedef struct { * @brief Starts the LLD tests BLE * * @param param_size : Nb of bytes - * @param p_param : pointeur with data to give from M4 to M0 + * @param p_param : pointer with data to give from M4 to M0 * @retval Status */ SHCI_CmdStatus_t SHCI_C2_BLE_LLD_Init( uint8_t param_size, uint8_t * p_param ); @@ -1260,7 +1261,7 @@ typedef struct { /** * SHCI_GetWirelessFwInfo - * @brief This function read back the informations relative to the wireless binary loaded. + * @brief This function read back the information relative to the wireless binary loaded. * Refer yourself to MB_WirelessFwInfoTable_t structure to get the significance * of the different parameters returned. * @param pWirelessInfo : Pointer to WirelessFwInfo_t. diff --git a/src/utility/STM32Cube_FW/shci_tl.c b/src/utility/STM32Cube_FW/shci_tl.c index d1d35f5b..60380251 100644 --- a/src/utility/STM32Cube_FW/shci_tl.c +++ b/src/utility/STM32Cube_FW/shci_tl.c @@ -154,7 +154,7 @@ void shci_send( uint16_t cmd_code, uint8_t len_cmd_payload, uint8_t * p_cmd_payl pCmdBuffer->cmdserial.cmd.plen = len_cmd_payload; memcpy(pCmdBuffer->cmdserial.cmd.payload, p_cmd_payload, len_cmd_payload ); - + CmdRspStatusFlag = SHCI_TL_CMD_RESP_WAIT; shciContext.io.Send(0,0); shci_cmd_resp_wait(SHCI_TL_DEFAULT_TIMEOUT); @@ -251,7 +251,6 @@ static void TlUserEvtReceived(TL_EvtPacket_t *shcievt) /* Weak implementation ----------------------------------------------------------------*/ __WEAK void shci_cmd_resp_wait(uint32_t timeout) { - CmdRspStatusFlag = SHCI_TL_CMD_RESP_WAIT; for (unsigned long start = millis(); (millis() - start) < timeout;) { if (CmdRspStatusFlag == SHCI_TL_CMD_RESP_RELEASE) { break; diff --git a/src/utility/STM32Cube_FW/tl.h b/src/utility/STM32Cube_FW/tl.h index 63126b3d..74520878 100644 --- a/src/utility/STM32Cube_FW/tl.h +++ b/src/utility/STM32Cube_FW/tl.h @@ -58,12 +58,8 @@ extern "C" { #define TL_BLEEVT_CS_OPCODE (0x0F) #define TL_BLEEVT_VS_OPCODE (0xFF) -#define TL_BLEEVT_CS_PACKET_SIZE (TL_EVT_HDR_SIZE + sizeof(TL_CsEvt_t)) -#define TL_BLEEVT_CS_BUFFER_SIZE (sizeof(TL_PacketHeader_t) + TL_BLEEVT_CS_PACKET_SIZE) - #define TL_BLEEVT_CC_PACKET_SIZE (TL_EVT_HDR_SIZE + sizeof(TL_CcEvt_t)) #define TL_BLEEVT_CC_BUFFER_SIZE (sizeof(TL_PacketHeader_t) + TL_BLEEVT_CC_PACKET_SIZE) - /* Exported types ------------------------------------------------------------*/ /**< Packet header */ typedef PACKED_STRUCT @@ -93,7 +89,7 @@ typedef PACKED_STRUCT { uint8_t numcmd; uint16_t cmdcode; - uint8_t payload[255]; + uint8_t payload[2]; } TL_CcEvt_t; /** @@ -102,7 +98,7 @@ typedef PACKED_STRUCT typedef PACKED_STRUCT { uint16_t subevtcode; - uint8_t payload[255]; + uint8_t payload[2]; } TL_AsynchEvt_t; /** @@ -112,7 +108,7 @@ typedef PACKED_STRUCT { uint8_t evtcode; uint8_t plen; - uint8_t payload[255]; + uint8_t payload[4]; } TL_Evt_t; typedef PACKED_STRUCT diff --git a/src/utility/STM32Cube_FW/tl_mbox.c b/src/utility/STM32Cube_FW/tl_mbox.c index ff219b97..11393162 100644 --- a/src/utility/STM32Cube_FW/tl_mbox.c +++ b/src/utility/STM32Cube_FW/tl_mbox.c @@ -99,7 +99,6 @@ void TL_Init( void ) TL_RefTable.p_sys_table = &TL_SysTable; TL_RefTable.p_mem_manager_table = &TL_MemManagerTable; TL_RefTable.p_traces_table = &TL_TracesTable; - #if 0 TL_RefTable.p_mac_802_15_4_table = &TL_Mac_802_15_4_Table; TL_RefTable.p_zigbee_table = &TL_Zigbee_Table; pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy