Debugging Memory Management & Task Scheduling Issues in FreeRTOS on ESP32
Hey guys while developing a FreeRTOS-based realtime application on ESP32 to manage multiple industrial sensors, l've encountered system crashes and memory management issues, likely due to stack overflows and improper task scheduling.
I've previously tried standard debugging methods like increasing stack size and adjusting task priorities. Would advanced tools like FreeRTOS Tracealyzer or ESP-IDF's built-in debugging be more effective for this scenario? Additionally, when it comes to memory management, should I focus on static memory allocation to avoid fragmentation, or is dynamic allocation more efficient in handling varying task loads?
4 Replies
If i am better off using advanced debugging tools like FreeRTOS Tracealyzer or ESP-IDF's built-in debugging to resolve system crashes and memory issues in my application? And also, for optimal performance, should I prioritize static or dynamic memory allocation?
So which one is it? Are you looking for a better debugging tool? If yes to debug what kind of issue? Which ones have you tried?
Performance what does performance have to do with the debugging and what do you mean by performance so that you need to choose between static and dynamic memory allocation.
It is not clear what you want to achieve or how and to what end
Yes i am looking for an advanced debugging tool to identify and resolve system crashes and memory issues caused by suspected stack overflows and task scheduling issues so far i tried the standard debugging methods (increasing stack size and adjusting task priorities) basically what i want to achieve is a stable and efficient operation.
Then regarding the memory allocation i am just deciding between static and dynamic allocation to handle varying task loads
Those are not debugging methods really to be honest it just seems like
doing stuff
If you have system crashes and memory issues you are better off finding the root causes of those issues before applying random solutions. There are reasons for choosing between static and dynamic allocations. Widely known reasons I'd suggest looking into those.