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

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

ASP for EWARM のコミット.

File size: 11.1 KB
Line 
1/*
2 * TOPPERS Software
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 *
5 * Copyright (C) 2007-2009 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_tex2.c 1577 2009-05-31 14:30:51Z ertl-hiro $
42 */
43
44/*
45 * ƒ^ƒXƒN—áŠOˆ—‚ÉŠÖ‚·‚éƒeƒXƒg(2)
46 *
47 * yƒeƒXƒg‚Ì–Ú“Iz
48 *
49 * Š„ž‚݃nƒ“ƒhƒ‰iƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰j‚¨‚æ‚ÑCPU—áŠOƒnƒ“ƒhƒ‰‚©‚çƒ^ƒXƒN—á
50 * ŠOˆ—ƒ‹[ƒ`ƒ“‚ð‹N“®‚·‚鏈—‚ð–Ô—…
51“I‚ɃeƒXƒg‚·‚éD
52 *
53 * yƒeƒXƒg€–ځz
54 *
55 * (A) iras_tex‚̃Gƒ‰[ŒŸo
56 * (A-1) ‘Ώۃ^ƒXƒN‚ª‹xŽ~ó‘Ô
57 * (A-2) ‘Ώۃ^ƒXƒN‚̃^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª’è‹`‚³‚ê‚Ä‚¢‚È‚¢
58 * (B) Š„ž‚݃nƒ“ƒhƒ‰‚©‚çŒÄ‚΂ꂽiras_tex‚̐³íˆ—
59 * (B-1) ‘Ώۃ^ƒXƒN‚ªŽÀsó‘Ԃ̃^ƒXƒN‚©‚ƒ^ƒXƒN—áŠOˆ—‹–‰Â
60 * (B-2) ‘Ώۃ^ƒXƒN‚ªŽÀsó‘Ԃ̃^ƒXƒN‚Å‚È‚¢
61 * (B-3) ‘Ώۃ^ƒXƒN‚ªŽÀsó‘Ԃ̃^ƒXƒN‚¾‚ªƒ^ƒXƒN—áŠOˆ—‹ÖŽ~
62 * (C) CPU—áŠOƒnƒ“ƒhƒ‰‚©‚çŒÄ‚΂ꂽiras_tex‚̐³íˆ—
63 * (C-1) ‘Ώۃ^ƒXƒN‚ªŽÀsó‘Ԃ̃^ƒXƒN‚©‚ƒ^ƒXƒN—áŠOˆ—‹–‰Â
64 * (C-2) ‘Ώۃ^ƒXƒN‚ªŽÀsó‘Ԃ̃^ƒXƒN‚Å‚È‚¢
65 * (C-3) ‘Ώۃ^ƒXƒN‚ªŽÀsó‘Ԃ̃^ƒXƒN‚¾‚ªƒ^ƒXƒN—áŠOˆ—‹ÖŽ~
66 * ¨ ŽÀŽ{‚µ‚È‚¢iƒ^[ƒQƒbƒg”ñˆË‘¶‚ÉŽÀŒ»‚Å‚«‚È‚¢j
67 * (D) Š„ž‚݃nƒ“ƒhƒ‰‚̏oŒûˆ—‚É‚æ‚é‹N“®
68 * (D-1) ƒfƒBƒXƒpƒbƒ`Œã‚̃^ƒXƒN‚ªƒ^ƒXƒN—áŠO‹–‰Â‚Ń^ƒXƒN—áŠOˆ——v
69 * ‹‚ ‚è
70 * (E) CPU—áŠOƒnƒ“ƒhƒ‰‚̏oŒûˆ—‚É‚æ‚é‹N“®
71 * (E-1) ƒfƒBƒXƒpƒbƒ`Œã‚̃^ƒXƒN‚ªƒ^ƒXƒN—áŠO‹–‰Â‚Ń^ƒXƒN—áŠOˆ——v
72 * ‹‚ ‚è
73 * (F) sns_tex‚ÅŽÀsó‘Ԃ̃^ƒXƒN‚ª‚È‚¢
74 *
75 * yŽg—pƒŠƒ\[ƒXz
76 *
77 * TASK1: ƒƒCƒ“‚̃^ƒXƒNDŽÀsó‘Ԃ̃^ƒXƒN‚ɑ΂µ‚ă^ƒXƒN—áŠOˆ—‚ð—v‹‚·
78 * ‚é‘Ώۃ^ƒXƒN
79 * TASK2: ŽÀsó‘Ô‚Å‚È‚¢ƒ^ƒXƒN‚ɑ΂µ‚ă^ƒXƒN—áŠOˆ—‚ð—v‹‚·‚é‘Ώۃ^ƒXƒN
80 * TASK3: ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª’è‹`‚³‚ê‚Ä‚¢‚È‚¢ƒ^ƒXƒN
81 * TASK4: ‹xŽ~ó‘Ԃ̃^ƒXƒN
82 * ALM1: ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰1
83 * ALM2: ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰2
84 * ALM3: ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰3
85 * CPUEXC1: CPU—áŠOƒnƒ“ƒhƒ‰
86 *
87 * yƒeƒXƒgƒV[ƒPƒ“ƒXz
88 *
89 * == TASK1i—Dæ“xF10j==
90 * 1: ‰Šúó‘Ԃ̃`ƒFƒbƒN
91 * ref_tex(TSK_SELF, &rtex)
92 * 2: sta_alm(ALM1, 1U)
93 * ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰1‚ÌŽÀs‚ð‘Ò‚Â
94 * == ALM1 ==
95 * 3: ‰Šúó‘Ԃ̃`ƒFƒbƒN
96 * iras_tex(TASK3, 0x0001) ... (A-2)
97 * iras_tex(TASK4, 0x0001) ... (A-1)
98 * iras_tex(TASK2, 0x0001) ... (B-2)
99 * iras_tex(TASK1, 0x0001) ... (B-3)
100 * ƒŠƒ^[ƒ“
101 * == TASK1i‘±‚«j==
102 * 4: ena_tex()
103 * == TASK1ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“i1‰ñ–ځj==
104 * 5: ‰Šúó‘Ԃ̃`ƒFƒbƒN
105 * 6: dis_dsp() ... 4‚‚̏ó‘Ô‚ð‚»‚ê‚¼‚ê•Ï‰»‚³‚¹‚é
106 * chg_ipm(TMAX_INTPRI)
107 * ena_tex()
108 * loc_cpu()
109 * ƒŠƒ^[ƒ“
110 * == TASK1i‘±‚«j==
111 * 7: –ß‚Á‚Ä‚«‚½ó‘Ԃ̃`ƒFƒbƒN
112 * ref_tex(TSK_SELF, &rtex)
113 * 8: sta_alm(ALM2, 1U)
114 * ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰2‚ÌŽÀs‚ð‘Ò‚Â
115 * == ALM2 ==
116 * 9: ‰Šúó‘Ԃ̃`ƒFƒbƒN
117 * iras_tex(TASK1, 0x0002) ... (B-1)
118 * ƒŠƒ^[ƒ“ ... (D-1)
119 * == TASK1ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“i2‰ñ–ځj==
120 * 10: ‰Šúó‘Ԃ̃`ƒFƒbƒN
121 * ƒŠƒ^[ƒ“
122 * == TASK1i‘±‚«j==
123 * 11: sus_tsk(TASK2)
124 * sus_tsk(TASK3)
125 * 12: sta_alm(ALM3, 10U)
126 * 13: dly_tsk(50U)
127 * == ALM3 ==
128 * 14: ‰Šúó‘Ԃ̃`ƒFƒbƒN
129 * msns_tex()‚ðŠÜ‚ށn ... (F)
130 * iget_tid(&tskid)
131 * iras_tex(TASK1, 0x0004) ... (B-2)
132 * ƒŠƒ^[ƒ“
133 * == TASK1ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“i3‰ñ–ځj==
134 * 15: ‰Šúó‘Ԃ̃`ƒFƒbƒN
135 * ƒŠƒ^[ƒ“
136 * == TASK1i‘±‚«j==
137 * 16: rsm_tsk(TASK2)
138 * rsm_tsk(TASK3)
139 * dis_dsp()
140 * 17: RAISE_CPU_EXCEPTION
141 * == CPUEXC1 ==
142 * 18: ‰Šúó‘Ԃ̃`ƒFƒbƒN
143 * xsns_xpn(p_excinf)
144 * iras_tex(TASK3, 0x0010) ... (A-2)
145 * iras_tex(TASK4, 0x0010) ... (A-1)
146 * iras_tex(TASK2, 0x0010) ... (C-2)
147 * iras_tex(TASK1, 0x0010) ... (C-1)
148 * ƒŠƒ^[ƒ“ ... (E-1)
149 * == TASK1ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“i4‰ñ–ځj==
150 * 19: ‰Šúó‘Ԃ̃`ƒFƒbƒN
151 * 20: ext_tsk()
152 * == TASK2i—Dæ“xF10j==
153 * 21: ‰Šúó‘Ԃ̃`ƒFƒbƒN
154 * 22: ena_tex()
155 * == TASK2ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“ ==
156 * 23: ‰Šúó‘Ԃ̃`ƒFƒbƒN
157 * ƒŠƒ^[ƒ“
158 * == TASK2i‘±‚«j==
159 * 24: sus_tsk(TASK3)
160 * 25: ƒeƒXƒgI—¹
161 */
162
163#include <kernel.h>
164#include <test_lib.h>
165#include <t_syslog.h>
166#include "kernel_cfg.h"
167#include "test_tex2.h"
168
169volatile bool_t alm1_flag = false;
170volatile bool_t alm2_flag = false;
171volatile bool_t alm3_flag = false;
172
173void
174tex_task1(TEXPTN texptn, intptr_t exinf)
175{
176 ER ercd;
177
178 switch (texptn) {
179 case 0x0001:
180 check_point(5);
181 check_state(false, false, TIPM_ENAALL, false, false, true);
182
183 /*
184 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~CŠ„ž‚Ý—Dæ“xƒ}ƒXƒN•ÏXCƒ^ƒXƒN—áŠOˆ—‹–‰ÂC
185 * CPUƒƒbƒN
186 */
187 check_point(6);
188 ercd = dis_dsp();
189 check_ercd(ercd, E_OK);
190 ercd = chg_ipm(TMAX_INTPRI);
191 check_ercd(ercd, E_OK);
192 ercd = ena_tex();
193 check_ercd(ercd, E_OK);
194 ercd = loc_cpu();
195 check_ercd(ercd, E_OK);
196 check_state(false, true, TMAX_INTPRI, true, true, false);
197 break;
198
199 case 0x0002:
200 check_point(10);
201 check_state(false, false, TIPM_ENAALL, false, false, true);
202 break;
203
204 case 0x0004:
205 check_point(15);
206 check_state(false, false, TIPM_ENAALL, false, false, true);
207 break;
208
209 case 0x0010:
210 check_point(19);
211 check_state(false, false, TIPM_ENAALL, true, true, true);
212
213 /*
214 * ƒ^ƒXƒNI—¹
215 */
216 check_point(20);
217 ercd = ext_tsk();
218 check_point(0);
219 break;
220
221 default:
222 check_point(0);
223 break;
224 }
225}
226
227void
228task1(intptr_t exinf)
229{
230 ER ercd;
231 T_RTEX rtex;
232
233 /*
234 * ‰Šúó‘Ԃ̃`ƒFƒbƒN
235 */
236 check_point(1);
237 check_state(false, false, TIPM_ENAALL, false, false, true);
238 ercd = ref_tex(TSK_SELF, &rtex);
239 check_ercd(ercd, E_OK);
240 check_assert((rtex.texstat & TTEX_DIS) != 0);
241 check_assert(rtex.pndptn == 0);
242
243 /*
244 * ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰1‚Ì“®ìŠJŽn
245 */
246 check_point(2);
247 ercd = sta_alm(ALM1, 1U);
248 check_ercd(ercd, E_OK);
249
250 /*
251 * ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰1‚ÌŽÀs‚ð‘Ò‚Â
252 */
253 while (!(alm1_flag));
254
255 /*
256 * ƒ^ƒXƒN—áŠOˆ—‚ð‹–‰Â
257 */
258 check_point(4);
259 ercd = ena_tex();
260 /* ‚±‚±‚Ń^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª“®ì‚·‚é */
261 check_ercd(ercd, E_OK);
262
263 /*
264 * ƒ^ƒXƒN—áŠOˆ—‚©‚ç‚̃Šƒ^[ƒ“‚É‚æ‚茳‚̏ó‘Ô‚É–ß‚Á‚Ä‚¢‚邱‚Æ‚ð
265 * ƒ`ƒFƒbƒN
266 */
267 check_point(7);
268 check_state(false, false, TIPM_ENAALL, false, false, false);
269 ercd = ref_tex(TSK_SELF, &rtex);
270 check_ercd(ercd, E_OK);
271 check_assert((rtex.texstat & TTEX_ENA) != 0);
272 check_assert(rtex.pndptn == 0);
273
274 /*
275 * ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰2‚Ì“®ìŠJŽn
276 */
277 check_point(8);
278 ercd = sta_alm(ALM2, 1U);
279 check_ercd(ercd, E_OK);
280
281 /*
282 * ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰2‚ÌŽÀs‚ð‘Ò‚Â
283 */
284 while (!(alm2_flag));
285
286 /*
287 * TASK2‚ÆTASK3‚ðŽ~‚ß‚éD
288 */
289 check_point(11);
290 ercd = sus_tsk(TASK2);
291 check_ercd(ercd, E_OK);
292 ercd = sus_tsk(TASK3);
293 check_ercd(ercd, E_OK);
294
295 /*
296 * ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰3‚Ì“®ìŠJŽn
297 */
298 check_point(12);
299 ercd = sta_alm(ALM3, 10U);
300 check_ercd(ercd, E_OK);
301
302 /*
303 * ŽÀs’x‰„
304 */
305 check_point(13);
306 ercd = dly_tsk(50U);
307 /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰3‚ª“®ì‚·‚é */
308 check_ercd(ercd, E_OK);
309
310 /*
311 * TASK2‚ÆTASK3‚ðÄŠJ‚·‚éD
312 */
313 check_point(16);
314 ercd = rsm_tsk(TASK2);
315 check_ercd(ercd, E_OK);
316 ercd = rsm_tsk(TASK3);
317 check_ercd(ercd, E_OK);
318
319 /*
320 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~
321 */
322 ercd = dis_dsp();
323 check_ercd(ercd, E_OK);
324
325 /*
326 * CPU—áŠO‚𔭐¶‚³‚¹‚é
327 */
328 check_point(17);
329 RAISE_CPU_EXCEPTION;
330
331 check_point(0);
332}
333
334void
335tex_task2(TEXPTN texptn, intptr_t exinf)
336{
337 switch (texptn) {
338 case 0x0011:
339 check_point(23);
340 check_state(false, false, TIPM_ENAALL, false, false, true);
341 break;
342
343 default:
344 check_point(0);
345 break;
346 }
347}
348
349void
350task2(intptr_t exinf)
351{
352 ER ercd;
353
354 /*
355 * ‰Šúó‘Ԃ̃`ƒFƒbƒN
356 */
357 check_point(21);
358 check_state(false, false, TIPM_ENAALL, false, false, true);
359
360 /*
361 * ƒ^ƒXƒN—áŠOˆ—‚ð‹–‰Â
362 */
363 check_point(22);
364 ercd = ena_tex();
365 /* ‚±‚±‚Ń^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª“®ì‚·‚é */
366 check_ercd(ercd, E_OK);
367
368 /*
369 * TASK3‚ðŽ~‚ß‚éD
370 */
371 check_point(24);
372 ercd = sus_tsk(TASK3);
373 check_ercd(ercd, E_OK);
374
375 /*
376 * ƒeƒXƒgI—¹
377 */
378 check_finish(25);
379}
380
381void
382task3(intptr_t exinf)
383{
384 check_point(0);
385}
386
387void
388task4(intptr_t exinf)
389{
390 check_point(0);
391}
392
393void
394tex_task4(TEXPTN texptn, intptr_t exinf)
395{
396 check_point(0);
397}
398
399void
400alarm1_handler(intptr_t exinf)
401{
402 ER ercd;
403
404 /*
405 * ‰Šúó‘Ԃ̃`ƒFƒbƒN
406 */
407 check_point(3);
408 check_state_i(true, false, false, true, true);
409
410 /*
411 * iras_tex‚̃Gƒ‰[ŒŸo
412 */
413 ercd = iras_tex(TASK3, 0x0001);
414 check_ercd(ercd, E_OBJ);
415 ercd = iras_tex(TASK4, 0x0001);
416 check_ercd(ercd, E_OBJ);
417
418 /*
419 * ƒ^ƒXƒN—áŠOˆ—‚ð—v‹
420 */
421 ercd = iras_tex(TASK2, 0x0001);
422 check_ercd(ercd, E_OK);
423 ercd = iras_tex(TASK1, 0x0001);
424 check_ercd(ercd, E_OK);
425
426 alm1_flag = true;
427}
428
429void
430alarm2_handler(intptr_t exinf)
431{
432 ER ercd;
433
434 /*
435 * ‰Šúó‘Ԃ̃`ƒFƒbƒN
436 */
437 check_point(9);
438 check_state_i(true, false, false, true, false);
439
440 /*
441 * ƒ^ƒXƒN—áŠOˆ—‚ð—v‹
442 */
443 ercd = iras_tex(TASK1, 0x0002);
444 check_ercd(ercd, E_OK);
445
446 alm2_flag = true;
447}
448
449void
450alarm3_handler(intptr_t exinf)
451{
452 ER ercd;
453 ID tskid;
454
455 check_point(14);
456 check_state_i(true, false, false, true, true);
457 ercd = iget_tid(&tskid);
458 check_ercd(ercd, E_OK);
459 check_assert(tskid == TSK_NONE);
460
461 /*
462 * ƒ^ƒXƒN—áŠOˆ—‚ð—v‹
463 */
464 ercd = iras_tex(TASK1, 0x0004);
465 check_ercd(ercd, E_OK);
466
467 alm3_flag = true;
468}
469
470void
471cpuexc_handler(void *p_excinf)
472{
473 ER ercd;
474
475 /*
476 * ‰Šúó‘Ԃ̃`ƒFƒbƒN
477 */
478 check_point(18);
479 check_state_i(true, false, true, true, false);
480 check_assert(xsns_xpn(p_excinf) == false);
481
482 /*
483 * iras_tex‚̃Gƒ‰[ŒŸo
484 */
485 ercd = iras_tex(TASK3, 0x0010);
486 check_ercd(ercd, E_OBJ);
487 ercd = iras_tex(TASK4, 0x0010);
488 check_ercd(ercd, E_OBJ);
489
490 /*
491 * ƒ^ƒXƒN—áŠOˆ—‚ð—v‹
492 */
493 ercd = iras_tex(TASK2, 0x0010);
494 check_ercd(ercd, E_OK);
495 ercd = iras_tex(TASK1, 0x0010);
496 check_ercd(ercd, E_OK);
497}
Note: See TracBrowser for help on using the repository browser.