mbed library sources. Supersedes mbed-src.
Fork of mbed-dev by
Diff: targets/TARGET_NUVOTON/TARGET_M451/device/StdDriver/m451_sys.c
- Revision:
- 153:9398a535854b
- Parent:
- 152:9a67f0b066fc
--- a/targets/TARGET_NUVOTON/TARGET_M451/device/StdDriver/m451_sys.c Thu Dec 15 11:48:27 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,213 +0,0 @@ -/**************************************************************************//** - * @file sys.c - * @version V3.00 - * $Revision: 12 $ - * $Date: 15/08/11 10:26a $ - * @brief M451 series SYS driver source file - * - * @note - * Copyright (C) 2014~2015 Nuvoton Technology Corp. All rights reserved. -*****************************************************************************/ - -#include "M451Series.h" - -#ifdef __cplusplus -extern "C" -{ -#endif - -/** @addtogroup Standard_Driver Standard Driver - @{ -*/ - -/** @addtogroup SYS_Driver SYS Driver - @{ -*/ - - -/** @addtogroup SYS_EXPORTED_FUNCTIONS SYS Exported Functions - @{ -*/ - -/** - * @brief Clear reset source - * @param[in] u32Src is system reset source. Including : - * - \ref SYS_RSTSTS_CPURF_Msk - * - \ref SYS_RSTSTS_SYSRF_Msk - * - \ref SYS_RSTSTS_BODRF_Msk - * - \ref SYS_RSTSTS_LVRF_Msk - * - \ref SYS_RSTSTS_WDTRF_Msk - * - \ref SYS_RSTSTS_PINRF_Msk - * - \ref SYS_RSTSTS_PORF_Msk - * @return None - * @details This function clear the selected system reset source. - */ -void SYS_ClearResetSrc(uint32_t u32Src) -{ - SYS->RSTSTS |= u32Src; -} - -/** - * @brief Get Brown-out detector output status - * @param None - * @retval 0 System voltage is higher than BOD_VL setting or BOD_EN is 0. - * @retval 1 System voltage is lower than BOD_VL setting. - * @details This function get Brown-out detector output status. - */ -uint32_t SYS_GetBODStatus(void) -{ - return ((SYS->BODCTL & SYS_BODCTL_BODOUT_Msk) >> SYS_BODCTL_BODOUT_Pos); -} - -/** - * @brief Get reset status register value - * @param None - * @return Reset source - * @details This function get the system reset status register value. - */ -uint32_t SYS_GetResetSrc(void) -{ - return (SYS->RSTSTS); -} - -/** - * @brief Check if register is locked nor not - * @param None - * @retval 0 Write-protection function is disabled. - * 1 Write-protection function is enabled. - * @details This function check register write-protection bit setting. - */ -uint32_t SYS_IsRegLocked(void) -{ - return !(SYS->REGLCTL & 0x1); -} - -/** - * @brief Get product ID - * @param None - * @return Product ID - * @details This function get product ID. - */ -uint32_t SYS_ReadPDID(void) -{ - return SYS->PDID; -} - -/** - * @brief Reset chip with chip reset - * @param None - * @return None - * @details This function reset chip with chip reset. - * The register write-protection function should be disabled before using this function. - */ -void SYS_ResetChip(void) -{ - SYS->IPRST0 |= SYS_IPRST0_CHIPRST_Msk; -} - -/** - * @brief Reset chip with CPU reset - * @param None - * @return None - * @details This function reset CPU with CPU reset. - * The register write-protection function should be disabled before using this function. - */ -void SYS_ResetCPU(void) -{ - SYS->IPRST0 |= SYS_IPRST0_CPURST_Msk; -} - -/** - * @brief Reset selected module - * @param[in] u32ModuleIndex is module index. Including : - * - \ref PDMA_RST - * - \ref EBI_RST - * - \ref USBH_RST - * - \ref CRC_RST - * - \ref GPIO_RST - * - \ref TMR0_RST - * - \ref TMR1_RST - * - \ref TMR2_RST - * - \ref TMR3_RST - * - \ref ACMP01_RST - * - \ref I2C0_RST - * - \ref I2C1_RST - * - \ref SPI0_RST - * - \ref SPI1_RST - * - \ref SPI2_RST - * - \ref UART0_RST - * - \ref UART1_RST - * - \ref UART2_RST - * - \ref UART3_RST - * - \ref CAN0_RST - * - \ref OTG_RST - * - \ref USBD_RST - * - \ref EADC_RST - * - \ref SC0_RST - * - \ref DAC_RST - * - \ref PWM0_RST - * - \ref PWM1_RST - * - \ref TK_RST - * @return None - * @details This function reset selected module. - */ -void SYS_ResetModule(uint32_t u32ModuleIndex) -{ - /* Generate reset signal to the corresponding module */ - *(volatile uint32_t *)((uint32_t)&SYS->IPRST0 + (u32ModuleIndex >> 24)) |= 1 << (u32ModuleIndex & 0x00ffffff); - - /* Release corresponding module from reset state */ - *(volatile uint32_t *)((uint32_t)&SYS->IPRST0 + (u32ModuleIndex >> 24)) &= ~(1 << (u32ModuleIndex & 0x00ffffff)); -} - -/** - * @brief Enable and configure Brown-out detector function - * @param[in] i32Mode is reset or interrupt mode. Including : - * - \ref SYS_BODCTL_BOD_RST_EN - * - \ref SYS_BODCTL_BOD_INTERRUPT_EN - * @param[in] u32BODLevel is Brown-out voltage level. Including : - * - \ref SYS_BODCTL_BODVL_4_5V - * - \ref SYS_BODCTL_BODVL_3_7V - * - \ref SYS_BODCTL_BODVL_2_7V - * - \ref SYS_BODCTL_BODVL_2_2V - * @return None - * @details This function configure Brown-out detector reset or interrupt mode, enable Brown-out function and set Brown-out voltage level. - * The register write-protection function should be disabled before using this function. - */ -void SYS_EnableBOD(int32_t i32Mode, uint32_t u32BODLevel) -{ - /* Enable Brown-out Detector function */ - SYS->BODCTL |= SYS_BODCTL_BODEN_Msk; - - /* Enable Brown-out interrupt or reset function */ - SYS->BODCTL = (SYS->BODCTL & ~SYS_BODCTL_BODRSTEN_Msk) | i32Mode; - - /* Select Brown-out Detector threshold voltage */ - SYS->BODCTL = (SYS->BODCTL & ~SYS_BODCTL_BODVL_Msk) | u32BODLevel; -} - -/** - * @brief Disable Brown-out detector function - * @param None - * @return None - * @details This function disable Brown-out detector function. - * The register write-protection function should be disabled before using this function. - */ -void SYS_DisableBOD(void) -{ - SYS->BODCTL &= ~SYS_BODCTL_BODEN_Msk; -} - - - -/*@}*/ /* end of group SYS_EXPORTED_FUNCTIONS */ - -/*@}*/ /* end of group SYS_Driver */ - -/*@}*/ /* end of group Standard_Driver */ - -#ifdef __cplusplus -} -#endif - -/*** (C) COPYRIGHT 2014~2015 Nuvoton Technology Corp. ***/