Hello,
I have ported the host driver to use SPI on the LPC1343 cortex-m3 processor. For the most part, everything seems to be working. I can connect to networks, set up server, accept clients, and send data.
However, sometimes when trying to receive (using recv) the CC3000 seems to hang, causing my host code to hang in a while loop: (amount of time until this happens varies)
unsigned char *
hci_event_handler(void *pRetParams, unsigned char *from, unsigned char *fromlen)
{
...
while (1)
{
if (tSLInformation.usEventOrDataReceived != 0)
...
many others seem to have had problems at this location.
I have viewed the CS and IRQ lines on the oscilloscope. Every IRQ is at least being serviced because I can see the CS line asserted for each IRQ assertion. Right before the hanging event, there is one final read operation, and then the IRQ line remains high permanently, and recv function hangs.
Any ideas on how to solve this issue? Since HCI is undocumented, I can't think of a way to pinpoint the issue.
EDIT: I have discovered it is not entirely related to "recv." Even if I don't attempt to receive data, if the client sends data to the CC3000 server over TCP, the CC3000 and host will tend to hang during some API call, even "send" for example.
But this problem doesn't happen if the client doesn't send data to the CC3000 server.