Tool/software:
Hello,
I am troubleshooting a critical issue in my TI-RTOS application. Here are the details:
• Task Name: Operator Task
• Task Priority: 4
• Task Purpose: Feeds the watchdog every 50ms.
• Issue Observed: The Operator task remains blocked on a GateMutex and fails to execute as expected, causing the watchdog to not be fed.
Observations from RTOS Object View (ROV):
1. The Operator task is blocked on a GateMutex (0x200377fc).
2. Heap Memory:
• Total Size: 0x10000
• Total Free Size: 0x7550
• Largest Free Block: 0x74C0
• Heap memory appears sufficient.
3. Call Stack (Attached Screenshot):
• The Operator task appears blocked while trying to allocate memory.
• The failure seems related to a std::string operation in Var_Presenter.cpp, line 63, specifically during a std::replace operation.
4. Code Context (Attached Screenshot):
• The blocking point corresponds to a std::replace operation on a std::string object in the Var_Presenter::Update() function.
Debugging Steps Taken:
1. Verified heap memory in the HeapMem ROV module—free space and the largest free block seem adequate.
2. Checked the call stack, which suggests a memory allocation issue, possibly due to std::string operations in the Operator Task involved in manipulating a string used for a display update in the Var_Presenter::Update() function.
3. We looked at HeapTrack to view the timing of tasks, did not help with any Operator task based information.
Request for Help:
Are there specific recommendations for debugging or resolving GateMutex and heap allocation failures in TI-RTOS?
Any insights or guidance would be greatly appreciated!
Thank you!
Mahima