diff --git a/platforms/qurt/src/px4_layer/drv_hrt.c b/platforms/qurt/src/px4_layer/drv_hrt.c index dc67e6703a..052a9b24e1 100644 --- a/platforms/qurt/src/px4_layer/drv_hrt.c +++ b/platforms/qurt/src/px4_layer/drv_hrt.c @@ -39,6 +39,7 @@ #include #include +#include #include #include #include @@ -49,12 +50,6 @@ static struct sq_queue_s callout_queue; -/* latency histogram */ -#define LATENCY_BUCKET_COUNT 8 -__EXPORT const uint16_t latency_bucket_count = LATENCY_BUCKET_COUNT; -__EXPORT const uint16_t latency_buckets[LATENCY_BUCKET_COUNT] = { 1, 2, 5, 10, 20, 50, 100, 1000 }; -__EXPORT uint32_t latency_counters[LATENCY_BUCKET_COUNT + 1]; - static void hrt_call_reschedule(void); // Intervals in ms diff --git a/src/drivers/kinetis/drv_hrt.c b/src/drivers/kinetis/drv_hrt.c index bc2bc437ca..3b0ea70468 100644 --- a/src/drivers/kinetis/drv_hrt.c +++ b/src/drivers/kinetis/drv_hrt.c @@ -178,13 +178,6 @@ static uint16_t latency_baseline; /* timer count at interrupt (for latency purposes) */ static uint16_t latency_actual; -/* latency histogram */ -#define LATENCY_BUCKET_COUNT 8 -__EXPORT const uint16_t latency_bucket_count = LATENCY_BUCKET_COUNT; -__EXPORT const uint16_t latency_buckets[LATENCY_BUCKET_COUNT] = { 1, 2, 5, 10, 20, 50, 100, 1000 }; -__EXPORT uint32_t latency_counters[LATENCY_BUCKET_COUNT + 1]; - - /* timer-specific functions */ static void hrt_tim_init(void); static int hrt_tim_isr(int irq, void *context, void *args); diff --git a/src/drivers/samv7/drv_hrt.c b/src/drivers/samv7/drv_hrt.c index cc6f94dd11..d1adc7ae24 100644 --- a/src/drivers/samv7/drv_hrt.c +++ b/src/drivers/samv7/drv_hrt.c @@ -192,13 +192,6 @@ static uint16_t latency_baseline; /* timer count at interrupt (for latency purposes) */ static uint16_t latency_actual; -/* latency histogram */ -#define LATENCY_BUCKET_COUNT 8 -__EXPORT const uint16_t latency_bucket_count = LATENCY_BUCKET_COUNT; -__EXPORT const uint16_t latency_buckets[LATENCY_BUCKET_COUNT] = { 1, 2, 5, 10, 20, 50, 100, 1000 }; -__EXPORT uint32_t latency_counters[LATENCY_BUCKET_COUNT + 1]; - - /* timer-specific functions */ static void hrt_tim_init(void); static void hrt_tim_isr(TC_HANDLE tch, void *arg, uint32_t sr); diff --git a/src/drivers/stm32/drv_hrt.c b/src/drivers/stm32/drv_hrt.c index 15a2a33215..4fc6d1f220 100644 --- a/src/drivers/stm32/drv_hrt.c +++ b/src/drivers/stm32/drv_hrt.c @@ -61,6 +61,7 @@ #include #include +#include #include "stm32_gpio.h" @@ -255,13 +256,6 @@ static uint16_t latency_baseline; /* timer count at interrupt (for latency purposes) */ static uint16_t latency_actual; -/* latency histogram */ -#define LATENCY_BUCKET_COUNT 8 -__EXPORT const uint16_t latency_bucket_count = LATENCY_BUCKET_COUNT; -__EXPORT const uint16_t latency_buckets[LATENCY_BUCKET_COUNT] = { 1, 2, 5, 10, 20, 50, 100, 1000 }; -__EXPORT uint32_t latency_counters[LATENCY_BUCKET_COUNT + 1]; - - /* timer-specific functions */ static void hrt_tim_init(void); static int hrt_tim_isr(int irq, void *context, void *arg); diff --git a/src/lib/perf/perf_counter.c b/src/lib/perf/perf_counter.c index e1a4e16de9..6fc752b137 100644 --- a/src/lib/perf/perf_counter.c +++ b/src/lib/perf/perf_counter.c @@ -48,6 +48,11 @@ #include "perf_counter.h" +/* latency histogram */ +__EXPORT const uint16_t latency_bucket_count = LATENCY_BUCKET_COUNT; +__EXPORT const uint16_t latency_buckets[LATENCY_BUCKET_COUNT] = { 1, 2, 5, 10, 20, 50, 100, 1000 }; +__EXPORT uint32_t latency_counters[LATENCY_BUCKET_COUNT + 1]; + #ifdef __PX4_QURT // There is presumably no dprintf on QURT. Therefore use the usual output to mini-dm. @@ -597,11 +602,6 @@ perf_print_all(int fd) pthread_mutex_unlock(&perf_counters_mutex); } -// these are defined in drv_hrt.c -extern const uint16_t latency_bucket_count; -extern uint32_t latency_counters[]; -extern const uint16_t latency_buckets[]; - void perf_print_latency(int fd) { diff --git a/src/lib/perf/perf_counter.h b/src/lib/perf/perf_counter.h index 2993d17ad2..923ebdbc70 100644 --- a/src/lib/perf/perf_counter.h +++ b/src/lib/perf/perf_counter.h @@ -42,6 +42,12 @@ #include #include +#define LATENCY_BUCKET_COUNT 8 + +extern const uint16_t latency_bucket_count; +extern const uint16_t latency_buckets[LATENCY_BUCKET_COUNT]; +extern uint32_t latency_counters[LATENCY_BUCKET_COUNT + 1]; + /** * Counter types. */ diff --git a/src/systemcmds/perf/perf.c b/src/systemcmds/perf/perf.c index 7e0f083f2a..8daa4a6bba 100644 --- a/src/systemcmds/perf/perf.c +++ b/src/systemcmds/perf/perf.c @@ -44,13 +44,6 @@ __EXPORT int perf_main(int argc, char *argv[]); -/* latency histogram */ -#define LATENCY_BUCKET_COUNT 8 -__EXPORT const uint16_t latency_bucket_count = LATENCY_BUCKET_COUNT; -__EXPORT const uint16_t latency_buckets[LATENCY_BUCKET_COUNT] = { 1, 2, 5, 10, 20, 50, 100, 1000 }; -__EXPORT uint32_t latency_counters[LATENCY_BUCKET_COUNT + 1]; - - static void print_usage(void) { PRINT_MODULE_DESCRIPTION("Tool to print performance counters");