1 |
28 |
unneback |
<!-- Copyright (C) 2003 Red Hat, Inc. -->
|
2 |
|
|
<!-- This material may be distributed only subject to the terms -->
|
3 |
|
|
<!-- and conditions set forth in the Open Publication License, v1.0 -->
|
4 |
|
|
<!-- or later (the latest version is presently available at -->
|
5 |
|
|
<!-- http://www.opencontent.org/openpub/). -->
|
6 |
|
|
<!-- Distribution of the work or derivative of the work in any -->
|
7 |
|
|
<!-- standard (paper) book form is prohibited unless prior -->
|
8 |
|
|
<!-- permission is obtained from the copyright holder. -->
|
9 |
|
|
<HTML
|
10 |
|
|
><HEAD
|
11 |
|
|
><TITLE
|
12 |
|
|
>Board: Atmel AT91/EB40</TITLE
|
13 |
|
|
><meta name="MSSmartTagsPreventParsing" content="TRUE">
|
14 |
|
|
<META
|
15 |
|
|
NAME="GENERATOR"
|
16 |
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
17 |
|
|
"><LINK
|
18 |
|
|
REL="HOME"
|
19 |
|
|
TITLE="eCos User Guide"
|
20 |
|
|
HREF="ecos-user-guide.html"><LINK
|
21 |
|
|
REL="UP"
|
22 |
|
|
TITLE="Real-time characterization"
|
23 |
|
|
HREF="real-time-characterization.html"><LINK
|
24 |
|
|
REL="PREVIOUS"
|
25 |
|
|
TITLE="Real-time characterization"
|
26 |
|
|
HREF="real-time-characterization.html"><LINK
|
27 |
|
|
REL="NEXT"
|
28 |
|
|
TITLE="Board: Intel StrongARM EBSA-285 Evaluation Board"
|
29 |
|
|
HREF="rt-arm-ebsa285.html"></HEAD
|
30 |
|
|
><BODY
|
31 |
|
|
CLASS="SECT1"
|
32 |
|
|
BGCOLOR="#FFFFFF"
|
33 |
|
|
TEXT="#000000"
|
34 |
|
|
LINK="#0000FF"
|
35 |
|
|
VLINK="#840084"
|
36 |
|
|
ALINK="#0000FF"
|
37 |
|
|
><DIV
|
38 |
|
|
CLASS="NAVHEADER"
|
39 |
|
|
><TABLE
|
40 |
|
|
SUMMARY="Header navigation table"
|
41 |
|
|
WIDTH="100%"
|
42 |
|
|
BORDER="0"
|
43 |
|
|
CELLPADDING="0"
|
44 |
|
|
CELLSPACING="0"
|
45 |
|
|
><TR
|
46 |
|
|
><TH
|
47 |
|
|
COLSPAN="3"
|
48 |
|
|
ALIGN="center"
|
49 |
|
|
>eCos User Guide</TH
|
50 |
|
|
></TR
|
51 |
|
|
><TR
|
52 |
|
|
><TD
|
53 |
|
|
WIDTH="10%"
|
54 |
|
|
ALIGN="left"
|
55 |
|
|
VALIGN="bottom"
|
56 |
|
|
><A
|
57 |
|
|
HREF="real-time-characterization.html"
|
58 |
|
|
ACCESSKEY="P"
|
59 |
|
|
>Prev</A
|
60 |
|
|
></TD
|
61 |
|
|
><TD
|
62 |
|
|
WIDTH="80%"
|
63 |
|
|
ALIGN="center"
|
64 |
|
|
VALIGN="bottom"
|
65 |
|
|
>Appendix B. Real-time characterization</TD
|
66 |
|
|
><TD
|
67 |
|
|
WIDTH="10%"
|
68 |
|
|
ALIGN="right"
|
69 |
|
|
VALIGN="bottom"
|
70 |
|
|
><A
|
71 |
|
|
HREF="rt-arm-ebsa285.html"
|
72 |
|
|
ACCESSKEY="N"
|
73 |
|
|
>Next</A
|
74 |
|
|
></TD
|
75 |
|
|
></TR
|
76 |
|
|
></TABLE
|
77 |
|
|
><HR
|
78 |
|
|
ALIGN="LEFT"
|
79 |
|
|
WIDTH="100%"></DIV
|
80 |
|
|
><DIV
|
81 |
|
|
CLASS="SECT1"
|
82 |
|
|
><H1
|
83 |
|
|
CLASS="SECT1"
|
84 |
|
|
><A
|
85 |
|
|
NAME="RT-AT91-EB40">Board: Atmel AT91/EB40</H1
|
86 |
|
|
><TABLE
|
87 |
|
|
BORDER="5"
|
88 |
|
|
BGCOLOR="#E0E0F0"
|
89 |
|
|
WIDTH="70%"
|
90 |
|
|
><TR
|
91 |
|
|
><TD
|
92 |
|
|
><PRE
|
93 |
|
|
CLASS="LITERALLAYOUT"
|
94 |
|
|
>Board: Atmel AT91/EB40
|
95 |
|
|
CPU : AT91R40807 (ARM7TDMI core), 32MHz
|
96 |
|
|
512KB RAM, 64K Flash
|
97 |
|
|
|
98 |
|
|
Startup, main stack : stack used 420 size 2400
|
99 |
|
|
Startup : Interrupt stack used 144 size 4096
|
100 |
|
|
Startup : Idlethread stack used 84 size 2048
|
101 |
|
|
|
102 |
|
|
eCos Kernel Timings
|
103 |
|
|
Notes: all times are in microseconds (.000001) unless otherwise stated
|
104 |
|
|
|
105 |
|
|
Reading the hardware clock takes 3 'ticks' overhead
|
106 |
|
|
... this value will be factored out of all other measurements
|
107 |
|
|
Clock interrupt took 127.53 microseconds (130 raw clock ticks)
|
108 |
|
|
|
109 |
|
|
Testing parameters:
|
110 |
|
|
Clock samples: 32
|
111 |
|
|
Threads: 25
|
112 |
|
|
Thread switches: 128
|
113 |
|
|
Mutexes: 32
|
114 |
|
|
Mailboxes: 32
|
115 |
|
|
Semaphores: 32
|
116 |
|
|
Scheduler operations: 128
|
117 |
|
|
Counters: 32
|
118 |
|
|
Alarms: 32
|
119 |
|
|
|
120 |
|
|
|
121 |
|
|
Confidence
|
122 |
|
|
Ave Min Max Var Ave Min Function
|
123 |
|
|
====== ====== ====== ====== ========== ========
|
124 |
|
|
86.48 71.29 101.56 7.99 48% 28% Create thread
|
125 |
|
|
20.70 20.51 21.48 0.31 80% 80% Yield thread [all suspended]
|
126 |
|
|
17.15 16.60 17.58 0.48 56% 44% Suspend [suspended] thread
|
127 |
|
|
17.07 16.60 17.58 0.49 52% 52% Resume thread
|
128 |
|
|
25.51 25.39 26.37 0.21 88% 88% Set priority
|
129 |
|
|
3.16 2.93 3.91 0.36 76% 76% Get priority
|
130 |
|
|
52.34 51.76 52.73 0.47 60% 40% Kill [suspended] thread
|
131 |
|
|
20.70 20.51 21.48 0.31 80% 80% Yield [no other] thread
|
132 |
|
|
28.98 28.32 30.27 0.48 60% 36% Resume [suspended low prio] thread
|
133 |
|
|
17.11 16.60 17.58 0.49 52% 48% Resume [runnable low prio] thread
|
134 |
|
|
27.85 26.37 28.32 0.52 96% 4% Suspend [runnable] thread
|
135 |
|
|
20.70 20.51 21.48 0.31 80% 80% Yield [only low prio] thread
|
136 |
|
|
17.23 16.60 17.58 0.45 64% 36% Suspend [runnable->not runnable]
|
137 |
|
|
52.34 51.76 52.73 0.47 60% 40% Kill [runnable] thread
|
138 |
|
|
33.01 32.23 33.20 0.31 80% 20% Destroy [dead] thread
|
139 |
|
|
72.03 70.31 72.27 0.38 80% 4% Destroy [runnable] thread
|
140 |
|
|
96.99 95.70 112.30 1.22 64% 96% Resume [high priority] thread
|
141 |
|
|
51.48 49.80 164.06 1.76 99% 99% Thread switch
|
142 |
|
|
|
143 |
|
|
2.78 1.95 2.93 0.26 84% 15% Scheduler lock
|
144 |
|
|
11.81 11.72 12.70 0.17 90% 90% Scheduler unlock [0 threads]
|
145 |
|
|
11.81 11.72 12.70 0.17 90% 90% Scheduler unlock [1 suspended]
|
146 |
|
|
11.81 11.72 12.70 0.17 90% 90% Scheduler unlock [many suspended]
|
147 |
|
|
11.81 11.72 12.70 0.17 90% 90% Scheduler unlock [many low prio]
|
148 |
|
|
|
149 |
|
|
5.49 4.88 5.86 0.46 62% 37% Init mutex
|
150 |
|
|
20.20 19.53 20.51 0.42 68% 31% Lock [unlocked] mutex
|
151 |
|
|
24.44 24.41 25.39 0.06 96% 96% Unlock [locked] mutex
|
152 |
|
|
18.25 17.58 18.55 0.42 68% 31% Trylock [unlocked] mutex
|
153 |
|
|
16.11 15.63 16.60 0.49 100% 50% Trylock [locked] mutex
|
154 |
|
|
6.10 5.86 6.84 0.37 75% 75% Destroy mutex
|
155 |
|
|
124.21 124.02 125.00 0.30 81% 81% Unlock/Lock mutex
|
156 |
|
|
|
157 |
|
|
9.28 8.79 9.77 0.49 100% 50% Create mbox
|
158 |
|
|
2.93 2.93 2.93 0.00 100% 100% Peek [empty] mbox
|
159 |
|
|
22.58 22.46 23.44 0.21 87% 87% Put [first] mbox
|
160 |
|
|
2.44 1.95 2.93 0.49 100% 50% Peek [1 msg] mbox
|
161 |
|
|
22.58 22.46 23.44 0.21 87% 87% Put [second] mbox
|
162 |
|
|
2.44 1.95 2.93 0.49 100% 50% Peek [2 msgs] mbox
|
163 |
|
|
22.71 22.46 23.44 0.37 75% 75% Get [first] mbox
|
164 |
|
|
22.71 22.46 23.44 0.37 75% 75% Get [second] mbox
|
165 |
|
|
21.18 20.51 21.48 0.42 68% 31% Tryput [first] mbox
|
166 |
|
|
18.98 18.55 19.53 0.48 56% 56% Peek item [non-empty] mbox
|
167 |
|
|
22.46 22.46 22.46 0.00 100% 100% Tryget [non-empty] mbox
|
168 |
|
|
18.31 17.58 18.55 0.37 75% 25% Peek item [empty] mbox
|
169 |
|
|
19.53 19.53 19.53 0.00 100% 100% Tryget [empty] mbox
|
170 |
|
|
2.69 1.95 2.93 0.37 75% 25% Waiting to get mbox
|
171 |
|
|
2.93 2.93 2.93 0.00 100% 100% Waiting to put mbox
|
172 |
|
|
23.86 23.44 24.41 0.48 56% 56% Delete mbox
|
173 |
|
|
67.60 67.38 68.36 0.33 78% 78% Put/Get mbox
|
174 |
|
|
|
175 |
|
|
5.37 4.88 5.86 0.49 100% 50% Init semaphore
|
176 |
|
|
16.97 16.60 17.58 0.46 62% 62% Post [0] semaphore
|
177 |
|
|
18.98 18.55 19.53 0.48 56% 56% Wait [1] semaphore
|
178 |
|
|
15.81 15.63 16.60 0.30 81% 81% Trywait [0] semaphore
|
179 |
|
|
15.29 14.65 15.63 0.44 65% 34% Trywait [1] semaphore
|
180 |
|
|
5.62 4.88 5.86 0.37 75% 25% Peek semaphore
|
181 |
|
|
6.35 5.86 6.84 0.49 100% 50% Destroy semaphore
|
182 |
|
|
72.36 72.27 73.24 0.17 90% 90% Post/Wait semaphore
|
183 |
|
|
|
184 |
|
|
7.08 6.84 7.81 0.37 75% 75% Create counter
|
185 |
|
|
3.17 2.93 3.91 0.37 75% 75% Get counter value
|
186 |
|
|
3.05 2.93 3.91 0.21 87% 87% Set counter value
|
187 |
|
|
24.11 23.44 24.41 0.42 68% 31% Tick counter
|
188 |
|
|
5.49 4.88 5.86 0.46 62% 37% Delete counter
|
189 |
|
|
|
190 |
|
|
10.92 10.74 11.72 0.30 81% 81% Create alarm
|
191 |
|
|
31.46 31.25 32.23 0.33 78% 78% Initialize alarm
|
192 |
|
|
3.05 2.93 3.91 0.21 87% 87% Disable alarm
|
193 |
|
|
31.49 31.25 32.23 0.37 75% 75% Enable alarm
|
194 |
|
|
7.02 6.84 7.81 0.30 81% 81% Delete alarm
|
195 |
|
|
31.16 30.27 31.25 0.17 90% 9% Tick counter [1 alarm]
|
196 |
|
|
309.26 304.69 425.78 7.28 96% 96% Tick counter [many alarms]
|
197 |
|
|
44.83 43.95 44.92 0.17 90% 9% Tick & fire counter [1 alarm]
|
198 |
|
|
781.68 774.41 893.55 13.62 93% 93% Tick & fire counters [>1 together]
|
199 |
|
|
324.16 320.31 433.59 6.84 96% 96% Tick & fire counters [>1 separately]
|
200 |
|
|
114.26 113.28 167.97 0.84 57% 42% Alarm latency [0 threads]
|
201 |
|
|
126.91 113.28 159.18 8.20 50% 31% Alarm latency [2 threads]
|
202 |
|
|
127.11 113.28 158.20 8.09 51% 28% Alarm latency [many threads]
|
203 |
|
|
196.49 189.45 331.05 2.10 98% 0% Alarm -> thread resume latency
|
204 |
|
|
|
205 |
|
|
23.50 23.44 25.39 0.00 Clock/interrupt latency
|
206 |
|
|
|
207 |
|
|
40.31 33.20 514.65 0.00 Clock DSR latency
|
208 |
|
|
|
209 |
|
|
300 271 312 (main stack: 832) Thread stack used (1120 total)
|
210 |
|
|
All done, main stack : stack used 832 size 2400
|
211 |
|
|
All done : Interrupt stack used 288 size 4096
|
212 |
|
|
All done : Idlethread stack used 272 size 2048
|
213 |
|
|
|
214 |
|
|
Timing complete - 30350 ms total
|
215 |
|
|
|
216 |
|
|
PASS:<Basic timing OK>
|
217 |
|
|
EXIT:<done>
|
218 |
|
|
</PRE
|
219 |
|
|
></TD
|
220 |
|
|
></TR
|
221 |
|
|
></TABLE
|
222 |
|
|
></DIV
|
223 |
|
|
><DIV
|
224 |
|
|
CLASS="NAVFOOTER"
|
225 |
|
|
><HR
|
226 |
|
|
ALIGN="LEFT"
|
227 |
|
|
WIDTH="100%"><TABLE
|
228 |
|
|
SUMMARY="Footer navigation table"
|
229 |
|
|
WIDTH="100%"
|
230 |
|
|
BORDER="0"
|
231 |
|
|
CELLPADDING="0"
|
232 |
|
|
CELLSPACING="0"
|
233 |
|
|
><TR
|
234 |
|
|
><TD
|
235 |
|
|
WIDTH="33%"
|
236 |
|
|
ALIGN="left"
|
237 |
|
|
VALIGN="top"
|
238 |
|
|
><A
|
239 |
|
|
HREF="real-time-characterization.html"
|
240 |
|
|
ACCESSKEY="P"
|
241 |
|
|
>Prev</A
|
242 |
|
|
></TD
|
243 |
|
|
><TD
|
244 |
|
|
WIDTH="34%"
|
245 |
|
|
ALIGN="center"
|
246 |
|
|
VALIGN="top"
|
247 |
|
|
><A
|
248 |
|
|
HREF="ecos-user-guide.html"
|
249 |
|
|
ACCESSKEY="H"
|
250 |
|
|
>Home</A
|
251 |
|
|
></TD
|
252 |
|
|
><TD
|
253 |
|
|
WIDTH="33%"
|
254 |
|
|
ALIGN="right"
|
255 |
|
|
VALIGN="top"
|
256 |
|
|
><A
|
257 |
|
|
HREF="rt-arm-ebsa285.html"
|
258 |
|
|
ACCESSKEY="N"
|
259 |
|
|
>Next</A
|
260 |
|
|
></TD
|
261 |
|
|
></TR
|
262 |
|
|
><TR
|
263 |
|
|
><TD
|
264 |
|
|
WIDTH="33%"
|
265 |
|
|
ALIGN="left"
|
266 |
|
|
VALIGN="top"
|
267 |
|
|
>Real-time characterization</TD
|
268 |
|
|
><TD
|
269 |
|
|
WIDTH="34%"
|
270 |
|
|
ALIGN="center"
|
271 |
|
|
VALIGN="top"
|
272 |
|
|
><A
|
273 |
|
|
HREF="real-time-characterization.html"
|
274 |
|
|
ACCESSKEY="U"
|
275 |
|
|
>Up</A
|
276 |
|
|
></TD
|
277 |
|
|
><TD
|
278 |
|
|
WIDTH="33%"
|
279 |
|
|
ALIGN="right"
|
280 |
|
|
VALIGN="top"
|
281 |
|
|
>Board: Intel StrongARM EBSA-285 Evaluation Board</TD
|
282 |
|
|
></TR
|
283 |
|
|
></TABLE
|
284 |
|
|
></DIV
|
285 |
|
|
></BODY
|
286 |
|
|
></HTML
|
287 |
|
|
>
|