THREAD(Uart0KeyEvents, arg)
{
    //LogMsg_P(LOG_INFO, PSTR("UART-Thread Start"));

    NutThreadSetPriority(200);  // low prio
    for (;;)
    {
        char *result = "";
        char rst[] = "reset\n";

        if (stream==NULL)
        {
            //LogMsg_P(LOG_INFO, PSTR("Stream is NULL!"));
            NutSleep(2000);           //Mhe
            continue;
        }

        result = fgets(result, 16, stream);
        short _reset_received = strcmp(rst, result);

        if (_reset_received == 0){
            LogMsg_P(LOG_INFO, PSTR(">>>>>> RESET COMMAND RECEIVED"));
            //RESET SIR!
            WatchDogStart(0);
        }
    }
}
/*******************************************************************************
** Name: WDTDevShellTest
** Input:HDC dev, uint8 * pstr
** Return: rk_err_t
** Owner:wrm
** Date: 2015.5.19
** Time: 10:16:13
*******************************************************************************/
_DRIVER_WATCHDOG_WATCHDOGDEVICE_SHELL_
SHELL FUN rk_err_t WDTDevShellTest(HDC dev, uint8 * pstr)
{
	HDC hWDTDev;
	uint32 DevID;

	//Get WDTDev ID...
	if(StrCmpA(pstr, "0", 1) == 0)
	{
		DevID = 0;
	}
	else if(StrCmpA(pstr, "1", 1) == 0)
	{
		DevID = 1;
	}
	else
	{
		DevID = 0;
	}

	//Open WDTDev...
	hWDTDev = RKDev_Open(DEV_CLASS_WDT, 0, NOT_CARE);
	if((hWDTDev == NULL) || (hWDTDev == (HDC)RK_ERROR) || (hWDTDev == (HDC)RK_PARA_ERR))
	{
		rk_print_string("WDTDev open failure");
		 return RK_SUCCESS;
	}

	//do test....
	rk_printf ("Test WatchDog Device\n");
	IsWatchDogTestClearInt= 0;

	WatchDogInit(RESP_MODE_INT_RESET, PCLK_CYCLES_128, PERIOD_RANGE_0X07FFFFFF);
	WatchDogStart();

	//close WDTDev...
	RKDev_Close(hWDTDev);
	return RK_SUCCESS;

}