210
|
1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
2 |
|
|
3 |
<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
|
|
4 |
original version by: Nikos Drakos, CBLU, University of Leeds
|
|
5 |
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
|
6 |
* with significant contributions from:
|
|
7 |
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
|
8 |
<HTML>
|
|
9 |
<HEAD>
|
|
10 |
<TITLE>CanFestival events scheduling</TITLE>
|
|
11 |
<META NAME="description" CONTENT="CanFestival events scheduling">
|
|
12 |
<META NAME="keywords" CONTENT="manual">
|
|
13 |
<META NAME="resource-type" CONTENT="document">
|
|
14 |
<META NAME="distribution" CONTENT="global">
|
|
15 |
|
|
16 |
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
|
|
17 |
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
|
18 |
|
|
19 |
<LINK REL="STYLESHEET" HREF="manual.css">
|
|
20 |
|
|
21 |
<LINK REL="previous" HREF="node19.html">
|
|
22 |
<LINK REL="up" HREF="node16.html">
|
|
23 |
<LINK REL="next" HREF="node21.html">
|
|
24 |
</HEAD>
|
|
25 |
|
|
26 |
<BODY >
|
|
27 |
|
|
28 |
<DIV CLASS="navigation"><!--Navigation Panel-->
|
|
29 |
<A NAME="tex2html394"
|
|
30 |
HREF="node21.html">
|
|
31 |
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
|
32 |
SRC="/usr/share/latex2html/icons/next.png"></A>
|
|
33 |
<A NAME="tex2html390"
|
|
34 |
HREF="node16.html">
|
|
35 |
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
|
36 |
SRC="/usr/share/latex2html/icons/up.png"></A>
|
|
37 |
<A NAME="tex2html386"
|
|
38 |
HREF="node19.html">
|
|
39 |
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
|
40 |
SRC="/usr/share/latex2html/icons/prev.png"></A>
|
|
41 |
<A NAME="tex2html392"
|
|
42 |
HREF="node1.html">
|
|
43 |
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
|
|
44 |
SRC="/usr/share/latex2html/icons/contents.png"></A>
|
|
45 |
<BR>
|
|
46 |
<B> Next:</B> <A NAME="tex2html395"
|
|
47 |
HREF="node21.html">Linux Target</A>
|
|
48 |
<B> Up:</B> <A NAME="tex2html391"
|
|
49 |
HREF="node16.html">Understanding Canfestival</A>
|
|
50 |
<B> Previous:</B> <A NAME="tex2html387"
|
|
51 |
HREF="node19.html">CanFestival CAN interfaces</A>
|
|
52 |
<B> <A NAME="tex2html393"
|
|
53 |
HREF="node1.html">Contents</A></B>
|
|
54 |
<BR>
|
|
55 |
<BR></DIV>
|
|
56 |
<!--End of Navigation Panel-->
|
|
57 |
|
|
58 |
<H2><A NAME="SECTION00054000000000000000">
|
|
59 |
CanFestival events scheduling</A>
|
|
60 |
</H2>
|
|
61 |
A CanOpen node must be able to take delayed actions.
|
|
62 |
|
|
63 |
<P>
|
|
64 |
As exemples, periodic sync emission, heartbeat production or SDO timeout
|
|
65 |
need to set some alarms that will be called later and do the job.
|
|
66 |
|
|
67 |
<P>
|
|
68 |
µC generaly do not have enough free timers to handle all the
|
|
69 |
CanOpen needs directly. Moreover, CanFestival internal data may be
|
|
70 |
corrupt by reentrant calls.
|
|
71 |
|
|
72 |
<P>
|
|
73 |
CanFestival implement a micro-scheduler (timer.c). It uses only one
|
|
74 |
timer to mimic many timers. It manage an alarm table, and call alarms
|
|
75 |
at desired time.
|
|
76 |
|
|
77 |
<P>
|
|
78 |
<DIV ALIGN="CENTER">
|
|
79 |
<IMG
|
211
|
80 |
WIDTH="512" HEIGHT="205" ALIGN="BOTTOM" BORDER="0"
|
210
|
81 |
SRC="./100000000000022C000000DEDAD2140C.png"
|
|
82 |
ALT="Image 100000000000022C000000DEDAD2140C">
|
|
83 |
|
|
84 |
</DIV>
|
|
85 |
|
|
86 |
<P>
|
|
87 |
Scheduler can handle short clock value ranges limitation found on some
|
|
88 |
µC. As an example, value range for a 16bit clock counter with
|
|
89 |
4µs tick is crossed within 0.26 seconds... Long alarms must be
|
|
90 |
segmented.
|
|
91 |
|
|
92 |
<P>
|
|
93 |
Chronogram illustrate a long alarm (A) and a short periodic alarm (B),
|
|
94 |
with a A value > clock range > B value.
|
|
95 |
Values t0...t8 are successive setTimer call parameter values. t1
|
|
96 |
illustrates an intermediate call to TimeDispatch, caused by a delay
|
|
97 |
longer than clock range. Because of long alarm segmentation, at the end
|
|
98 |
of t1, TimeDispatch call will not trig any alarm callback.
|
|
99 |
|
|
100 |
<P>
|
|
101 |
<DIV ALIGN="CENTER">
|
|
102 |
<IMG
|
211
|
103 |
WIDTH="709" HEIGHT="197" ALIGN="BOTTOM" BORDER="0"
|
210
|
104 |
SRC="./1000000000000396000000FFC42573DA.png"
|
|
105 |
ALT="Image 1000000000000396000000FFC42573DA">
|
|
106 |
|
|
107 |
</DIV>
|
|
108 |
|
|
109 |
<P>
|
|
110 |
|
|
111 |
<DIV CLASS="navigation"><HR>
|
|
112 |
<!--Navigation Panel-->
|
|
113 |
<A NAME="tex2html394"
|
|
114 |
HREF="node21.html">
|
|
115 |
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
|
116 |
SRC="/usr/share/latex2html/icons/next.png"></A>
|
|
117 |
<A NAME="tex2html390"
|
|
118 |
HREF="node16.html">
|
|
119 |
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
|
120 |
SRC="/usr/share/latex2html/icons/up.png"></A>
|
|
121 |
<A NAME="tex2html386"
|
|
122 |
HREF="node19.html">
|
|
123 |
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
|
124 |
SRC="/usr/share/latex2html/icons/prev.png"></A>
|
|
125 |
<A NAME="tex2html392"
|
|
126 |
HREF="node1.html">
|
|
127 |
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
|
|
128 |
SRC="/usr/share/latex2html/icons/contents.png"></A>
|
|
129 |
<BR>
|
|
130 |
<B> Next:</B> <A NAME="tex2html395"
|
|
131 |
HREF="node21.html">Linux Target</A>
|
|
132 |
<B> Up:</B> <A NAME="tex2html391"
|
|
133 |
HREF="node16.html">Understanding Canfestival</A>
|
|
134 |
<B> Previous:</B> <A NAME="tex2html387"
|
|
135 |
HREF="node19.html">CanFestival CAN interfaces</A>
|
|
136 |
<B> <A NAME="tex2html393"
|
|
137 |
HREF="node1.html">Contents</A></B> </DIV>
|
|
138 |
<!--End of Navigation Panel-->
|
|
139 |
<ADDRESS>
|
|
140 |
epimerde
|
215
|
141 |
2007-06-08
|
210
|
142 |
</ADDRESS>
|
|
143 |
</BODY>
|
|
144 |
</HTML>
|