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