Merge pull request 'Added STA_DEBUG_HEAP_STATS for debugging' (#17) from heap-debugging into main

Reviewed-on: https://git.intern.spaceteamaachen.de/ALPAKA/rtos2-utils/pulls/17
This commit is contained in:
carlwachter 2023-12-01 06:23:44 +00:00
commit ca2ffc853c
2 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,29 @@
/*
* heap_stats.hpp
*
* Created on: Nov 21, 2023
* Author: Dario
*/
#ifndef RTOS_DEBUG_HEAP_STATS_HPP
#define RTOS_DEBUG_HEAP_STATS_HPP
#include <sta/config.hpp>
#ifdef STA_DEBUGGING_ENABLED
#include <sta/debug/debug.hpp>
void printHeapStats();
/**
* @brief Print the current heap stats.
*/
# define STA_DEBUG_HEAP_STATS() printHeapStats()
#else
# define STA_DEBUG_HEAP_STATS() ((void)0)
#endif // STA_DEBUGGING_ENABLED
#endif /* RTOS_DEBUG_HEAP_STATS_HPP */

31
src/debug/heap_stats.cpp Normal file
View File

@ -0,0 +1,31 @@
/*
* heap_stats.cpp
*
* Created on: Nov 21, 2023
* Author: Dario
*/
#include <sta/rtos/debug/heap_stats.hpp>
#ifdef STA_DEBUGGING_ENABLED
#include <FreeRTOS.h>
#include <cmsis_os2.h>
void printHeapStats()
{
xHeapStats stats;
vPortGetHeapStats(&stats);
STA_DEBUG_PRINTF(
"[HEAP STATS] \n Available: %d\n Lowest: %d\n Mallocs: %d\n Frees: %d",
stats.xAvailableHeapSpaceInBytes,
stats.xMinimumEverFreeBytesRemaining,
stats.xNumberOfSuccessfulAllocations,
stats.xNumberOfSuccessfulFrees
);
}
#endif // STA_DEBUGGING_ENABLED