I'm confused by the "watchdog tickle chain"
Phil Torre
ptorre at zetron.com
Thu Mar 21 22:08:46 UTC 2002
I'm confused by how the watchdog tickle code works, and want to make
sure that I haven't screwed it up with any of my changes.
(This is RTEMS-4.5.0 on MPC860.)
The function _Watchdog_Tickle() pulls the first Watchdog_Control object
off of the chain, and decrements its delta_interval. If delta_interval
is zero, it processes the object. If delta_interval is nonzero, it
just returns.
It seems like this should only work if the chain of objects is sorted
by delta_interval. However, when I fire up a debugger and walk the
chain (by following the Node.next pointer), it looks like the delta_interval
values are pretty random.
Is this correct, or am I doing something to mess up the operation of
the delta chain?
(This came up because our application code is doing *something* which
causes the wall clock to stop counting. The _TOD_Current.ticks value
increments forever without _TOD_Current.seconds being updated. In
this state, the watchdog object for _TOD_Tickle is still on the delta
chain, but it's stuck behind an object with a delta_interval of
0xffffffe0 or so, like it got decremented twice and underflowed.)
Thanks in advance for any enlightenment.
-Phil
--
=====================================================================
Phil Torre phone: 425-820-6363 x234
Design Engineer email: ptorre at zetron.com
Switching Systems Group fax: 425-820-7031
Zetron, Inc. web: http://www.zetron.com
More information about the users
mailing list