// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // File name : reset_drv.c // Version : V0.1 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #include "stdio.h" #include "reset_drv.h" #include "cpm_drv.h" /******************************************************************************* * Function Name : soft_reset * Description : 芯片软件复位 * Input : None * * Output : None * Return : None ******************************************************************************/ void Soft_Reset(void) { CHIP_RESET->RCR |= SOFTRST; } /******************************************************************************* * Function Name : get_reset_status * Description : 获取芯片复位状态 * bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 * TCR VD SOFT WDR POR FD CR NU * Input : None * * Output : None * Return : None ******************************************************************************/ RST_STATUS Get_Reset_Status(void) { return (RST_STATUS)(CHIP_RESET->RSR); } /******************************************************************************* * Function Name : Set_POR_Reset * Description : 产生一个Power on reset * Input : None * * Output : None * Return : None ******************************************************************************/ void Set_POR_Reset(void) { CPM_Write_CoreTestKey(); CPM->CPM_VCCCTMR |= (1<<3); } /******************************************************************************* * Function Name : Disable_SmartCardReset * Description : 禁止smart card 复位芯片复位 * Input : None * * Output : None * Return : None ******************************************************************************/ void Disable_SmartCardReset(void) { CHIP_RESET->RCR &= ~(CRE); }