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.

TSK and SWI hung

Other Parts Discussed in Thread: TMS320DM648

Hi!

We have the following system:

TMS320DM648
DSP/BIOS 5.42
CCS 5.3
CGT 7.4.1

The following entries can usually be observed in our system log:

Clock interrupt runs every millisecond and updates the current time:
CLK: current time = 203921
clock interrupt ISR runs PRD_tick which updates the system time:
PRD: tick count = 203921
and posts a software interrupt for the scheduler:
SWI: post KNL_swi (TSK scheduler)
After the timer ISR is finished the posted software interrupt for the scheduler is run:
SWI: begin KNL_swi (TSK scheduler)
<... optional lines with scheduler actions ...>
SWI: end KNL_swi (TSK scheduler) state = done

However, the system becomes unresponsive from time to time. When it happens the system log looks as follows:
CLK: current time = 203923
PRD: tick count = 203923
SWI: post KNL_swi (TSK scheduler)
SWI: begin KNL_swi (TSK scheduler)
SWI: end KNL_swi (TSK scheduler) state = done
CLK: current time = 203924
PRD: tick count = 203924
SWI: post KNL_swi (TSK scheduler)
CLK: current time = 203925
PRD: tick count = 203925
CLK: current time = 203926
PRD: tick count = 203926
CLK: current time = 203927

...
PRD: tick count = 203988
CLK: current time = 203989
PRD: tick count = 203989
SEM: post 0xe07e7dcc
SWI: post KNL_swi (TSK scheduler)
SWI: begin PRD_swi
PRD: begin end
SEM: post Some_Queue
PRD: end
SWI: end PRD_SWIHANDLE state = done
SWI: begin KNL_swi (TSK scheduler)
TSK: ready TaskA
TSK: ready TaskB
TSK: ready TaskC
TSK: ready TaskD
TSK: running TaskE
SWI: end KNL_swi (TSK scheduler) state = done

The system log basically tells us that KNL_swi suddenly stopped beeding served after the timer ISR.
No tasks are run during that period.
Not even the periodic function is run.
It looks that hardware interrupts are served anyway (we have seen not only the timer interrupt running but some other interrupts as well).

The first guess whould be that the software interrupts are disabled. However, we never call SWI_disable in our code.
What can be the reason for such a behaviour?
We do not have the source code for DSP/BIOS. What are debug strategies in such a situation?
For example, maybe there are some data structures in SWI or TSK modules which can be examined to clarify the situation?