Dear Support:
I am using my CC1354P10-1 LP and running with TI-RTOS with SDK v6.41 and have several threads running where 1 thread is doing processing and passing data off to another thread that is doing additional processing and then sending a message to another thread that is transmitting the radio packets. Semaphores are used between the threads for proper handshaking so that all packets are getting properly processed and transmitted per expectations. However at some point (5 to 30 seconds and appears randomly) the processor locks up and when stopped with the debugger, the program counter is always located here (highlighted in yellow):
//*****************************************************************************
//
// Send a radio operation to the doorbell and wait for an acknowledgement
//
//*****************************************************************************
uint32_t RFCDoorbellSendTo(uint32_t pOp)
{
// Wait until the doorbell becomes available
while(HWREG(RFC_DBELL_BASE + RFC_DBELL_O_CMDR) != 0);
RFCAckIntClear();
// Submit the command to the CM0 through the doorbell
HWREG(RFC_DBELL_BASE + RFC_DBELL_O_CMDR) = pOp;
// Wait until the CM0 starts to parse the command
while(!HWREG(RFC_DBELL_BASE + RFC_DBELL_O_RFACKIFG));
RFCAckIntClear();
// Return with the content of status register
return(HWREG(RFC_DBELL_BASE + RFC_DBELL_O_CMDSTA));
}
I have tried a bunch of different things to help isolate the problem from adding delay to print statements to changing thread priorities and nothing works. However from just stabbing in the dark, I found that if I uncheck the box "Enable Policy" in the Power section of the .syscfg file that if fixes the problem - everything runs continuually and no more lock-ups.
So a few questions:
1.) Do you know what is going on here and why this is happenining and why does unchecking this box fix the problem?
2.) What is purpuse of having this checkbox checked and what is the downside of disabling it?
Please advise.
Thanks,
Tim