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 );
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.
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.