UHSDR/UHSDR-active-devel/mchf-eclipse/misc/profiling.c
2022-11-08 16:13:55 +01:00

70 lines
2.5 KiB
C

/* -*- mode: c; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4; coding: utf-8 -*- */
/************************************************************************************
** **
** mcHF QRP Transceiver **
** K Atanassov - M0NKA 2014 **
** **
**---------------------------------------------------------------------------------**
** **
** File name: **
** Description: **
** Last Modified: **
** Licence: GNU GPLv3 **
************************************************************************************/
// Common
#include "uhsdr_board.h"
#include "profiling.h"
/*
* In order to read the counters here, you'll need to connect
* using a real-time debugger, pause execution and read values.
* Not a big deal with ST-Link and Eclipse or gdb.
*/
EventProfile_t eventProfile;
#if 0
// the code below is only used to ease profiling with eclipse
// you just need hover over a variable to get the value
void dummy() {
eventProfile.event[0].duration;
eventProfile.event[0].count;
eventProfile.event[1].duration;
eventProfile.event[1].count;
eventProfile.event[2].duration;
eventProfile.event[2].count;
eventProfile.event[3].duration;
eventProfile.event[3].count;
eventProfile.event[4].duration;
eventProfile.event[4].count;
eventProfile.event[5].duration;
eventProfile.event[5].count;
eventProfile.event[6].duration;
eventProfile.event[6].count;
eventProfile.event[7].duration;
eventProfile.event[7].count;
eventProfile.event[8].duration;
eventProfile.event[8].count;
}
#endif
void profileEventsTracePrint()
{
#ifdef XPROFILE_EVENTS
for (int i = 0;i < 10;i++)
{
ProfilingTimedEvent* ev_ptr = profileTimedEventGet(i);
if (ev_ptr->count != 0)
{
trace_printf("%d: %d uS per run\n",i, (ev_ptr->duration/(ev_ptr->count*168)));
}
}
#endif
}