[En-Nut-Discussion] Problems with WatchDog using multithreads

Fernando Me Ga ferradi at gmail.com
Thu Apr 8 16:03:28 CEST 2010


Thanks you.

2010/4/8 Bernd Walter <enut at cicely.de>:
> On Thu, Apr 08, 2010 at 12:40:51PM +0200, Fernando Me Ga wrote:
>> Hello,
>>
>> I am trying to use WatchDog in my application but there is a problem
>> when several thread use NutSleep. These threads get block and the
>> WatchDog restart the system before the specified timeout. In the
>> simple example below it is expected to each thread puts there message
>> every 10 seconds but does not. They put there message only ones and
>> soon after the system restart.
>
> I never used NutWatchDog*, but unless it uses an internal softcounter
> you can't have such high values, since hardware counter are way
> to small for that.
> I usually have a cyclic interrupt routine, which has a softcounter
> for every subsystem and as long as non of them drops to 0 it
> restarts the hardware counter.
> This way I can also save a short marker about the subsystems failing.
>
>> What is the problem?
>> What could be happening?
>>
>> Thanks a lot.
>>
>>
>> THREAD(Thread, arg)
>> {
>>     for(;;) {
>>         puts("Thread 1...");
>>         NutSleep(10000);
>>     }
>> }
>>
>> int main(void) {
>>     /* ... */
>>     NutWatchDogStart(120000, 0);
>>     printf("\nWatchdog Started\n\n");
>>     NutThreadCreate("td", Thread, 0, 256);
>>     for (;;) {
>>         NutWatchDogRestart();
>>         printf("Watchdog restarted\n");
>>         NutSleep(10000);
>>     }
>>     return 0;
>> }
>> _______________________________________________
>> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
>
> --
> B.Walter <bernd at bwct.de> http://www.bwct.de
> Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.
> _______________________________________________
> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
>



More information about the En-Nut-Discussion mailing list