Help us improve the Power & Sensing Selection Guide. Share feedback

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable


I had been using SDK-2.4.0 and recently I changed to SDK-2.4.1. I tried to run the UART receive program which I wrote in SDK-2.4.0 in the new SDK. The program worked fine in SDK-2.4.0 but it is not working properly in 2.4.1. The wiced_uart_receive_bytes() function always return WICED_ERROR.

This is my function call.

result = wiced_uart_receive_bytes( WICED_SELECTED_UART, receiveData, RX_BUFFER_SIZE ,receiveTimeOut);

when I checked the receiveData, it has received the data correctly. But still the function returns WICED_ERROR.

I went inside the function definition in


And found a line in platform_uart_receive_bytes() function.

uart_interfaces[uart].rx_dma_result = WICED_ERROR;

if ( timeout > 0 )


      host_rtos_get_semaphore( &uart_interfaces[uart].rx_complete, timeout, WICED_TRUE );

      return uart_interfaces[uart].rx_dma_result;


I suspected "return uart_interfaces[uart].rx_dma_result" is always returning WICED_ERROR and when I commented it, the program is working fine.

In SDK-2.4.0, this line is not present (I compared this file with previous version).

Am I missing something ? Please help me. My eval board has BCM943362WCD4.

2 Replies
Level 4
Level 4
First like received

I think rx_dma_result is assigned from an interrupt. It is just setting the default value.

We are using SDK 2.4.1 with uart to talk to another device. It is working fine for us.

Not applicable

ok Thanks . I will try with some other examples and keep u posted.