| PDL for FM0+ Version1.0 Peripheral Driverl Library for FM0+

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

C:/pdl_v10/library/driver/wdg/hwwdg.h
Go to the documentation of this file.

    00001 /*******************************************************************************
    00002 * Copyright (C) 2013 Spansion LLC. All Rights Reserved.
    00003 *
    00004 * This software is owned and published by:
    00005 * Spansion LLC, 915 DeGuigne Dr. Sunnyvale, CA  94088-3453 ("Spansion").
    00006 *
    00007 * BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND
    00008 * BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT.
    00009 *
    00010 * This software contains source code for use with Spansion
    00011 * components. This software is licensed by Spansion to be adapted only
    00012 * for use in systems utilizing Spansion components. Spansion shall not be
    00013 * responsible for misuse or illegal use of this software for devices not
    00014 * supported herein.  Spansion is providing this software "AS IS" and will
    00015 * not be responsible for issues arising from incorrect user implementation
    00016 * of the software.
    00017 *
    00018 * SPANSION MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE,
    00019 * REGARDING THE SOFTWARE (INCLUDING ANY ACOOMPANYING WRITTEN MATERIALS),
    00020 * ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING,
    00021 * WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED
    00022 * WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED
    00023 * WARRANTY OF NONINFRINGEMENT.
    00024 * SPANSION SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT,
    00025 * NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT
    00026 * LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION,
    00027 * LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR
    00028 * INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT,
    00029 * INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA,
    00030 * SAVINGS OR PROFITS,
    00031 * EVEN IF SPANSION HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
    00032 * YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR
    00033 * INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED
    00034 * FROM, THE SOFTWARE.
    00035 *
    00036 * This software may be replicated in part or whole for the licensed use,
    00037 * with the restriction that this Disclaimer and Copyright notice must be
    00038 * included with each copy of this software, whether used in part or whole,
    00039 * at all times.
    00040 */
    00041 /******************************************************************************/
    00051 #ifndef __HWWDG_H__
    00052 #define __HWWDG_H__
    00053
    00054 /******************************************************************************/
    00055 /* Include files                                                              */
    00056 /******************************************************************************/
    00057 #include "mcu.h"
    00058 #include "pdl_user.h"
    00059
    00060 #if (defined(PDL_PERIPHERAL_WDG_ACTIVE))
    00061
    00062 /* C binding of definitions if building with C++ compiler */
    00063 #ifdef __cplusplus
    00064 extern "C"
    00065 {
    00066 #endif
    00067
    00115
    00116 /*****************************************************************************/
    00117 /* Global pre-processor symbols/macros ('#define')                           */
    00118 /*****************************************************************************/
    00119 /* for WDG_LCK */
    00120 #define HWWDG_REG_UNLOCK_1  (0x1ACCE551u)
    00121 #define HWWDG_REG_UNLOCK_2  (0xE5331AAEu)
    00122
    00123 /******************************************************************************
    00124  * Global type definitions
    00125  ******************************************************************************/
    00126
    00131 typedef struct stc_hwwdg_config
    00132 {
    00133     uint32_t   u32LoadValue;
    00134     boolean_t  bResetEnable;
    00135 } stc_hwwdg_config_t;
    00136
    00137 /******************************************************************************/
    00138 /* Local type definitions ('typedef')                                         */
    00139 /******************************************************************************/
    00140
    00141 /******************************************************************************/
    00142 /* Global variable definitions ('extern')                                     */
    00143 /******************************************************************************/
    00144
    00145 /******************************************************************************/
    00146 /* Global function prototypes (definition in C source)                        */
    00147 /******************************************************************************/
    00148 /* Interrupt */
    00149 extern void HwwdgIrqHandler(void);
    00150
    00151 /* Setup(Initialize)/Disable(Un-initialize) */
    00152 extern en_result_t Hwwdg_Init(stc_hwwdg_config_t* pstcConfig);
    00153 extern en_result_t Hwwdg_DeInit(uint32_t u32MagicWord1,
    00154                                 uint32_t u32MagicWord2
    00155                                );
    00156
    00157 /* Start/Stop */
    00158 extern en_result_t Hwwdg_Start(func_ptr_t pfnHwwdgCb);
    00159 extern void Hwwdg_Stop(void);
    00160
    00161 /* Write/Read for counter */
    00162 extern void Hwwdg_WriteWdgLoad(uint32_t u32LoadValue);
    00163 extern uint32_t Hwwdg_ReadWdgValue(void);
    00164
    00165 /* Feed watchdog */
    00166 extern void Hwwdg_Feed(uint8_t u8ClearPattern1,
    00167                        uint8_t u8ClearPattern2
    00168                       );
    00169
    00170 extern void Hwwdg_EnableDbgBrkWdgCtl(void);
    00171 extern void Hwwdg_DisableDbgBrkWdgCtl(void);
    00172
    00173 static void Hwwdg_QuickFeed(uint8_t u8ClearPattern1, uint8_t u8ClearPattern2);
    00174
    00175 /******************************************************************************/
    00176 /* Static inline functions                                                    */
    00177 /******************************************************************************/
    00178
    00191 static __INLINE void Hwwdg_QuickFeed(uint8_t u8ClearPattern1, uint8_t u8ClearPattern2)
    00192 {
    00193     FM0P_HWWDT->WDG_LCK = HWWDG_REG_UNLOCK_1;/* Release Lock */
    00194     FM0P_HWWDT->WDG_ICL = u8ClearPattern1;   /* Clear possible interrupt and reload value, step 1 */
    00195     FM0P_HWWDT->WDG_ICL = u8ClearPattern2;   /* Clear possible interrupt and reload value, step 2 */
    00196 } /* Hwwdg_QuickFeed */
    00197
    00199
    00200 #ifdef __cplusplus
    00201 }
    00202 #endif
    00203
    00204 #endif /* #if (defined(PDL_PERIPHERAL_WDG_ACTIVE)) */
    00205
    00206 #endif /* __HWWDG_H__ */
    00207 /******************************************************************************/
    00208 /* EOF (not truncated)                                                        */
    00209 /******************************************************************************/