We use RTX 3.0 for ST STR71x. Now we find a strange thing: the Fault Poll task TCB is lost from os_dly list , it should stay in os_dly list because its task state is WAIT_DLY state and Its stack shows it called delay function. Now Fault Poll task will not be scheduled anymore(always hanging in WAIT_DLY state ). Following is the memory dump and sketch map showing details:
FAULT_PollTask TCB:
0000a3b8 - 00F00300 00000000 00000000 00000000
0000a3c8 - 0000A418 00000000 00000000 00000000 // backwards pointer point to LMMPARCNET_Task TCB
0000a3d8 - 10000001 0000C268 0000B2E8 40015118
LMMPARCNET_Task TCB
0000a418 - 00040300 00000000 00000000 0000A328 //delay pointer point to other TCB , not LMMPARCNET_Task TCB
0000a428 - 0000DFC8 00000009 00000000 00000000 //backwords point pointer to os_dly(delay list head)
0000a438 - 0C000001 00007E90 00007318 40029A00
Os_dly Head
We do not know why , maybe a bug in RTX kernel or an invalid write to the TCB?
what MDK are you using? similar issues were addressed in 4.00. See here: http://www.keil.com/forum/docs/thread15346.asp
Thank you for your useful reply. I use MDK-ARM-V2.50. It seems we have the same root cause. Even worse, my arm uses EIC.