PDL for FM0+  Version1.0
Peripheral Driverl Library for FM0+
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 /******************************************************************************/