14
14
#include "hw.h" // ff: hardware
15
15
#include "sys.h" // ff: system task
16
16
17
+ #if ( (FF_SYS_SW_WATCHDOG < 0 ) || (FF_SYS_SW_WATCHDOG > 255 ) )
18
+ # error Illegal value for FF_SYS_SW_WATCHDOG!
19
+ #endif
20
+
17
21
/* ************************************************************************** */
18
22
19
23
static uint8_t sSysTaskStack [FF_SYS_TASK_STACK ];
@@ -22,7 +26,9 @@ static void sSysTask(void *pArg);
22
26
23
27
void sysInit (void )
24
28
{
25
- DEBUG ("sys: init (stack %" PRIu16 ", mon %" PRIu16 ")" , (uint16_t )sizeof (sSysTaskStack ), (uint16_t )FF_SYS_MON_PERIOD );
29
+ DEBUG ("sys: init (stack %" PRIu16 ", mon %" PRIu16 ", prio " PRIu8 ")" ,
30
+ (uint16_t )sizeof (sSysTaskStack ), (uint16_t )FF_SYS_MON_PERIOD ,
31
+ (uint8_t )FF_SYS_TASK_PRIO );
26
32
}
27
33
28
34
void sysCreateSystemTask (void )
@@ -56,6 +62,14 @@ void sysRegisterMonFunc(SYS_MON_FUNC_t func) { UNUSED(func); }
56
62
57
63
#define SYS_TASK_PERIOD 1000
58
64
65
+ #if (FF_SYS_SW_WATCHDOG > 0 )
66
+ static uint8_t sSysSwWatchdogCount ;
67
+ void sysAssertSwWatchdog (void )
68
+ {
69
+ sSysSwWatchdogCount = 0 ;
70
+ }
71
+ #endif
72
+
59
73
static void sSysTask (void * pArg )
60
74
{
61
75
UNUSED (pArg );
@@ -72,6 +86,16 @@ static void sSysTask(void *pArg)
72
86
hwAssertWatchdog ();
73
87
period ++ ;
74
88
89
+ #if (FF_SYS_SW_WATCHDOG > 0 )
90
+ sSysSwWatchdogCount ++ ;
91
+ if (sSysSwWatchdogCount >= FF_SYS_SW_WATCHDOG )
92
+ {
93
+ ERROR ("sys: sw watchdog" );
94
+ osTaskDelay (100 );
95
+ hwPanic (HW_PANIC_SYS , 0x01 , 0x00 );
96
+ }
97
+ #endif
98
+
75
99
/* ***** stuff to be done every FF_SYS_MON_PERIOD seconds ***** */
76
100
77
101
#if (FF_SYS_MON_VERBOSE > 0 )
0 commit comments