From 46bd2f45d9f8df52d45e71f9bae851ee012f00f2 Mon Sep 17 00:00:00 2001 From: Kaspar Schleiser <kaspar@schleiser.de> Date: Fri, 6 May 2016 22:10:52 +0200 Subject: [PATCH] sys: xtimer: replace XTIMER_MASK with XTIMER_WIDTH in board config --- boards/airfy-beacon/include/board.h | 2 +- boards/arduino-mega2560/include/board.h | 2 +- boards/cc2650stk/include/board.h | 2 +- boards/chronos/include/board.h | 2 +- boards/fox/include/board.h | 2 +- boards/iotlab-common/include/board_common.h | 2 +- boards/msb-430-common/include/board_common.h | 2 +- boards/nrf51dongle/include/board.h | 2 +- boards/nucleo-f103/include/board.h | 2 +- boards/pca10000/include/board.h | 2 +- boards/pca10005/include/board.h | 2 +- boards/spark-core/include/board.h | 2 +- boards/telosb/include/board.h | 2 +- boards/waspmote-pro/include/board.h | 2 +- boards/wsn430-common/include/board_common.h | 2 +- boards/yunjia-nrf51822/include/board.h | 2 +- boards/z1/include/board.h | 2 +- sys/include/xtimer.h | 39 +++++++++++++------- 18 files changed, 43 insertions(+), 30 deletions(-) diff --git a/boards/airfy-beacon/include/board.h b/boards/airfy-beacon/include/board.h index 49b17c03e7..59db7e7200 100644 --- a/boards/airfy-beacon/include/board.h +++ b/boards/airfy-beacon/include/board.h @@ -33,7 +33,7 @@ */ #define XTIMER (0) #define XTIMER_CHAN (0) -#define XTIMER_MASK (0xff000000) +#define XTIMER_WIDTH (24) #define XTIMER_BACKOFF (40) /** @} */ diff --git a/boards/arduino-mega2560/include/board.h b/boards/arduino-mega2560/include/board.h index 5432669417..b09d20df4f 100644 --- a/boards/arduino-mega2560/include/board.h +++ b/boards/arduino-mega2560/include/board.h @@ -56,7 +56,7 @@ extern "C" { * @brief xtimer configuration values * @{ */ -#define XTIMER_MASK (0xffff0000) +#define XTIMER_WIDTH (16) #define XTIMER_SHIFT (2) #define XTIMER_BACKOFF (40) /** @} */ diff --git a/boards/cc2650stk/include/board.h b/boards/cc2650stk/include/board.h index 12754112ca..84d4d8980b 100644 --- a/boards/cc2650stk/include/board.h +++ b/boards/cc2650stk/include/board.h @@ -31,7 +31,7 @@ extern "C" { * @brief Xtimer configuration * @{ */ -#define XTIMER_MASK (0xFFFF0000) +#define XTIMER_WIDTH (16) /** @} */ /** diff --git a/boards/chronos/include/board.h b/boards/chronos/include/board.h index 00dab1df8a..b4d4de2c0f 100644 --- a/boards/chronos/include/board.h +++ b/boards/chronos/include/board.h @@ -40,7 +40,7 @@ extern "C" { */ #define XTIMER (0) #define XTIMER_CHAN (0) -#define XTIMER_MASK (0xffff0000) +#define XTIMER_WIDTH (16) /** @} */ /** diff --git a/boards/fox/include/board.h b/boards/fox/include/board.h index e62bf4c7e2..51540e1ab5 100644 --- a/boards/fox/include/board.h +++ b/boards/fox/include/board.h @@ -36,7 +36,7 @@ extern "C" { /** * @name Tell the xtimer that we use a 16-bit peripheral timer */ -#define XTIMER_MASK (0xffff0000) +#define XTIMER_WIDTH (16) /** * @name Define the interface to the AT86RF231 radio diff --git a/boards/iotlab-common/include/board_common.h b/boards/iotlab-common/include/board_common.h index 29babc2b96..1ecbf33706 100644 --- a/boards/iotlab-common/include/board_common.h +++ b/boards/iotlab-common/include/board_common.h @@ -46,7 +46,7 @@ extern "C" { /** * @name Tell the xtimer that we use a 16-bit peripheral timer */ -#define XTIMER_MASK (0xffff0000) +#define XTIMER_WIDTH (16) /** * @name Define the interface to the AT86RF231 radio diff --git a/boards/msb-430-common/include/board_common.h b/boards/msb-430-common/include/board_common.h index 72d856dcb7..e87fd8eb38 100644 --- a/boards/msb-430-common/include/board_common.h +++ b/boards/msb-430-common/include/board_common.h @@ -39,7 +39,7 @@ extern "C" { */ #define XTIMER (0) #define XTIMER_CHAN (0) -#define XTIMER_MASK (0xffff0000) +#define XTIMER_WIDTH (16) #define XTIMER_BACKOFF (40) /** @} */ diff --git a/boards/nrf51dongle/include/board.h b/boards/nrf51dongle/include/board.h index 3e3ee91c66..c215c36973 100644 --- a/boards/nrf51dongle/include/board.h +++ b/boards/nrf51dongle/include/board.h @@ -34,7 +34,7 @@ extern "C" { */ #define XTIMER (0) #define XTIMER_CHAN (0) -#define XTIMER_MASK (0xff000000) +#define XTIMER_WIDTH (24) #define XTIMER_BACKOFF (40) /** @} */ diff --git a/boards/nucleo-f103/include/board.h b/boards/nucleo-f103/include/board.h index 7641bd1b37..944ba64d1b 100755 --- a/boards/nucleo-f103/include/board.h +++ b/boards/nucleo-f103/include/board.h @@ -35,7 +35,7 @@ extern "C" { /** * @name xtimer configuration */ -#define XTIMER_MASK (0xffff0000) +#define XTIMER_WIDTH (16) #define XTIMER_BACKOFF 5 /** @} */ diff --git a/boards/pca10000/include/board.h b/boards/pca10000/include/board.h index 11ee1dcbb3..490a8b491d 100644 --- a/boards/pca10000/include/board.h +++ b/boards/pca10000/include/board.h @@ -34,7 +34,7 @@ extern "C" { */ #define XTIMER (0) #define XTIMER_CHAN (0) -#define XTIMER_MASK (0xff000000) +#define XTIMER_WIDTH (24) #define XTIMER_BACKOFF (40) /** @} */ diff --git a/boards/pca10005/include/board.h b/boards/pca10005/include/board.h index ab8a291f77..a3d2c2b656 100644 --- a/boards/pca10005/include/board.h +++ b/boards/pca10005/include/board.h @@ -34,7 +34,7 @@ extern "C" { */ #define XTIMER (0) #define XTIMER_CHAN (0) -#define XTIMER_MASK (0xff000000) +#define XTIMER_WIDTH (24) #define XTIMER_BACKOFF (40) /** @} */ diff --git a/boards/spark-core/include/board.h b/boards/spark-core/include/board.h index 3e0895eecd..3909af7abf 100644 --- a/boards/spark-core/include/board.h +++ b/boards/spark-core/include/board.h @@ -38,7 +38,7 @@ /** * @name Tell the xtimer that we use a 16-bit peripheral timer */ -#define XTIMER_MASK (0xffff0000) +#define XTIMER_WIDTH (16) /** * @brief Macros for controlling the on-board LEDs diff --git a/boards/telosb/include/board.h b/boards/telosb/include/board.h index a3e36ab473..e5136a19f2 100644 --- a/boards/telosb/include/board.h +++ b/boards/telosb/include/board.h @@ -56,7 +56,7 @@ extern "C" { */ #define XTIMER (0) #define XTIMER_CHAN (0) -#define XTIMER_MASK (0xffff0000) +#define XTIMER_WIDTH (16) #define XTIMER_BACKOFF (40) /** @} */ diff --git a/boards/waspmote-pro/include/board.h b/boards/waspmote-pro/include/board.h index 6ed7ad4f47..a63f84aaa7 100644 --- a/boards/waspmote-pro/include/board.h +++ b/boards/waspmote-pro/include/board.h @@ -154,7 +154,7 @@ extern "C" { * @brief xtimer configuration values * @{ */ -#define XTIMER_MASK (0xffff0000) +#define XTIMER_WIDTH (16) #define XTIMER_SHIFT (4) #define XTIMER_BACKOFF (40) #define XTIMER_TICKS_INIT (921600ul) diff --git a/boards/wsn430-common/include/board_common.h b/boards/wsn430-common/include/board_common.h index 1942986328..08734f92f3 100644 --- a/boards/wsn430-common/include/board_common.h +++ b/boards/wsn430-common/include/board_common.h @@ -39,7 +39,7 @@ extern "C" { */ #define XTIMER (0) #define XTIMER_CHAN (0) -#define XTIMER_MASK (0xffff0000) +#define XTIMER_WIDTH (16) #define XTIMER_BACKOFF (40) /** @} */ diff --git a/boards/yunjia-nrf51822/include/board.h b/boards/yunjia-nrf51822/include/board.h index 22f21e9905..2442f045e5 100644 --- a/boards/yunjia-nrf51822/include/board.h +++ b/boards/yunjia-nrf51822/include/board.h @@ -33,7 +33,7 @@ extern "C" { */ #define XTIMER (0) #define XTIMER_CHAN (0) -#define XTIMER_MASK (0xff000000) +#define XTIMER_WIDTH (24) #define XTIMER_BACKOFF (40) /** @} */ diff --git a/boards/z1/include/board.h b/boards/z1/include/board.h index 4698181e04..0e2fde78a1 100644 --- a/boards/z1/include/board.h +++ b/boards/z1/include/board.h @@ -50,7 +50,7 @@ extern "C" { */ #define XTIMER (0) #define XTIMER_CHAN (0) -#define XTIMER_MASK (0xffff0000) +#define XTIMER_WIDTH (16) #define XTIMER_BACKOFF (40) /** @} */ diff --git a/sys/include/xtimer.h b/sys/include/xtimer.h index 1d6bec9899..9759fa7c2c 100644 --- a/sys/include/xtimer.h +++ b/sys/include/xtimer.h @@ -357,26 +357,38 @@ int xtimer_msg_receive_timeout64(msg_t *msg, uint64_t us); #define XTIMER_TICKS_TO_USEC(value) ( (value) << XTIMER_SHIFT ) #endif -/** - * @brief set xtimer default timer configuration - * @{ +/* + * Default xtimer configuration */ #ifndef XTIMER -#define XTIMER (0) +/** + * @brief Underlying hardware timer device to assign to xtimer + */ +#define XTIMER TIMER_DEV(0) +/** + * @brief Underlying hardware timer channel to assign to xtimer + */ #define XTIMER_CHAN (0) -#if TIMER_0_MAX_VALUE == 0xffffff -#define XTIMER_MASK 0xff000000 -#elif TIMER_0_MAX_VALUE == 0xffff -#define XTIMER_MASK 0xffff0000 +#if (TIMER_0_MAX_VALUE) == 0xfffffful +#define XTIMER_WIDTH (24) +#elif (TIMER_0_MAX_VALUE) == 0xffff +#define XTIMER_WIDTH (16) #endif #endif + +#ifndef XTIMER_WIDTH /** - * @} + * @brief xtimer timer width + * + * This value specifies the width (in bits) of the hardware timer used by xtimer. + * Default is 32. */ +#define XTIMER_WIDTH (32) +#endif -#ifndef XTIMER_MASK +#if XTIMER_WIDTH != 32 /** * @brief xtimer timer mask * @@ -384,12 +396,13 @@ int xtimer_msg_receive_timeout64(msg_t *msg, uint64_t us); * counts to, e.g., 0xffffffff & ~TIMER_MAXVALUE. * * For a 16bit timer, the mask would be 0xFFFF0000, for a 24bit timer, the mask - * would be 0xFF000000. Don't set this for 32bit timers. - * - * This is supposed to be defined per-device in e.g., periph_conf.h. + * would be 0xFF000000. */ +#define XTIMER_MASK ((0xffffffff >> XTIMER_WIDTH) << XTIMER_WIDTH) +#else #define XTIMER_MASK (0) #endif + #define XTIMER_MASK_SHIFTED XTIMER_TICKS_TO_USEC(XTIMER_MASK) #if XTIMER_MASK -- GitLab