Other Parts Discussed in Thread: CC3200
Hi team,
Here's the request from the customer:
Developing with CC3235MODSF, SPI adopts master mode, data width is two bytes, both tx and rx channels are connected to DMA (dual DMA channels), run WIFI-AP mode on tirtos system. Calling sl_Recv to receive host computer data through DMA and transmitting by SPI, the data received by SPI DMA is sent to the host computer through sl_Send.
Customer's question is When the packets he sent and received are small, there is no problem, the whole process is smooth. When the data increased to 1460 bytes a packet (DMA size is set to 1460 bytes), SPI transmitted is normal, but the SPI RX DMA got stuck after receiving a packet of 1460 and then calling sl_Send. The program was stuck waiting for the second packet of 1460 to be received. The second trigger of SPI-RX-DMA had no response, and the SPI was not working. After testing, as long as sl_Send is not called, the SPI RX DMA can work smoothly. The sl_Send function is blocking and waiting, which means that he starts calling SPI RX DMA after ensuring that sl_Send has sent 1460 bytes, but the result was still stuck.
The same code is no problem on the CC3200 with freertos. How to deal with it?
Could you help check this case? Thanks.
Best Regards,
Nick