Other Parts Discussed in Thread: CC3100, CC3200
Currently I observe very rarely (once a week) blocks in sl_Stop() / SL_DRV_SYNC_OBJ_WAIT_TIMEOUT / _SlDrvRxHdrRead.
Anaylsing _SlDrvRxHdrRead it blocks in
/* read while first 4 bytes are different than last 4 bytes */
while ( *(_u32 *)&pBuf[0] == *(_u32 *)&pBuf[4])
{
NWP_IF_READ_CHECK(g_pCB->FD, &pBuf[4], 4);
}
with 02000000 02000000 in the pBuf and second 02000000 repeatly read from SPI and therfore blocking.
Try to understand the behaviour, I read

but now I'm wondering, how that specification is aligned to your code?
1. NWP_IF_WRITE_CHECK(g_pCB->FD, (_u8 *)&g_H2NCnysPattern.Short, SYNC_PATTERN_LEN);
write a sync pattern, but I'm not sure, in which order the bytes are written.My debugger shows 65877856, according your spec it should be related to 0x8765567x.
2. /* 2. Read 8 bytes (protocol aligned) - expected to be the sync pattern */
NWP_IF_READ_CHECK(g_pCB->FD, &pBuf[0], 8);
_SL_DBG_SYNC_LOG(SyncCnt,pBuf);
/* read while first 4 bytes are different than last 4 bytes */
while ( *(_u32 *)&pBuf[0] == *(_u32 *)&pBuf[4])
{
NWP_IF_READ_CHECK(g_pCB->FD, &pBuf[4], 4);
}
I'm not sure, how this is related to your specification.
On success I get "BEDCCDAB BEDCCDAB" and it changes to "BEDCCDAB 07140800".
On failure it stucks on "02000000 02000000" (as mentioned above).
So any proposal?
