From c4642d4164a060a53886edd4706ab18c256a329c Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 2 Nov 2014 10:33:19 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7459 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c | 1 - os/hal/templates/mac_lld.h | 4 +- os/hal/templates/rtc_lld.c | 147 +++++++++++++++++++++++++++++++++ os/hal/templates/rtc_lld.h | 122 +++++++++++++++++++++++++++ 4 files changed, 271 insertions(+), 3 deletions(-) create mode 100644 os/hal/templates/rtc_lld.c create mode 100644 os/hal/templates/rtc_lld.h diff --git a/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c b/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c index 0fc75de6c..6e706e3c8 100644 --- a/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c +++ b/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c @@ -392,7 +392,6 @@ void rtc_lld_get_alarm(RTCDriver *rtcp, } #endif /* RTC_ALARMS > 0 */ - #if STM32_RTC_HAS_PERIODIC_WAKEUPS || defined(__DOXYGEN__) /** * @brief Sets time of periodic wakeup. diff --git a/os/hal/templates/mac_lld.h b/os/hal/templates/mac_lld.h index 5f4631c16..9a536543b 100644 --- a/os/hal/templates/mac_lld.h +++ b/os/hal/templates/mac_lld.h @@ -87,11 +87,11 @@ struct MACDriver { /** * @brief Transmit semaphore. */ - semaphore_t tdsem; + threads_queue_t tdqueue; /** * @brief Receive semaphore. */ - semaphore_t rdsem; + threads_queue_t rdqueue; #if MAC_USE_EVENTS || defined(__DOXYGEN__) /** * @brief Receive event. diff --git a/os/hal/templates/rtc_lld.c b/os/hal/templates/rtc_lld.c new file mode 100644 index 000000000..762f55e24 --- /dev/null +++ b/os/hal/templates/rtc_lld.c @@ -0,0 +1,147 @@ +/* + ChibiOS/HAL - Copyright (C) 2006-2014 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +/* + Concepts and parts of this file have been contributed by Uladzimir Pylinsky + aka barthess. + */ + +/** + * @file PLATFORM/RTCv2/rtc_lld.c + * @brief PLATFORML1xx/PLATFORMF2xx/PLATFORMF4xx RTC low level driver. + * + * @addtogroup RTC + * @{ + */ + +#include "hal.h" + +#if HAL_USE_RTC || defined(__DOXYGEN__) + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver exported variables. */ +/*===========================================================================*/ + +/** + * @brief RTC driver identifier. + */ +RTCDriver RTCD1; + +/*===========================================================================*/ +/* Driver local variables and types. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver interrupt handlers. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +/** + * @brief Enable access to registers. + * + * @notapi + */ +void rtc_lld_init(void) { + +} + +/** + * @brief Set current time. + * @note Fractional part will be silently ignored. There is no possibility + * to set it on PLATFORM platform. + * @note The function can be called from any context. + * + * @param[in] rtcp pointer to RTC driver structure + * @param[in] timespec pointer to a @p RTCDateTime structure + * + * @notapi + */ +void rtc_lld_set_time(RTCDriver *rtcp, const RTCDateTime *timespec) { + + (void)rtcp; + (void)timespec; +} + +/** + * @brief Get current time. + * @note The function can be called from any context. + * + * @param[in] rtcp pointer to RTC driver structure + * @param[out] timespec pointer to a @p RTCDateTime structure + * + * @notapi + */ +void rtc_lld_get_time(RTCDriver *rtcp, RTCDateTime *timespec) { + + (void)rtcp; + (void)timespec; +} + +#if (RTC_ALARMS > 0) || defined(__DOXYGEN__) +/** + * @brief Set alarm time. + * @note Default value after BKP domain reset for both comparators is 0. + * @note Function does not performs any checks of alarm time validity. + * @note The function can be called from any context. + * + * @param[in] rtcp pointer to RTC driver structure. + * @param[in] alarm alarm identifier. Can be 1 or 2. + * @param[in] alarmspec pointer to a @p RTCAlarm structure. + * + * @notapi + */ +void rtc_lld_set_alarm(RTCDriver *rtcp, + rtcalarm_t alarm, + const RTCAlarm *alarmspec) { + + (void)rtcp; + (void)alarm; + (void)alarmspec; +} + +/** + * @brief Get alarm time. + * @note The function can be called from any context. + * + * @param[in] rtcp pointer to RTC driver structure + * @param[in] alarm alarm identifier + * @param[out] alarmspec pointer to a @p RTCAlarm structure + * + * @notapi + */ +void rtc_lld_get_alarm(RTCDriver *rtcp, + rtcalarm_t alarm, + RTCAlarm *alarmspec) { + + (void)rtcp; + (void)alarm; + (void)alarmspec; +} +#endif /* RTC_ALARMS > 0 */ + +#endif /* HAL_USE_RTC */ + +/** @} */ diff --git a/os/hal/templates/rtc_lld.h b/os/hal/templates/rtc_lld.h new file mode 100644 index 000000000..a07756923 --- /dev/null +++ b/os/hal/templates/rtc_lld.h @@ -0,0 +1,122 @@ +/* + ChibiOS/HAL - Copyright (C) 2006-2014 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +/* + Concepts and parts of this file have been contributed by Uladzimir Pylinsky + aka barthess. + */ + +/** + * @file PLATFORM/rtc_lld.h + * @brief PLATFORML RTC low level driver header. + * + * @addtogroup RTC + * @{ + */ + +#ifndef _RTC_LLD_H_ +#define _RTC_LLD_H_ + +#if HAL_USE_RTC || defined(__DOXYGEN__) + +/*===========================================================================*/ +/* Driver constants. */ +/*===========================================================================*/ + +/** + * @brief Callback support int the driver. + */ +#define RTC_SUPPORTS_CALLBACKS PLATFORM_RTC_HAS_INTERRUPTS + +/** + * @brief Number of alarms available. + */ +#define RTC_ALARMS PLATFORM_RTC_NUM_ALARMS +/** @} */ + +/*===========================================================================*/ +/* Driver pre-compile time settings. */ +/*===========================================================================*/ + +/** + * @name Configuration options + * @{ + */ +/** @} */ + +/*===========================================================================*/ +/* Derived constants and error checks. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver data structures and types. */ +/*===========================================================================*/ + +/** + * @brief Type of an RTC alarm number. + */ +typedef uint32_t rtcalarm_t; + +/** + * @brief Type of a structure representing an RTC alarm time stamp. + */ +typedef struct { + /* End of the mandatory fields.*/ + uint32_t dummy; +} RTCAlarm; + +/** + * @brief Structure representing an RTC driver. + */ +struct RTCDriver { + /* End of the mandatory fields.*/ + uint32_t dummy; +}; + +/*===========================================================================*/ +/* Driver macros. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +#if !defined(__DOXYGEN__) +extern RTCDriver RTCD1; +#endif + +#ifdef __cplusplus +extern "C" { +#endif + void rtc_lld_init(void); + void rtc_lld_set_time(RTCDriver *rtcp, const RTCDateTime *timespec); + void rtc_lld_get_time(RTCDriver *rtcp, RTCDateTime *timespec); +#if RTC_ALARMS > 0 + void rtc_lld_set_alarm(RTCDriver *rtcp, + rtcalarm_t alarm, + const RTCAlarm *alarmspec); + void rtc_lld_get_alarm(RTCDriver *rtcp, + rtcalarm_t alarm, + RTCAlarm *alarmspec); +#endif +#ifdef __cplusplus +} +#endif + +#endif /* HAL_USE_RTC */ + +#endif /* _RTC_LLD_H_ */ + +/** @} */ -- cgit v1.2.3