mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-12 16:50:21 +00:00
241 lines
7.8 KiB
C
241 lines
7.8 KiB
C
/*
|
|
** ###################################################################
|
|
** Processors: RW610ETA2I
|
|
** RW610HNA2I
|
|
** RW610UKA2I
|
|
** RW612ETA2I
|
|
** RW612HNA2I
|
|
** RW612UKA2I
|
|
**
|
|
** Version: rev. 1.0, 2021-03-16
|
|
** Build: b240715
|
|
**
|
|
** Abstract:
|
|
** CMSIS Peripheral Access Layer for WWDT
|
|
**
|
|
** Copyright 1997-2016 Freescale Semiconductor, Inc.
|
|
** Copyright 2016-2024 NXP
|
|
** SPDX-License-Identifier: BSD-3-Clause
|
|
**
|
|
** http: www.nxp.com
|
|
** mail: support@nxp.com
|
|
**
|
|
** Revisions:
|
|
** - rev. 1.0 (2021-03-16)
|
|
** Initial version.
|
|
**
|
|
** ###################################################################
|
|
*/
|
|
|
|
/*!
|
|
* @file WWDT.h
|
|
* @version 1.0
|
|
* @date 2021-03-16
|
|
* @brief CMSIS Peripheral Access Layer for WWDT
|
|
*
|
|
* CMSIS Peripheral Access Layer for WWDT
|
|
*/
|
|
|
|
#if !defined(WWDT_H_)
|
|
#define WWDT_H_ /**< Symbol preventing repeated inclusion */
|
|
|
|
#if (defined(CPU_RW610ETA2I) || defined(CPU_RW610HNA2I) || defined(CPU_RW610UKA2I))
|
|
#include "RW610_COMMON.h"
|
|
#elif (defined(CPU_RW612ETA2I) || defined(CPU_RW612HNA2I) || defined(CPU_RW612UKA2I))
|
|
#include "RW612_COMMON.h"
|
|
#else
|
|
#error "No valid CPU defined!"
|
|
#endif
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- Device Peripheral Access Layer
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/*!
|
|
* @addtogroup Peripheral_access_layer Device Peripheral Access Layer
|
|
* @{
|
|
*/
|
|
|
|
|
|
/*
|
|
** Start of section using anonymous unions
|
|
*/
|
|
|
|
#if defined(__ARMCC_VERSION)
|
|
#if (__ARMCC_VERSION >= 6010050)
|
|
#pragma clang diagnostic push
|
|
#else
|
|
#pragma push
|
|
#pragma anon_unions
|
|
#endif
|
|
#elif defined(__GNUC__)
|
|
/* anonymous unions are enabled by default */
|
|
#elif defined(__IAR_SYSTEMS_ICC__)
|
|
#pragma language=extended
|
|
#else
|
|
#error Not supported compiler type
|
|
#endif
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- WWDT Peripheral Access Layer
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/*!
|
|
* @addtogroup WWDT_Peripheral_Access_Layer WWDT Peripheral Access Layer
|
|
* @{
|
|
*/
|
|
|
|
/** WWDT - Register Layout Typedef */
|
|
typedef struct {
|
|
__IO uint32_t MOD; /**< Mode, offset: 0x0 */
|
|
__IO uint32_t TC; /**< Timer Constant, offset: 0x4 */
|
|
__O uint32_t FEED; /**< Feed Sequence, offset: 0x8 */
|
|
__I uint32_t TV; /**< Timer Value, offset: 0xC */
|
|
uint8_t RESERVED_0[4];
|
|
__IO uint32_t WARNINT; /**< Warning Interrupt Compare Value, offset: 0x14 */
|
|
__IO uint32_t WINDOW; /**< Window Compare Value, offset: 0x18 */
|
|
} WWDT_Type;
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
-- WWDT Register Masks
|
|
---------------------------------------------------------------------------- */
|
|
|
|
/*!
|
|
* @addtogroup WWDT_Register_Masks WWDT Register Masks
|
|
* @{
|
|
*/
|
|
|
|
/*! @name MOD - Mode */
|
|
/*! @{ */
|
|
|
|
#define WWDT_MOD_WDEN_MASK (0x1U)
|
|
#define WWDT_MOD_WDEN_SHIFT (0U)
|
|
/*! WDEN - Watchdog Enable
|
|
* 0b0..Stop. The Watchdog timer is stopped.
|
|
* 0b1..Run. The Watchdog timer is running.
|
|
*/
|
|
#define WWDT_MOD_WDEN(x) (((uint32_t)(((uint32_t)(x)) << WWDT_MOD_WDEN_SHIFT)) & WWDT_MOD_WDEN_MASK)
|
|
|
|
#define WWDT_MOD_WDRESET_MASK (0x2U)
|
|
#define WWDT_MOD_WDRESET_SHIFT (1U)
|
|
/*! WDRESET - Watchdog Reset Enable
|
|
* 0b0..Interrupt. A Watchdog timeout will not cause a chip reset.
|
|
* 0b1..Reset. A Watchdog timeout will cause a chip reset.
|
|
*/
|
|
#define WWDT_MOD_WDRESET(x) (((uint32_t)(((uint32_t)(x)) << WWDT_MOD_WDRESET_SHIFT)) & WWDT_MOD_WDRESET_MASK)
|
|
|
|
#define WWDT_MOD_WDTOF_MASK (0x4U)
|
|
#define WWDT_MOD_WDTOF_SHIFT (2U)
|
|
/*! WDTOF - Watchdog Timeout Flag
|
|
* 0b0..Clear.
|
|
* 0b1..Reset. Causes a chip reset if WDRESET = 1.
|
|
*/
|
|
#define WWDT_MOD_WDTOF(x) (((uint32_t)(((uint32_t)(x)) << WWDT_MOD_WDTOF_SHIFT)) & WWDT_MOD_WDTOF_MASK)
|
|
|
|
#define WWDT_MOD_WDINT_MASK (0x8U)
|
|
#define WWDT_MOD_WDINT_SHIFT (3U)
|
|
/*! WDINT - Warning Interrupt Flag
|
|
* 0b0..No flag.
|
|
* 0b1..Flag. The Watchdog interrupt flag is set when the Watchdog counter is no longer greater than the value specified by WARNINT.
|
|
*/
|
|
#define WWDT_MOD_WDINT(x) (((uint32_t)(((uint32_t)(x)) << WWDT_MOD_WDINT_SHIFT)) & WWDT_MOD_WDINT_MASK)
|
|
|
|
#define WWDT_MOD_WDPROTECT_MASK (0x10U)
|
|
#define WWDT_MOD_WDPROTECT_SHIFT (4U)
|
|
/*! WDPROTECT - Watchdog Update Mode
|
|
* 0b0..Flexible
|
|
* 0b1..Threshold
|
|
*/
|
|
#define WWDT_MOD_WDPROTECT(x) (((uint32_t)(((uint32_t)(x)) << WWDT_MOD_WDPROTECT_SHIFT)) & WWDT_MOD_WDPROTECT_MASK)
|
|
|
|
#define WWDT_MOD_LOCK_MASK (0x20U)
|
|
#define WWDT_MOD_LOCK_SHIFT (5U)
|
|
/*! LOCK - Lock
|
|
* 0b0..No Lock
|
|
* 0b1..Lock
|
|
*/
|
|
#define WWDT_MOD_LOCK(x) (((uint32_t)(((uint32_t)(x)) << WWDT_MOD_LOCK_SHIFT)) & WWDT_MOD_LOCK_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name TC - Timer Constant */
|
|
/*! @{ */
|
|
|
|
#define WWDT_TC_COUNT_MASK (0xFFFFFFU)
|
|
#define WWDT_TC_COUNT_SHIFT (0U)
|
|
/*! COUNT - Watchdog Timeout Value */
|
|
#define WWDT_TC_COUNT(x) (((uint32_t)(((uint32_t)(x)) << WWDT_TC_COUNT_SHIFT)) & WWDT_TC_COUNT_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name FEED - Feed Sequence */
|
|
/*! @{ */
|
|
|
|
#define WWDT_FEED_FEED_MASK (0xFFU)
|
|
#define WWDT_FEED_FEED_SHIFT (0U)
|
|
/*! FEED - Feed Value */
|
|
#define WWDT_FEED_FEED(x) (((uint32_t)(((uint32_t)(x)) << WWDT_FEED_FEED_SHIFT)) & WWDT_FEED_FEED_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name TV - Timer Value */
|
|
/*! @{ */
|
|
|
|
#define WWDT_TV_COUNT_MASK (0xFFFFFFU)
|
|
#define WWDT_TV_COUNT_SHIFT (0U)
|
|
/*! COUNT - Counter Timer Value */
|
|
#define WWDT_TV_COUNT(x) (((uint32_t)(((uint32_t)(x)) << WWDT_TV_COUNT_SHIFT)) & WWDT_TV_COUNT_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name WARNINT - Warning Interrupt Compare Value */
|
|
/*! @{ */
|
|
|
|
#define WWDT_WARNINT_WARNINT_MASK (0x3FFU)
|
|
#define WWDT_WARNINT_WARNINT_SHIFT (0U)
|
|
/*! WARNINT - Watchdog Warning Interrupt Compare Value */
|
|
#define WWDT_WARNINT_WARNINT(x) (((uint32_t)(((uint32_t)(x)) << WWDT_WARNINT_WARNINT_SHIFT)) & WWDT_WARNINT_WARNINT_MASK)
|
|
/*! @} */
|
|
|
|
/*! @name WINDOW - Window Compare Value */
|
|
/*! @{ */
|
|
|
|
#define WWDT_WINDOW_WINDOW_MASK (0xFFFFFFU)
|
|
#define WWDT_WINDOW_WINDOW_SHIFT (0U)
|
|
/*! WINDOW - Watchdog Window Value. */
|
|
#define WWDT_WINDOW_WINDOW(x) (((uint32_t)(((uint32_t)(x)) << WWDT_WINDOW_WINDOW_SHIFT)) & WWDT_WINDOW_WINDOW_MASK)
|
|
/*! @} */
|
|
|
|
|
|
/*!
|
|
* @}
|
|
*/ /* end of group WWDT_Register_Masks */
|
|
|
|
|
|
/*!
|
|
* @}
|
|
*/ /* end of group WWDT_Peripheral_Access_Layer */
|
|
|
|
|
|
/*
|
|
** End of section using anonymous unions
|
|
*/
|
|
|
|
#if defined(__ARMCC_VERSION)
|
|
#if (__ARMCC_VERSION >= 6010050)
|
|
#pragma clang diagnostic pop
|
|
#else
|
|
#pragma pop
|
|
#endif
|
|
#elif defined(__GNUC__)
|
|
/* leave anonymous unions enabled */
|
|
#elif defined(__IAR_SYSTEMS_ICC__)
|
|
#pragma language=default
|
|
#else
|
|
#error Not supported compiler type
|
|
#endif
|
|
|
|
/*!
|
|
* @}
|
|
*/ /* end of group Peripheral_access_layer */
|
|
|
|
|
|
#endif /* WWDT_H_ */
|
|
|