From 10a6a01271053053c64077fee56d0cb8444123b6 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 10 Aug 2013 11:49:48 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6121 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/include/chglobal.h | 12 ++++++++++++ os/kernel/src/chstats.c | 26 ++++++++++---------------- os/kernel/src/chtm.c | 11 +++-------- 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/os/kernel/include/chglobal.h b/os/kernel/include/chglobal.h index 4bbc0775b..0d49d9a45 100644 --- a/os/kernel/include/chglobal.h +++ b/os/kernel/include/chglobal.h @@ -120,6 +120,18 @@ typedef struct ch_system { * @brief Virtual timers delta list header. */ virtual_timers_list_t vtlist; +#if CH_CFG_USE_TM || defined(__DOXYGEN__) + /** + * @brief Measurement calibration value. + */ + rtcnt_t measurement_offset; +#endif +#if CH_DBG_STATISTICS || defined(__DOXYGEN__) + /** + * @brief Global kernel statistics. + */ + kernel_stats_t kernel_stats; +#endif #if CH_DBG_ENABLED || defined(__DOXYGEN__) /** * @brief Pointer to the panic message. diff --git a/os/kernel/src/chstats.c b/os/kernel/src/chstats.c index 06ac21d1d..653d8da77 100644 --- a/os/kernel/src/chstats.c +++ b/os/kernel/src/chstats.c @@ -39,11 +39,6 @@ /* Module exported variables. */ /*===========================================================================*/ -/** - * @brief Global kernel statistics. - */ -kernel_stats_t kernel_stats; - /*===========================================================================*/ /* Module local types. */ /*===========================================================================*/ @@ -67,19 +62,18 @@ kernel_stats_t kernel_stats; */ void _stats_init(void) { - kernel_stats.n_irq = 0; - kernel_stats.n_ctxswc = 0; - chTMObjectInit(&kernel_stats.m_crit_thd); - chTMObjectInit(&kernel_stats.m_crit_isr); + ch.kernel_stats.n_irq = 0; + ch.kernel_stats.n_ctxswc = 0; + chTMObjectInit(&ch.kernel_stats.m_crit_thd); + chTMObjectInit(&ch.kernel_stats.m_crit_isr); } - /** * @brief Increases the IRQ counter. */ void _stats_increase_irq(void) { - kernel_stats.n_irq++; + ch.kernel_stats.n_irq++; } /** @@ -87,7 +81,7 @@ void _stats_increase_irq(void) { */ void _stats_ctxswc(thread_t *ntp, thread_t *otp) { - kernel_stats.n_ctxswc++; + ch.kernel_stats.n_ctxswc++; chTMChainMeasurementToX(&otp->p_stats, &ntp->p_stats); } @@ -96,7 +90,7 @@ void _stats_ctxswc(thread_t *ntp, thread_t *otp) { */ void _stats_start_measure_crit_thd(void) { - chTMStartMeasurementX(&kernel_stats.m_crit_thd); + chTMStartMeasurementX(&ch.kernel_stats.m_crit_thd); } /** @@ -104,7 +98,7 @@ void _stats_start_measure_crit_thd(void) { */ void _stats_stop_measure_crit_thd(void) { - chTMStopMeasurementX(&kernel_stats.m_crit_thd); + chTMStopMeasurementX(&ch.kernel_stats.m_crit_thd); } /** @@ -112,7 +106,7 @@ void _stats_stop_measure_crit_thd(void) { */ void _stats_start_measure_crit_isr(void) { - chTMStartMeasurementX(&kernel_stats.m_crit_isr); + chTMStartMeasurementX(&ch.kernel_stats.m_crit_isr); } /** @@ -120,7 +114,7 @@ void _stats_start_measure_crit_isr(void) { */ void _stats_stop_measure_crit_isr(void) { - chTMStopMeasurementX(&kernel_stats.m_crit_isr); + chTMStopMeasurementX(&ch.kernel_stats.m_crit_isr); } #endif /* CH_DBG_STATISTICS */ diff --git a/os/kernel/src/chtm.c b/os/kernel/src/chtm.c index e54bacbbf..24239e0e2 100644 --- a/os/kernel/src/chtm.c +++ b/os/kernel/src/chtm.c @@ -47,11 +47,6 @@ /* Module local variables. */ /*===========================================================================*/ -/** - * @brief Measurement calibration value. - */ -static rtcnt_t measurement_offset; - /*===========================================================================*/ /* Module local functions. */ /*===========================================================================*/ @@ -84,11 +79,11 @@ void _tm_init(void) { /* Time Measurement subsystem calibration, it does a null measurement and calculates the call overhead which is subtracted to real measurements.*/ - measurement_offset = 0; + ch.measurement_offset = 0; chTMObjectInit(&tm); chTMStartMeasurementX(&tm); chTMStopMeasurementX(&tm); - measurement_offset = tm.last; + ch.measurement_offset = tm.last; } /** @@ -130,7 +125,7 @@ NOINLINE void chTMStartMeasurementX(time_measurement_t *tmp) { */ NOINLINE void chTMStopMeasurementX(time_measurement_t *tmp) { - tm_stop(tmp, chSysGetRealtimeCounterX(), measurement_offset); + tm_stop(tmp, chSysGetRealtimeCounterX(), ch.measurement_offset); } #endif /* CH_CFG_USE_TM */ -- cgit v1.2.3