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
5 /*------------------------------------------------------------------------
\r
7 - This file contains the function deefinition for hardware watchdog.
\r
8 -------------------------------------------------------------------------*/
\r
10 #include "mb91467d.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 HWWDE_ED = WTC_PER_2_16; /* Set the watchdog period as 655.36 ms */
\r
25 /*---------------------------------------------------------------------------
\r
26 * The below task clears the watchdog and blocks itself for WTC_CLR_PER ticks.
\r
27 *---------------------------------------------------------------------------*/
\r
28 #if WATCHDOG == WTC_IN_TASK
\r
29 static void prvWatchdogTask ( void *pvParameters )
\r
31 const TickType_t xFrequency = WTC_CLR_PER;
\r
32 TickType_t xLastWakeTime;
\r
34 /* Get currrent tick count */
\r
35 xLastWakeTime = xTaskGetTickCount();
\r
41 /* Block the task for WTC_CLR_PER ticks (300 ms) at watchdog overflow
\r
42 period of WTC_PER_2_16 CLKRC cycles (655.36 ms) */
\r
43 vTaskDelayUntil( &xLastWakeTime, xFrequency );
\r
48 /*---------------------------------------------------------------------------
\r
49 * The below function creates hardware watchdog task.
\r
50 *---------------------------------------------------------------------------*/
\r
51 #if WATCHDOG == WTC_IN_TASK
\r
52 void vStartWatchdogTask( unsigned short uxPriority )
\r
54 xTaskCreate( prvWatchdogTask , "KickWTC", portMINIMAL_STACK_SIZE, ( void * ) NULL, uxPriority, ( TaskHandle_t * ) NULL );
\r