I've run into an interesting situation here. I'm using KDS 3.0, KSDK 1.2, and MQX for KSDK.
If I start my application and pause it, I can see the MQX task list and MQX stack usage by opening their tabs. I have MQX_MONITOR_STACK added to my preprocessor definitions so that I can get at the stack info. Everything looks great at this point.
Then I send a command to my board, which kicks off some activity in another task. After it's done, I pause execution so I can look at the stack usage, and the info is blank and the window is gray. The same goes for the task list. Basically, I can't get at any MQX info. However, the application still appears to run normally.
In the Console window, this is what I see:
Performing single step...
...Target halted (PC = 0x0001938A)
Reading all registers
Read 4 bytes @ address 0x0001938A (Data = 0xF8D368FB)
Removing breakpoint @ address 0x00006CC4, Size = 2
Removing breakpoint @ address 0x00018434, Size = 2
Reading 64 bytes @ address 0x20001500
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x0001A890 (Data = 0xB082B580)
Reading 64 bytes @ address 0x00000000
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20001720 (Data = 0x00000000)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20001580 (Data = 0x20001094)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 2 bytes @ address 0x2000177C (Data = 0x0000)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20001744 (Data = 0x00000000)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x2000172C (Data = 0x00000000)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20001548 (Data = 0x00000008)
Read 4 bytes @ address 0x2000154C (Data = 0x00000001)
Read 2 bytes @ address 0x20001550 (Data = 0x0000)
Read 2 bytes @ address 0x20001552 (Data = 0x000F)
Read 2 bytes @ address 0x20001554 (Data = 0x000F)
Read 2 bytes @ address 0x20001556 (Data = 0x0002)
Read 2 bytes @ address 0x20001558 (Data = 0x30B8)
Read 2 bytes @ address 0x2000155A (Data = 0x0008)
Read 2 bytes @ address 0x2000155C (Data = 0x0000)
Read 2 bytes @ address 0x2000155E (Data = 0x0040)
Read 2 bytes @ address 0x20001560 (Data = 0x0000)
Read 2 bytes @ address 0x20001562 (Data = 0x0000)
Read 4 bytes @ address 0x20001564 (Data = 0x200013C4)
Read 4 bytes @ address 0x20001568 (Data = 0x20001084)
Read 4 bytes @ address 0x2000156C (Data = 0x20000E74)
Read 4 bytes @ address 0x20001570 (Data = 0x000193DD)
Read 4 bytes @ address 0x20001574 (Data = 0x00000000)
Read 4 bytes @ address 0x20001578 (Data = 0x00000065)
Read 4 bytes @ address 0x2000157C (Data = 0x00000000)
Read 4 bytes @ address 0x20001580 (Data = 0x20001094)
Read 4 bytes @ address 0x20001584 (Data = 0x1FFFFFF0)
Read 4 bytes @ address 0x20001588 (Data = 0x00000000)
Read 4 bytes @ address 0x2000158C (Data = 0x00000000)
Read 4 bytes @ address 0x20001590 (Data = 0x00000000)
Read 4 bytes @ address 0x20001594 (Data = 0x00000000)
Read 4 bytes @ address 0x2000162C (Data = 0x0000057B)
Read 4 bytes @ address 0x20001630 (Data = 0x00000000)
Read 4 bytes @ address 0x20001634 (Data = 0x00000000)
Read 4 bytes @ address 0x20001638 (Data = 0x00000020)
Read 4 bytes @ address 0x2000163C (Data = 0x00000001)
Read 4 bytes @ address 0x2000164C (Data = 0x00000006)
Read 4 bytes @ address 0x20001650 (Data = 0x20002530)
Read 4 bytes @ address 0x20001688 (Data = 0x00000000)
Read 4 bytes @ address 0x200016B0 (Data = 0x00000000)
Read 4 bytes @ address 0x200016B4 (Data = 0x00000000)
Read 4 bytes @ address 0x200016B8 (Data = 0x000000C8)
Read 4 bytes @ address 0x200016BC (Data = 0x00000000)
Read 4 bytes @ address 0x200016C0 (Data = 0x00019999)
Read 4 bytes @ address 0x200016C4 (Data = 0x0001B245)
Read 4 bytes @ address 0x200016C8 (Data = 0x00000000)
Read 4 bytes @ address 0x20001780 (Data = 0x00000000)
Read 4 bytes @ address 0x20001784 (Data = 0x00000000)
Read 4 bytes @ address 0x20001788 (Data = 0x00000000)
Read 4 bytes @ address 0x200017F4 (Data = 0x00000000)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 2 bytes @ address 0x200017E4 (Data = 0x0000)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20001744 (Data = 0x00000000)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20001734 (Data = 0x00000000)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 2 bytes @ address 0x200017F0 (Data = 0x0001)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 2 bytes @ address 0x20001668 (Data = 0x000D)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20001724 (Data = 0x00000000)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20001738 (Data = 0x00000000)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x2000156C (Data = 0x20000E74)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x2000171C (Data = 0x00000000)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 2 bytes @ address 0x20001648 (Data = 0x0005)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20001654 (Data = 0x00000000)
Read 4 bytes @ address 0x0002D5F0 (Data = 0x05000200)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 2 bytes @ address 0x20001648 (Data = 0x0005)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20001640 (Data = 0x200038AC)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20000000 (Data = 0x20001548)
Read 4 bytes @ address 0x20001564 (Data = 0x200013C4)
Reading 148 bytes @ address 0x20003840
Read 4 bytes @ address 0x200038A8 (Data = 0x200038D4)
Read 4 bytes @ address 0x200038E4 (Data = 0x0002C510)
Reading 8 bytes @ address 0x0002C510
Reading 32 bytes @ address 0x0002C510
Read 4 bytes @ address 0x2000385C (Data = 0x20000F14)
Read 2 bytes @ address 0x20000F22 (Data = 0x0017)
Read 4 bytes @ address 0x200038CC (Data = 0x00000000)
Reading 8192 bytes @ address 0x20003900
Reading 7984 bytes @ address 0x20005900
Read 4 bytes @ address 0x200038AC (Data = 0x20001430)
Reading 148 bytes @ address 0x200013C4
Read 4 bytes @ address 0x2000142C (Data = 0x20001458)
Read 4 bytes @ address 0x20001468 (Data = 0x0002B504)
Reading 8 bytes @ address 0x0002B504
Reading 8 bytes @ address 0x0002B50C
Reading 32 bytes @ address 0x0002B504
Read 4 bytes @ address 0x200013E0 (Data = 0x20000E74)
Read 2 bytes @ address 0x20000E82 (Data = 0x0021)
Read 4 bytes @ address 0x20001450 (Data = 0x00000000)
Reading 192 bytes @ address 0x20001480
Read 4 bytes @ address 0x20001430 (Data = 0x20002A3C)
Reading 148 bytes @ address 0x200029D0
Read 4 bytes @ address 0x20002A38 (Data = 0x00000000)
Read 4 bytes @ address 0x00000010 (Data = 0x000184BD)
Reading 8 bytes @ address 0x000184BD
Reading 32 bytes @ address 0x000184BD
Read 4 bytes @ address 0x200029EC (Data = 0x20000F14)
Read 2 bytes @ address 0x20000F22 (Data = 0x0017)
Read 4 bytes @ address 0x20002A5C (Data = 0x00000000)
Reading 816 bytes @ address 0x20002A90
Read 4 bytes @ address 0x20002A3C (Data = 0xFFFFFFED)
Reading 148 bytes @ address 0xFFFFFF80
WARNING: Failed to read memory @ address 0xFFFFFF80
WARNING: Failed to read memory @ address 0xFFFFFF80
Read 1 bytes @ address 0x00000013 (Data = 0x00)
Reading 74 bytes @ address 0xFFFFFFC9
WARNING: Failed to read memory @ address 0xFFFFFFC9
Reading 37 bytes @ address 0xFFFFFFEE
WARNING: Failed to read memory @ address 0xFFFFFFEE
Reading 19 bytes @ address 0x00000000
Reading 9 bytes @ address 0xFFFFFFF7
WARNING: Failed to read memory @ address 0xFFFFFFF7
Reading 5 bytes @ address 0xFFFFFFFB
WARNING: Failed to read memory @ address 0xFFFFFFFB
WARNING: Failed to read memory @ address 0xFFFFFFFD
WARNING: Failed to read memory @ address 0xFFFFFFFE
WARNING: Failed to read memory @ address 0xFFFFFFFF
WARNING: Failed to read memory @ address 0xFFFFFFE9
The lines of interest say "WARNING: Failed to read memory". In the case where the MQX tabs work, I don't get the memory warning. But if I do get this warning, I'm pretty much guaranteed that the task info isn't going to be available.
I have a few questions:
Thanks!
I'm going to temporarily answer part of my own question:
1. It looks like this is a case of a task running out of stack space. I actually have a related question regarding MQX and stack usage, but will post that as a separate question.
3. Memory corruption is one of those things where it'll look like it's working, but deep down under, things are not executing as planned. It's just a matter of time until something misbehaves, which is eventually what happened in my case.