1 /* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
\r
2 /* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
\r
3 /* ELIGIBILITY FOR ANY PURPOSES. */
\r
4 /* (C) Fujitsu Microelectronics Europe GmbH */
\r
6 /*------------------------------------------------------------------------
\r
8 - This file contains the function deefinition for hardware watchdog.
\r
9 -------------------------------------------------------------------------*/
\r
10 #include "mb96348hs.h"
\r
11 #include "FreeRTOS.h"
\r
13 #include "watchdog.h"
\r
15 /*---------------------------------------------------------------------------
\r
17 *---------------------------------------------------------------------------*/
\r
18 #if WATCHDOG != WTC_NONE
\r
19 void InitWatchdog( void )
\r
21 WDTC_WTI = WTC_PER_2_23; /* 2^23/CLKWT */
\r
22 WDTC_WTCS = WTC_CLKMC; /* CLKWT=CLKMC, Watchdog expiration delay = 2.097s @ 4MHZ CLKMC*/
\r
23 WDTCP = 0x00; /* Activate Watchdog, Clear Pattern 0x00 */
\r
28 /*---------------------------------------------------------------------------
\r
29 * The below task clears the watchdog and blocks itself for WTC_CLR_PER ticks.
\r
30 *---------------------------------------------------------------------------*/
\r
31 #if WATCHDOG == WTC_IN_TASK
\r
32 static void prvWatchdogTask( void *pvParameters )
\r
34 const portTickType xFrequency = WTC_CLR_PER;
\r
35 portTickType xLastWakeTime;
\r
36 ( void ) pvParameters;
\r
38 /* Get currrent tick count */
\r
39 xLastWakeTime = xTaskGetTickCount();
\r
43 /* Get currrent tick count */
\r
44 xLastWakeTime = xTaskGetTickCount();
\r
48 /* Block the task for WTC_CLR_PER ticks (1s) at watchdog overflow period of WTC_PER_2_23 CLKMC cycles */
\r
49 vTaskDelayUntil( &xLastWakeTime, xFrequency );
\r
55 /*---------------------------------------------------------------------------
\r
56 * The below function creates hardware watchdog task.
\r
57 *---------------------------------------------------------------------------*/
\r
58 #if WATCHDOG == WTC_IN_TASK
\r
59 void vStartWatchdogTask( unsigned portBASE_TYPE uxPriority )
\r
61 xTaskCreate( prvWatchdogTask, (signed portCHAR *) "KickWTC", portMINIMAL_STACK_SIZE, ( void * ) NULL, uxPriority, ( xTaskHandle * ) NULL );
\r