This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28377D: The IPC register is not set according to the preset condition, causing the program not to enter while(1)

Part Number: TMS320F28377D
Other Parts Discussed in Thread: SYSBIOS, C2000WARE

Hi Team,

Here's an issue form the customer may need your help:

Program crashes when running offline in Flash.
I set the flag bit in Task. Every time the program enters a Task, the flag will be incremented once. I found through modbus that when the program runs offline, the flag bit increases first and then remains unchanged, so it is speculated that the Task is blocked. But I don't know why.

I called the ROV online debugging and found that the memory overflowed (it took a long time to run until the program did not work). As shown below:

SO1

Then I found out that the reason is that the IPC register is not set according to the preset situation, so the program does not enter while(1). The IPC functions in the two CPUs are as follows:

Here is my understanding:
(1) After CPU1 executes IPCSET.10, it detects that IPCFLG.10=1 (I added a while(1) statement to ensure that the setting is completed, which is also where the problem occurs when the program runs offline). CPU2 detected IPCSTS.10=1;
(2) CPU2 executes the data read statement with IPCSTS.10 as the judgment condition. After completing the data transfer, CPU2 executes IPCACK.10 to clear the flag bit. At this time, CPU2 detects that IPCSTS.10=0. Will IPCFLG in CPU1 be cleared?
Why doesn't the IPC finish set and go to while(1)? How can I ensure that the two CPUs can successfully complete the assertion? How can I test it?

When I block while(IpcRegs.IPCFLG.bit.IPC10 == 0){while_flag2 = 4;}, the program can run offline. But there are similar statements in CPU2, why does CPU2 not enter an infinite loop? Is this something to do with SYSBIOS?

Thanks & Regards

Yale Li