Files
zTC1/mico-os/platform/MCU/MX1101/peripherals/platform_watchdog.c

94 lines
2.5 KiB
C

/**
******************************************************************************
* @file platform_watchdog.c
* @author William Xu
* @version V1.0.0
* @date 05-May-2014
* @brief This file provide WDG driver functions.
******************************************************************************
* UNPUBLISHED PROPRIETARY SOURCE CODE
* Copyright (c) 2016 MXCHIP Inc.
*
* The contents of this file may not be disclosed to third parties, copied or
* duplicated in any form, in whole or in part, without the prior written
* permission of MXCHIP Corporation.
******************************************************************************
*/
#include "platform.h"
#include "platform_config.h"
#include "platform_peripheral.h"
/******************************************************
* Constants
******************************************************/
/******************************************************
* Enumerations
******************************************************/
/******************************************************
* Type Definitions
******************************************************/
/******************************************************
* Structures
******************************************************/
/******************************************************
* Variables Definitions
******************************************************/
/******************************************************
* Function Declarations
******************************************************/
/******************************************************
* Function Definitions
******************************************************/
OSStatus platform_watchdog_init( uint32_t timeout_ms )
{
// PLATFORM_TO_DO
#ifdef MICO_DISABLE_WATCHDOG
return kUnsupportedErr;
#else
OSStatus err = kNoErr;
require_action( timeout_ms < 4000 && timeout_ms > 0, exit, err = kParamErr );
if ( timeout_ms > 3000 )
WdgEn(WDG_STEP_4S);
else if ( timeout_ms > 1000 )
WdgEn(WDG_STEP_3S);
else
WdgEn(WDG_STEP_1S);
exit:
return err;
#endif
}
OSStatus platform_watchdog_deinit( void )
{
// PLATFORM_TO_DO
WdgDis();
return kNoErr;
}
bool platform_watchdog_check_last_reset( void )
{
return false;
}
OSStatus platform_watchdog_kick( void )
{
#ifndef MICO_DISABLE_WATCHDOG
WdgFeed();
return kNoErr;
#else
return kNoErr;
#endif
}