aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-07-31 10:26:40 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-07-31 10:26:40 +0000
commit16044c7aeac671a4914749a387a6c526f0b2fdce (patch)
treebaf7912859ac2444e67873aa5113208ff23efe5b
parent2c0ef77243a78e374c60b01dae1bd02057d7f12d (diff)
downloadChibiOS-16044c7aeac671a4914749a387a6c526f0b2fdce.tar.gz
ChibiOS-16044c7aeac671a4914749a387a6c526f0b2fdce.tar.bz2
ChibiOS-16044c7aeac671a4914749a387a6c526f0b2fdce.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6053 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--demos/ARMCM4-STM32F303-DISCOVERY/chconf.h12
-rw-r--r--os/kernel/include/chtm.h3
-rw-r--r--os/kernel/src/chtm.c6
-rw-r--r--os/ports/GCC/ARMCMx/chtypes.h1
4 files changed, 13 insertions, 9 deletions
diff --git a/demos/ARMCM4-STM32F303-DISCOVERY/chconf.h b/demos/ARMCM4-STM32F303-DISCOVERY/chconf.h
index 5671e9038..727f9de89 100644
--- a/demos/ARMCM4-STM32F303-DISCOVERY/chconf.h
+++ b/demos/ARMCM4-STM32F303-DISCOVERY/chconf.h
@@ -359,7 +359,7 @@
* @note The default is @p FALSE.
*/
#if !defined(CH_DBG_SYSTEM_STATE_CHECK) || defined(__DOXYGEN__)
-#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+#define CH_DBG_SYSTEM_STATE_CHECK FALSE
#endif
/**
@@ -370,7 +370,7 @@
* @note The default is @p FALSE.
*/
#if !defined(CH_DBG_ENABLE_CHECKS) || defined(__DOXYGEN__)
-#define CH_DBG_ENABLE_CHECKS TRUE
+#define CH_DBG_ENABLE_CHECKS FALSE
#endif
/**
@@ -382,7 +382,7 @@
* @note The default is @p FALSE.
*/
#if !defined(CH_DBG_ENABLE_ASSERTS) || defined(__DOXYGEN__)
-#define CH_DBG_ENABLE_ASSERTS TRUE
+#define CH_DBG_ENABLE_ASSERTS FALSE
#endif
/**
@@ -393,7 +393,7 @@
* @note The default is @p FALSE.
*/
#if !defined(CH_DBG_ENABLE_TRACE) || defined(__DOXYGEN__)
-#define CH_DBG_ENABLE_TRACE TRUE
+#define CH_DBG_ENABLE_TRACE FALSE
#endif
/**
@@ -407,7 +407,7 @@
* @p panic_msg variable set to @p NULL.
*/
#if !defined(CH_DBG_ENABLE_STACK_CHECK) || defined(__DOXYGEN__)
-#define CH_DBG_ENABLE_STACK_CHECK TRUE
+#define CH_DBG_ENABLE_STACK_CHECK FALSE
#endif
/**
@@ -419,7 +419,7 @@
* @note The default is @p FALSE.
*/
#if !defined(CH_DBG_FILL_THREADS) || defined(__DOXYGEN__)
-#define CH_DBG_FILL_THREADS TRUE
+#define CH_DBG_FILL_THREADS FALSE
#endif
/**
diff --git a/os/kernel/include/chtm.h b/os/kernel/include/chtm.h
index b72bff8e6..93e24d48c 100644
--- a/os/kernel/include/chtm.h
+++ b/os/kernel/include/chtm.h
@@ -63,8 +63,9 @@
typedef struct {
rtcnt_t best; /**< @brief Best measurement. */
rtcnt_t worst; /**< @brief Worst measurement. */
- rtcnt_t cumulative; /**< @brief Cumulative measurement. */
rtcnt_t last; /**< @brief Last measurement. */
+ ucnt_t n; /**< @brief Number of measurements. */
+ rttime_t cumulative; /**< @brief Cumulative measurement. */
} time_measurement_t;
/*===========================================================================*/
diff --git a/os/kernel/src/chtm.c b/os/kernel/src/chtm.c
index 2bec0cc1c..e54bacbbf 100644
--- a/os/kernel/src/chtm.c
+++ b/os/kernel/src/chtm.c
@@ -60,8 +60,9 @@ static inline void tm_stop(time_measurement_t *tmp,
rtcnt_t now,
rtcnt_t offset) {
+ tmp->n++;
tmp->last = now - tmp->last - offset;
- tmp->cumulative += tmp->last;
+ tmp->cumulative += (rttime_t)tmp->last;
if (tmp->last > tmp->worst)
tmp->worst = tmp->last;
else if (tmp->last < tmp->best)
@@ -101,8 +102,9 @@ void chTMObjectInit(time_measurement_t *tmp) {
tmp->best = (rtcnt_t)-1;
tmp->worst = (rtcnt_t)0;
- tmp->cumulative = (rtcnt_t)0;
tmp->last = (rtcnt_t)0;
+ tmp->n = (ucnt_t)0;
+ tmp->cumulative = (rttime_t)0;
}
/**
diff --git a/os/ports/GCC/ARMCMx/chtypes.h b/os/ports/GCC/ARMCMx/chtypes.h
index f20c43bd8..bf9932b93 100644
--- a/os/ports/GCC/ARMCMx/chtypes.h
+++ b/os/ports/GCC/ARMCMx/chtypes.h
@@ -36,6 +36,7 @@
typedef bool bool_t; /**< Fast boolean type. */
typedef uint32_t systime_t; /**< System time. */
typedef uint32_t rtcnt_t; /**< Realtime counter. */
+typedef uint64_t rttime_t; /**< Time accumulator. */
typedef uint32_t syssts_t; /**< System status word. */
typedef uint8_t tmode_t; /**< Thread flags. */
typedef uint8_t tstate_t; /**< Thread state. */