diff options
author | Giovanni Di Sirio <gdisirio@gmail.com> | 2015-12-03 15:23:08 +0000 |
---|---|---|
committer | Giovanni Di Sirio <gdisirio@gmail.com> | 2015-12-03 15:23:08 +0000 |
commit | 8f7c76fbfb89ef83b2918dd38b14710df8e28a50 (patch) | |
tree | 9c5be9d92d74ec6085d7b91800a0ae76b89c3a28 /os | |
parent | 6f5d6652694e9dd4c1900601cc0af506bc1627d9 (diff) | |
download | ChibiOS-8f7c76fbfb89ef83b2918dd38b14710df8e28a50.tar.gz ChibiOS-8f7c76fbfb89ef83b2918dd38b14710df8e28a50.tar.bz2 ChibiOS-8f7c76fbfb89ef83b2918dd38b14710df8e28a50.zip |
Added WDG templates.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8559 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os')
-rw-r--r-- | os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.c | 2 | ||||
-rw-r--r-- | os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.h | 6 | ||||
-rw-r--r-- | os/hal/templates/wdg_lld.c | 101 | ||||
-rw-r--r-- | os/hal/templates/wdg_lld.h | 114 |
4 files changed, 219 insertions, 4 deletions
diff --git a/os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.c b/os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.c index 9f02347ba..94f2c8569 100644 --- a/os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.c +++ b/os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.c @@ -15,7 +15,7 @@ */
/**
- * @file templates/wdg_lld.c
+ * @file wdg_lld.c
* @brief WDG Driver subsystem low level driver source.
*
* @addtogroup WDG
diff --git a/os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.h b/os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.h index f4055b24d..828808d5e 100644 --- a/os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.h +++ b/os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.h @@ -118,17 +118,17 @@ typedef struct { * @brief Configuration of the IWDG_PR register.
* @details See the STM32 reference manual for details.
*/
- uint8_t pr;
+ uint32_t pr;
/**
* @brief Configuration of the IWDG_RLR register.
* @details See the STM32 reference manual for details.
*/
- uint16_t rlr;
+ uint32_t rlr;
/**
* @brief Configuration of the IWDG_WINR register.
* @details See the STM32 reference manual for details.
*/
- uint16_t winr;
+ uint32_t winr;
} WDGConfig;
/**
diff --git a/os/hal/templates/wdg_lld.c b/os/hal/templates/wdg_lld.c new file mode 100644 index 000000000..4732928ac --- /dev/null +++ b/os/hal/templates/wdg_lld.c @@ -0,0 +1,101 @@ +/*
+ ChibiOS - Copyright (C) 2006..2015 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.
+*/
+
+/**
+ * @file templates/wdg_lld.c
+ * @brief WDG Driver subsystem low level driver source template.
+ *
+ * @addtogroup WDG
+ * @{
+ */
+
+#include "hal.h"
+
+#if HAL_USE_WDG || defined(__DOXYGEN__)
+
+/*===========================================================================*/
+/* Driver local definitions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver exported variables. */
+/*===========================================================================*/
+
+#if STM32_WDG_USE_WDG1 || defined(__DOXYGEN__)
+WDGDriver WDGD1;
+#endif
+
+/*===========================================================================*/
+/* Driver local variables. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver local functions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver interrupt handlers. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver exported functions. */
+/*===========================================================================*/
+
+/**
+ * @brief Low level WDG driver initialization.
+ *
+ * @notapi
+ */
+void wdg_lld_init(void) {
+
+}
+
+/**
+ * @brief Configures and activates the WDG peripheral.
+ *
+ * @param[in] wdgp pointer to the @p WDGDriver object
+ *
+ * @notapi
+ */
+void wdg_lld_start(WDGDriver *wdgp) {
+
+}
+
+/**
+ * @brief Deactivates the WDG peripheral.
+ *
+ * @param[in] wdgp pointer to the @p WDGDriver object
+ *
+ * @api
+ */
+void wdg_lld_stop(WDGDriver *wdgp) {
+
+}
+
+/**
+ * @brief Reloads WDG's counter.
+ *
+ * @param[in] idwgp pointer to the @p WDGDriver object
+ *
+ * @notapi
+ */
+void wdg_lld_reset(WDGDriver * wdgp) {
+
+}
+
+#endif /* HAL_USE_WDG */
+
+/** @} */
diff --git a/os/hal/templates/wdg_lld.h b/os/hal/templates/wdg_lld.h new file mode 100644 index 000000000..d49dac8ac --- /dev/null +++ b/os/hal/templates/wdg_lld.h @@ -0,0 +1,114 @@ +/*
+ ChibiOS - Copyright (C) 2006..2015 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.
+*/
+
+/**
+ * @file templates/wdg_lld.h
+ * @brief WDG Driver subsystem low level driver header template.
+ *
+ * @addtogroup WDG
+ * @{
+ */
+
+#ifndef _WDG_LLD_H_
+#define _WDG_LLD_H_
+
+#if HAL_USE_WDG || defined(__DOXYGEN__)
+
+/*===========================================================================*/
+/* Driver constants. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver pre-compile time settings. */
+/*===========================================================================*/
+
+/**
+ * @name Configuration options
+ * @{
+ */
+/**
+ * @brief WDG1 driver enable switch.
+ * @details If set to @p TRUE the support for IWDG is included.
+ * @note The default is @p FALSE.
+ */
+#if !defined(STM32_WDG_USE_WDG1) || defined(__DOXYGEN__)
+#define STM32_WDG_USE_WDG1 FALSE
+#endif
+/** @} */
+
+/*===========================================================================*/
+/* Derived constants and error checks. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver data structures and types. */
+/*===========================================================================*/
+
+/**
+ * @brief Type of a structure representing an WDG driver.
+ */
+typedef struct WDGDriver WDGDriver;
+
+/**
+ * @brief Driver configuration structure.
+ * @note It could be empty on some architectures.
+ */
+typedef struct {
+} WDGConfig;
+
+/**
+ * @brief Structure representing an WDG driver.
+ */
+struct WDGDriver {
+ /**
+ * @brief Driver state.
+ */
+ wdgstate_t state;
+ /**
+ * @brief Current configuration data.
+ */
+ const WDGConfig *config;
+ /* End of the mandatory fields.*/
+};
+
+/*===========================================================================*/
+/* Driver macros. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+#if STM32_WDG_USE_IWDG && !defined(__DOXYGEN__)
+extern WDGDriver WDGD1;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ void wdg_lld_init(void);
+ void wdg_lld_start(WDGDriver *wdgp);
+ void wdg_lld_stop(WDGDriver *wdgp);
+ void wdg_lld_reset(WDGDriver *wdgp);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* HAL_USE_WDG */
+
+#endif /* _WDG_LLD_H_ */
+
+/** @} */
|