drivers/segger: add heap note support

Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
This commit is contained in:
xuxingliang 2024-07-06 19:38:29 +08:00 committed by Xiang Xiao
parent 001de69be9
commit f61bfd5608

View File

@ -73,6 +73,11 @@ static void note_sysview_syscall_enter(FAR struct note_driver_s *drv,
static void note_sysview_syscall_leave(FAR struct note_driver_s *drv, static void note_sysview_syscall_leave(FAR struct note_driver_s *drv,
int nr, uintptr_t result); int nr, uintptr_t result);
#endif #endif
#ifdef CONFIG_SCHED_INSTRUMENTATION_HEAP
static void note_sysview_heap(FAR struct note_driver_s *drv,
uint8_t event, FAR void *heap, FAR void *mem,
size_t size);
#endif
/**************************************************************************** /****************************************************************************
* Private Data * Private Data
@ -113,6 +118,9 @@ static const struct note_driver_ops_s g_note_sysview_ops =
#ifdef CONFIG_SCHED_INSTRUMENTATION_IRQHANDLER #ifdef CONFIG_SCHED_INSTRUMENTATION_IRQHANDLER
note_sysview_irqhandler, /* irqhandler */ note_sysview_irqhandler, /* irqhandler */
#endif #endif
#ifdef CONFIG_SCHED_INSTRUMENTATION_HEAP
note_sysview_heap, /* heap */
#endif
}; };
static struct note_sysview_driver_s g_note_sysview_driver = static struct note_sysview_driver_s g_note_sysview_driver =
@ -319,6 +327,28 @@ static void note_sysview_syscall_leave(FAR struct note_driver_s *drv,
} }
#endif #endif
#ifdef CONFIG_SCHED_INSTRUMENTATION_HEAP
static void note_sysview_heap(FAR struct note_driver_s *drv,
uint8_t event, FAR void *heap, FAR void *mem,
size_t size)
{
switch (event)
{
case NOTE_HEAP_ALLOC:
SEGGER_SYSVIEW_HeapAlloc(heap, mem, size);
break;
case NOTE_HEAP_FREE:
SEGGER_SYSVIEW_HeapFree(heap, mem);
break;
case NOTE_HEAP_ADD:
SEGGER_SYSVIEW_HeapDefine(heap, mem, size, 0);
break;
default:
break;
}
}
#endif
/**************************************************************************** /****************************************************************************
* Public Functions * Public Functions
****************************************************************************/ ****************************************************************************/