source: asp_ewarm/asp-1.7.0/test/test_sysstat1.c@ 61

Last change on this file since 61 was 61, checked in by ertl-honda, 11 years ago

ASP for EWARM のコミット.

File size: 6.1 KB
Line 
1/*
2 * TOPPERS Software
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 *
5 * Copyright (C) 2006-2010 by Embedded and Real-Time Systems Laboratory
6 * Graduate School of Information Science, Nagoya Univ., JAPAN
7 *
8 * ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
9 * ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
10 * •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
11 * (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
12 * Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
13 * ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
14 * (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
15 * —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ…
16ƒƒ“ƒgi—˜—p
17 * ŽÒƒ}ƒjƒ…
18ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
19 * ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
20 * (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
21 * —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
22 * ‚ƁD
23 * (a) Ä”z•z‚É”º‚¤ƒhƒLƒ…
24ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
25ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
26 * ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
27 * (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
28 * •ñ‚·‚邱‚ƁD
29 * (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
30 * ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
31 * ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
32 * —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
33 * –Ɛӂ·‚邱‚ƁD
34 *
35 * –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
36 * ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
37 * ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
38 * ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
39 * ‚̐ӔC‚𕉂í‚È‚¢D
40 *
41 * @(#) $Id: test_sysstat1.c 2006 2010-12-31 04:20:56Z ertl-hiro $
42 */
43
44/*
45 * ƒVƒXƒeƒ€ó‘Ô‚ÉŠÖ‚·‚éƒeƒXƒg(1)
46 *
47 * ƒeƒXƒgƒV[ƒPƒ“ƒXF
48 *
49 * == TASK1i—Dæ“xF10j==
50 * 1: ‰Šúó‘Ԃ̃`ƒFƒbƒN
51 * 2: loc_cpu() ... ƒVƒXƒeƒ€ó‘Ô‚ðƒ‰ƒ“ƒ_ƒ€‚ɕω»‚³‚¹‚é
52 * chg_ipm(TMAX_INTPRI) -> E_CTX
53 * 3: unl_cpu()
54 * 4: chg_ipm(TMAX_INTPRI)
55 * 5: dis_dsp()
56 * 6: ena_tex()
57 * 7: chg_ipm(TIPM_ENAALL)
58 * 8: ena_dsp()
59 * 9: dis_tex()
60 * 10: dis_dsp() ... ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ðŒÄ‚яo‚·€”õ
61 * ena_tex()
62 * 11: ras_tex(TSK_SELF, 0x0001)
63 * == TASK1ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“i1‰ñ–ځj==
64 * 12: ‰Šúó‘Ԃ̃`ƒFƒbƒN
65 * 13: ena_dsp() ... 3‚‚̏ó‘Ô‚ð•Ï‰»‚³‚¹CƒŠƒ^[ƒ“‚ÅŒ³‚É‚à‚Ç‚é‚©’²‚ׂé
66 * chg_ipm(TMIN_INTPRI)
67 * ena_tex()
68 * ƒŠƒ^[ƒ“
69 * == TASK1i‘±‚«j==
70 * 14: –ß‚Á‚Ä‚«‚½ó‘Ԃ̃`ƒFƒbƒN
71 * 15: loc_cpu() ... CPUƒƒbƒNó‘Ԃ̂܂܃^ƒXƒN‚ðI—¹‚³‚¹‚é
72 * 16: ƒŠƒ^[ƒ“iƒ^ƒXƒNI—¹j
73 * == TASK2i—Dæ“xF10j ==
74 * 17: ‰Šúó‘Ԃ̃`ƒFƒbƒN
75 * 18: I—¹
76 */
77
78#include <kernel.h>
79#include <test_lib.h>
80#include <t_syslog.h>
81#include "kernel_cfg.h"
82#include "test_sysstat1.h"
83
84void
85tex_task1(TEXPTN texptn, intptr_t exinf)
86{
87 ER ercd;
88
89 switch (texptn) {
90 case 0x0001:
91 check_point(12);
92 check_state(false, false, TIPM_ENAALL, true, true, true);
93
94 /*
95 * ƒfƒBƒXƒpƒbƒ`‹–‰ÂCŠ„ž‚Ý—Dæ“xƒ}ƒXƒN•ÏXCƒ^ƒXƒN—áŠOˆ—‹–‰Â
96 */
97 check_point(13);
98 ercd = ena_dsp();
99 check_ercd(ercd, E_OK);
100 ercd = chg_ipm(TMIN_INTPRI);
101 check_ercd(ercd, E_OK);
102 ercd = ena_tex();
103 check_ercd(ercd, E_OK);
104 check_state(false, false, TMIN_INTPRI, false, true, false);
105 break;
106
107 default:
108 check_point(0);
109 break;
110 }
111}
112
113void
114task1(intptr_t exinf)
115{
116 ER ercd;
117
118 /*
119 * ‰Šúó‘Ԃ̃`ƒFƒbƒN
120 */
121 check_point(1);
122 check_state(false, false, TIPM_ENAALL, false, false, true);
123
124 /*
125 * CPUƒƒbƒNó‘Ԃ̃`ƒFƒbƒN
126 */
127 check_point(2);
128 ercd = loc_cpu();
129 check_ercd(ercd, E_OK);
130 check_state(false, true, TIPM_ENAALL, false, true, true);
131
132 /*
133 * Š„ž‚Ý—Dæ“xƒ}ƒXƒN•ÏX‚̃`ƒFƒbƒN
134 */
135 ercd = chg_ipm(TMAX_INTPRI);
136 check_ercd(ercd, E_CTX);
137 check_state(false, true, TIPM_ENAALL, false, true, true);
138
139 /*
140 * CPUƒƒbƒN‰ðœ‚̃`ƒFƒbƒN
141 */
142 check_point(3);
143 ercd = unl_cpu();
144 check_ercd(ercd, E_OK);
145 check_state(false, false, TIPM_ENAALL, false, false, true);
146
147 /*
148 * Š„ž‚Ý—Dæ“xƒ}ƒXƒN•ÏX‚̃`ƒFƒbƒN
149 */
150 check_point(4);
151 ercd = chg_ipm(TMAX_INTPRI);
152 check_ercd(ercd, E_OK);
153 check_state(false, false, TMAX_INTPRI, false, true, true);
154
155 /*
156 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~‚̃`ƒFƒbƒN
157 */
158 check_point(5);
159 ercd = dis_dsp();
160 check_ercd(ercd, E_OK);
161 check_state(false, false, TMAX_INTPRI, true, true, true);
162
163 /*
164 * ƒ^ƒXƒN—áŠOˆ—‹–‰Â‚̃`ƒFƒbƒN
165 */
166 check_point(6);
167 ercd = ena_tex();
168 check_ercd(ercd, E_OK);
169 check_state(false, false, TMAX_INTPRI, true, true, false);
170
171 /*
172 * Š„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœ‚̃`ƒFƒbƒN
173 */
174 check_point(7);
175 ercd = chg_ipm(TIPM_ENAALL);
176 check_ercd(ercd, E_OK);
177 check_state(false, false, TIPM_ENAALL, true, true, false);
178
179 /*
180 * ƒfƒBƒXƒpƒbƒ`‹–‰Â‚̃`ƒFƒbƒN
181 */
182 check_point(8);
183 ercd = ena_dsp();
184 check_ercd(ercd, E_OK);
185 check_state(false, false, TIPM_ENAALL, false, false, false);
186
187 /*
188 * ƒ^ƒXƒN—áŠOˆ—‹ÖŽ~‚̃`ƒFƒbƒN
189 */
190 check_point(9);
191 ercd = dis_tex();
192 check_ercd(ercd, E_OK);
193 check_state(false, false, TIPM_ENAALL, false, false, true);
194
195 /*
196 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~Cƒ^ƒXƒN—áŠOˆ—‹–‰Â
197 */
198 check_point(10);
199 ercd = dis_dsp();
200 check_ercd(ercd, E_OK);
201 ercd = ena_tex();
202 check_ercd(ercd, E_OK);
203 check_state(false, false, TIPM_ENAALL, true, true, false);
204
205 /*
206 * ƒ^ƒXƒN—áŠOˆ—‚ð—v‹
207 */
208 check_point(11);
209 ercd = ras_tex(TSK_SELF, 0x0001);
210 /* ‚±‚±‚Ń^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª“®ì‚·‚é */
211 check_ercd(ercd, E_OK);
212
213 /*
214 * ƒ^ƒXƒN—áŠOˆ—‚©‚ç‚̃Šƒ^[ƒ“‚É‚æ‚茳‚̏ó‘Ô‚É–ß‚Á‚Ä‚¢‚邱‚Æ‚ð
215 * ƒ`ƒFƒbƒN
216 */
217 check_point(14);
218 check_state(false, false, TIPM_ENAALL, true, true, false);
219
220 /*
221 * CPUƒƒbƒNó‘Ô‚É
222 */
223 check_point(15);
224 ercd = loc_cpu();
225 check_ercd(ercd, E_OK);
226
227 /*
228 * ‚»‚̂܂܃^ƒXƒNI—¹
229 */
230 check_point(16);
231}
232
233void
234task2(intptr_t exinf)
235{
236 /*
237 * ‰Šúó‘Ԃ̃`ƒFƒbƒN
238 */
239 check_point(17);
240 check_state(false, false, TIPM_ENAALL, false, false, true);
241
242 check_finish(18);
243}
Note: See TracBrowser for help on using the repository browser.