aboutsummaryrefslogtreecommitdiffstats
path: root/os
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-01-20 12:26:50 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-01-20 12:26:50 +0000
commit151ca1d309f2d350527a73676c5aa47f5c2fa921 (patch)
treec82b2f25a3558cb7171b9eec7ec7229673f806a0 /os
parent841ab0b70ee492a215cb5fab48b60df40b9d8f5d (diff)
downloadChibiOS-151ca1d309f2d350527a73676c5aa47f5c2fa921.tar.gz
ChibiOS-151ca1d309f2d350527a73676c5aa47f5c2fa921.tar.bz2
ChibiOS-151ca1d309f2d350527a73676c5aa47f5c2fa921.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6634 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os')
-rw-r--r--os/hal/include/st.h48
-rw-r--r--os/hal/src/st.c65
-rw-r--r--os/rt/ports/ARMCMx/chcore_timer.h34
3 files changed, 86 insertions, 61 deletions
diff --git a/os/hal/include/st.h b/os/hal/include/st.h
index 43d64f643..ebe906f1c 100644
--- a/os/hal/include/st.h
+++ b/os/hal/include/st.h
@@ -69,50 +69,6 @@
#define stGetCounter() st_lld_get_counter()
/**
- * @brief Starts the alarm.
- * @note Makes sure that no spurious alarms are triggered after
- * this call.
- * @note This functionality is only available in free running mode, the
- * behaviour in periodic mode is undefined.
- *
- * @param[in] time the time to be set for the first alarm
- *
- * @api
- */
-#define stStartAlarm(time) st_lld_start_alarm(time)
-
-/**
- * @brief Stops the alarm interrupt.
- * @note This functionality is only available in free running mode, the
- * behaviour in periodic mode is undefined.
- *
- * @api
- */
-#define stStopAlarm() st_lld_stop_alarm()
-
-/**
- * @brief Sets the alarm time.
- * @note This functionality is only available in free running mode, the
- * behaviour in periodic mode is undefined.
- *
- * @param[in] time the time to be set for the next alarm
- *
- * @api
- */
-#define stSetAlarm(time) st_lld_set_alarm(time)
-
-/**
- * @brief Returns the current alarm time.
- * @note This functionality is only available in free running mode, the
- * behaviour in periodic mode is undefined.
- *
- * @return The currently set alarm time.
- *
- * @api
- */
-#define stGetAlarm() st_lld_get_alarm()
-
-/**
* @brief Determines if the alarm is active.
*
* @return The alarm status.
@@ -132,6 +88,10 @@
extern "C" {
#endif
void stInit(void);
+ void stStartAlarm(systime_t time);
+ void stStopAlarm(void);
+ void stSetAlarm(systime_t time);
+ systime_t stGetAlarm(void);
#ifdef __cplusplus
}
#endif
diff --git a/os/hal/src/st.c b/os/hal/src/st.c
index f2e8f3bf2..afb4466fa 100644
--- a/os/hal/src/st.c
+++ b/os/hal/src/st.c
@@ -66,6 +66,71 @@ void stInit(void) {
st_lld_init();
}
+
+/**
+ * @brief Starts the alarm.
+ * @note Makes sure that no spurious alarms are triggered after
+ * this call.
+ * @note This functionality is only available in free running mode, the
+ * behavior in periodic mode is undefined.
+ *
+ * @param[in] time the time to be set for the first alarm
+ *
+ * @api
+ */
+void stStartAlarm(systime_t time) {
+
+ osalDbgAssert(stIsAlarmActive() == false, "already active");
+
+ st_lld_start_alarm(time);
+}
+
+/**
+ * @brief Stops the alarm interrupt.
+ * @note This functionality is only available in free running mode, the
+ * behavior in periodic mode is undefined.
+ *
+ * @api
+ */
+void stStopAlarm(void) {
+
+ osalDbgAssert(stIsAlarmActive() != false, "not active");
+
+ st_lld_stop_alarm();
+}
+
+/**
+ * @brief Sets the alarm time.
+ * @note This functionality is only available in free running mode, the
+ * behavior in periodic mode is undefined.
+ *
+ * @param[in] time the time to be set for the next alarm
+ *
+ * @api
+ */
+void stSetAlarm(systime_t time) {
+
+ osalDbgAssert(stIsAlarmActive() != false, "not active");
+
+ st_lld_set_alarm(time);
+}
+
+/**
+ * @brief Returns the current alarm time.
+ * @note This functionality is only available in free running mode, the
+ * behavior in periodic mode is undefined.
+ *
+ * @return The currently set alarm time.
+ *
+ * @api
+ */
+systime_t stGetAlarm(void) {
+
+ osalDbgAssert(stIsAlarmActive() != false, "not active");
+
+ return st_lld_get_alarm();
+}
+
#endif /* OSAL_ST_MODE != OSAL_ST_MODE_NONE */
/** @} */
diff --git a/os/rt/ports/ARMCMx/chcore_timer.h b/os/rt/ports/ARMCMx/chcore_timer.h
index 548da4afe..0ddf0a9bb 100644
--- a/os/rt/ports/ARMCMx/chcore_timer.h
+++ b/os/rt/ports/ARMCMx/chcore_timer.h
@@ -60,6 +60,14 @@
/* Module macros. */
/*===========================================================================*/
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module inline functions. */
+/*===========================================================================*/
+
/**
* @brief Starts the alarm.
* @note Makes sure that no spurious alarms are triggered after
@@ -69,9 +77,9 @@
*
* @notapi
*/
-#define port_timer_start_alarm(time) { \
- chDbgAssert(stIsAlarmActive() == false, "already active"); \
- stStartAlarm(time); \
+static inline void port_timer_start_alarm(systime_t time) {
+
+ stStartAlarm(time);
}
/**
@@ -79,9 +87,9 @@
*
* @notapi
*/
-#define port_timer_stop_alarm() { \
- chDbgAssert(stIsAlarmActive() != false, "not active"); \
- stStopAlarm(); \
+static inline void port_timer_stop_alarm(void) {
+
+ stStopAlarm();
}
/**
@@ -91,18 +99,10 @@
*
* @notapi
*/
-#define port_timer_set_alarm(time) { \
- chDbgAssert(stIsAlarmActive() != false, "not active"); \
- stSetAlarm(time); \
-}
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
+static inline void port_timer_set_alarm(systime_t time) {
-/*===========================================================================*/
-/* Module inline functions. */
-/*===========================================================================*/
+ stSetAlarm(time);
+}
/**
* @brief Returns the system time.