URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [MB96340_Softune/] [FreeRTOS_96348hs_SK16FX100PMC/] [Src/] [watchdog/] [watchdog.c] - Rev 584
Compare with Previous | Blame | View Log
/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */ /* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */ /* ELIGIBILITY FOR ANY PURPOSES. */ /* (C) Fujitsu Microelectronics Europe GmbH */ /*------------------------------------------------------------------------ watchdog.c - This file contains the function deefinition for hardware watchdog. -------------------------------------------------------------------------*/ #include "mb96348hs.h" #include "FreeRTOS.h" #include "task.h" #include "watchdog.h" /*--------------------------------------------------------------------------- * Setup Watchdog *---------------------------------------------------------------------------*/ #if WATCHDOG != WTC_NONE void InitWatchdog( void ) { WDTC_WTI = WTC_PER_2_23; /* 2^23/CLKWT */ WDTC_WTCS = WTC_CLKMC; /* CLKWT=CLKMC, Watchdog expiration delay = 2.097s @ 4MHZ CLKMC*/ WDTCP = 0x00; /* Activate Watchdog, Clear Pattern 0x00 */ } #endif /*--------------------------------------------------------------------------- * The below task clears the watchdog and blocks itself for WTC_CLR_PER ticks. *---------------------------------------------------------------------------*/ #if WATCHDOG == WTC_IN_TASK static void prvWatchdogTask( void *pvParameters ) { const portTickType xFrequency = WTC_CLR_PER; portTickType xLastWakeTime; ( void ) pvParameters; /* Get currrent tick count */ xLastWakeTime = xTaskGetTickCount(); for( ;; ) { /* Get currrent tick count */ xLastWakeTime = xTaskGetTickCount(); Kick_Watchdog(); /* Block the task for WTC_CLR_PER ticks (1s) at watchdog overflow period of WTC_PER_2_23 CLKMC cycles */ vTaskDelayUntil( &xLastWakeTime, xFrequency ); } } #endif /*--------------------------------------------------------------------------- * The below function creates hardware watchdog task. *---------------------------------------------------------------------------*/ #if WATCHDOG == WTC_IN_TASK void vStartWatchdogTask( unsigned portBASE_TYPE uxPriority ) { xTaskCreate( prvWatchdogTask, (signed portCHAR *) "KickWTC", portMINIMAL_STACK_SIZE, ( void * ) NULL, uxPriority, ( xTaskHandle * ) NULL ); } #endif