28
28
#include " bstream.h"
29
29
#include " hci_mbed_os_adaptation.h"
30
30
#include " mbed_trace.h"
31
+ #include " platform/mbed_error.h"
31
32
32
33
/* STM32WB include files */
33
34
#include " stm32wbxx_ll_ipcc.h"
@@ -130,7 +131,8 @@ class HCIDriver : public CordioHCIDriver {
130
131
HciResetCmd ();
131
132
}
132
133
133
- static uint8_t convert_db_to_tx_power_index (int8_t level_db) {
134
+ static uint8_t convert_db_to_tx_power_index (int8_t level_db)
135
+ {
134
136
const int8_t conversion[] = {
135
137
-40 , -21 , -20 , -19 ,
136
138
-18 , -16 , -15 , -14 ,
@@ -151,7 +153,8 @@ class HCIDriver : public CordioHCIDriver {
151
153
return index;
152
154
}
153
155
154
- virtual ble_error_t set_tx_power (int8_t level_db) {
156
+ virtual ble_error_t set_tx_power (int8_t level_db)
157
+ {
155
158
156
159
157
160
uint8_t buf[2 ];
@@ -480,10 +483,29 @@ class TransportDriver : public CordioHCITransportDriver {
480
483
WirelessFwInfo_t wireless_info_instance;
481
484
WirelessFwInfo_t *p_wireless_info = &wireless_info_instance;
482
485
if (SHCI_GetWirelessFwInfo (p_wireless_info) != SHCI_Success) {
483
- tr_info (" SHCI_GetWirelessFwInfo error" );
486
+ tr_error (" SHCI_GetWirelessFwInfo error" );
484
487
} else {
488
+ // https://github.com/STMicroelectronics/STM32CubeWB/tree/master/Projects/STM32WB_Copro_Wireless_Binaries
489
+ // Be sure that you are using the latest BLE FW version
485
490
tr_info (" WIRELESS COPROCESSOR FW VERSION ID = %d.%d.%d" , p_wireless_info->VersionMajor , p_wireless_info->VersionMinor , p_wireless_info->VersionSub );
486
- tr_info (" WIRELESS COPROCESSOR FW STACK TYPE = %d" , p_wireless_info->StackType );
491
+ tr_info (" WIRELESS COPROCESSOR FW STACK TYPE = %d (ROM size 0x%x)" , p_wireless_info->StackType , MBED_ROM_SIZE);
492
+
493
+ #if STM32WB55xx
494
+ switch (p_wireless_info->StackType ) {
495
+ case INFO_STACK_TYPE_BLE_FULL:
496
+ if (MBED_ROM_SIZE > 0xCA000 ) {
497
+ error (" Wrong MBED_ROM_SIZE with BLE FW\n " );
498
+ }
499
+ break ;
500
+ case INFO_STACK_TYPE_BLE_HCI:
501
+ if (MBED_ROM_SIZE > 0xE0000 ) {
502
+ error (" Wrong MBED_ROM_SIZE with HCI FW\n " );
503
+ }
504
+ break ;
505
+ default :
506
+ tr_error (" StackType %u not expected\n " , p_wireless_info->StackType );
507
+ }
508
+ #endif
487
509
}
488
510
}
489
511
}
@@ -532,7 +554,7 @@ class TransportDriver : public CordioHCITransportDriver {
532
554
/* At this stage, we'll need to wait for ready event,
533
555
* passed thru TL_SYS_EvtReceived */
534
556
if (!sysevt_wait ()) {
535
- tr_info (" ERROR booting WB controler" );
557
+ error (" ERROR booting WB controler\n " );
536
558
return ;
537
559
}
538
560
0 commit comments