From 2d1275263785e579fed8e728a779aae90d22bf79 Mon Sep 17 00:00:00 2001 From: Benjamin Walsh Date: Thu, 20 Aug 2015 15:59:19 -0400 Subject: [PATCH] sys_clock: make public some timing utilities Make these public: - SECONDS(x): macro that gives the number of ticks in x seconds - MSEC(x): macro that gives the number of ticks in x milliseconds - MSEC_PER_SEC: number of milliseconds per second - USEC_PER_MSEC: number of microseconds per millisecond Change-Id: Ic5dbf9349651a477b066edb0c6b6721da2b7e5bb Signed-off-by: Benjamin Walsh --- include/sys_clock.h | 14 ++++++++++++++ kernel/microkernel/k_idle.c | 2 -- samples/include/util_test_common.h | 3 +-- samples/microkernel/apps/nfc_hello/src/main.c | 1 - .../microkernel/benchmark/app_kernel/src/master.c | 2 -- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/include/sys_clock.h b/include/sys_clock.h index cd8a14f3d43..60114bfc6cb 100644 --- a/include/sys_clock.h +++ b/include/sys_clock.h @@ -68,6 +68,12 @@ extern int sys_clock_hw_cycles_per_tick; /* number of nsec per usec */ #define NSEC_PER_USEC 1000 +/* number of microseconds per millisecond */ +#define USEC_PER_MSEC 1000 + +/* number of milliseconds per second */ +#define MSEC_PER_SEC 1000 + /* SYS_CLOCK_HW_CYCLES_TO_NS64 converts CPU clock cycles to nanoseconds */ #define SYS_CLOCK_HW_CYCLES_TO_NS64(X) \ (((uint64_t)(X) * sys_clock_us_per_tick * NSEC_PER_USEC) / \ @@ -85,6 +91,14 @@ extern int sys_clock_hw_cycles_per_tick; extern int64_t _nano_ticks; extern struct nano_timer *_nano_timer_list; +/* + * Number of ticks for x seconds. NOTE: With MSEC(), since it does an integer + * division, x must be greater or equal to 1000/sys_clock_ticks_per_sec to get + * a non-zero value. + */ +#define SECONDS(x) ((x) * sys_clock_ticks_per_sec) +#define MSEC(x) (SECONDS(x) / 1000) + #endif /* !_ASMLANGUAGE */ #endif /* _SYS_CLOCK__H_ */ diff --git a/kernel/microkernel/k_idle.c b/kernel/microkernel/k_idle.c index 0172573aa06..bf36421cbbd 100644 --- a/kernel/microkernel/k_idle.c +++ b/kernel/microkernel/k_idle.c @@ -64,8 +64,6 @@ static volatile unsigned int _k_workload_end_time = 0x0; static extern uint32_t _k_workload_scale; #endif -#define MSEC_PER_SEC 1000 - /** * * @brief Shared code between workload calibration and monitoring diff --git a/samples/include/util_test_common.h b/samples/include/util_test_common.h index ad66a211b86..b97977e4d1f 100644 --- a/samples/include/util_test_common.h +++ b/samples/include/util_test_common.h @@ -39,7 +39,6 @@ Common utility-type macros for use in the sample projects. #ifndef _UTIL_TEST_COMMON__H_ #define _UTIL_TEST_COMMON__H_ -#define SECONDS(x) ((x) * sys_clock_ticks_per_sec) -#define MSEC(x) (((x) * sys_clock_ticks_per_sec) / 1000) +/* nothing currently */ #endif /* _UTIL_TEST_COMMON__H_ */ diff --git a/samples/microkernel/apps/nfc_hello/src/main.c b/samples/microkernel/apps/nfc_hello/src/main.c index 30416b7ed5d..a72492fd4b7 100644 --- a/samples/microkernel/apps/nfc_hello/src/main.c +++ b/samples/microkernel/apps/nfc_hello/src/main.c @@ -41,7 +41,6 @@ #define UART1_IRQ COM2_INT_LVL #define UART1_INT_PRI COM2_INT_PRI #define BUF_MAXSIZE 256 -#define MSEC(_ms) ((_ms) * sys_clock_ticks_per_sec / 1000) #define D(fmt, args...) \ do { \ diff --git a/samples/microkernel/benchmark/app_kernel/src/master.c b/samples/microkernel/benchmark/app_kernel/src/master.c index 387b0870583..2a55f9d9871 100644 --- a/samples/microkernel/benchmark/app_kernel/src/master.c +++ b/samples/microkernel/benchmark/app_kernel/src/master.c @@ -41,8 +41,6 @@ #include "master.h" -#define SECONDS(x) ((x) * sys_clock_ticks_per_sec) - char Msg[MAX_MSG]; char data_bench[OCTET_TO_SIZEOFUNIT(MESSAGE_SIZE)];