Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
As I am working with Smartbridge, I noticed that a call to wiced_bt_smartbridge_deinit() function makes my program crash. After few investigations, I have pointed out a bug in the sub-layers of this function.
Just to remind, here is the content of the function itself :
while ( wiced_rtos_get_semaphore( &subprocedure.done_semaphore, WICED_NO_WAIT ) == WICED_BT_SUCCESS )
So, the problem is in smartbridge_bt_interface_deinitialize() function, in which there is a call to subprocedure_reset() which manipulates the semaphore after a call to wiced_rtos_deinit_semaphore( &subprocedure.done_semaphore ) which removes the semaphore itself.
So the solution I found simply consists in switching those two calls :