source: asp3_wo_tecs/trunk/test/test_notify1.c@ 306

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

3.1.0を反映

File size: 17.6 KB
Line 
1/*
2 * TOPPERS Software
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 *
5 * Copyright (C) 2015-2016 by Embedded and Real-Time Systems Laboratory
6 * Graduate School of Information Science, Nagoya Univ., JAPAN
7 *
8 * 上記著作権者
9は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
11 * 変・再é…
12å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
15 * スコード中に含まれていること.
16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
17 * 用できる形で再é…
18å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
19å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
20 * 者
21マニュアルなど)に,上記の著作権表示,この利用条件および下記
22 * の無保証規定を掲載すること.
23 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
24 * 用できない形で再é…
25å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
26 * と.
27 * (a) 再é…
28å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
29マニュアルなど)に,上記の著
30 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
31 * (b) 再é…
32å¸ƒã®å½¢æ…
33‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
34 * 報告すること.
35 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
36 * 害からも,上記著作権者
37およびTOPPERSプロジェクトをå…
38è²¬ã™ã‚‹ã“と.
39 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
40 * 由に基づく請求からも,上記著作権者
41およびTOPPERSプロジェクトを
42 * å…
43è²¬ã™ã‚‹ã“と.
44 *
45 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
46お
47 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
48 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
49 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
50 * の責任を負わない.
51 *
52 * $Id: test_notify1.c 738 2016-04-05 14:19:24Z ertl-hiro $
53 */
54
55/*
56 * 通知処理のテスト(1)
57 *
58 * 【テストの目的】
59 *
60 * タイムイベントとエラーの通知処理が正しく動作することを,アラーム通
61 * 知機能を用いて確認する.ただし,以下はこのテストの範囲外とする.
62 * ・タイムイベントハンドラの呼出しによる通知(他のテストでカバーされ
63 *  ているため)
64 * ・通知のタイミングの妥当性(他のテストでカバーされているため)
65 * ・付随情
66報のエラーチェック(コンフィギュレータで実施しているため)
67 *
68 * 【テスト項
69目】
70 *
71 * (A) タイムイベントの通知
72 * (A-1) 変数の設定
73 * (A-2) 変数のインクリメント
74 * (A-3) タスクの起動
75 * (A-4) タスクの起床
76 * (A-5) セマフォの資源の返却
77 * (A-6) イベントフラグのセット
78 * (A-7) データキューへの送信
79 * (B) エラーの通知
80 * (B-1) 変数の設定
81 * (B-2) 変数のインクリメント
82 * (B-3) タスクの起動
83 * (B-4) タスクの起床
84 * (B-5) セマフォの資源の返却
85 * (B-6) イベントフラグのセット
86 * (B-7) データキューへの送信
87 *
88 * 【使用リソース】
89 *
90 * TASK1: 中優å…
91ˆåº¦ã‚¿ã‚¹ã‚¯ï¼Œãƒ¡ã‚¤ãƒ³ã‚¿ã‚¹ã‚¯ï¼Œæœ€åˆã‹ã‚‰èµ·å‹•
92 * TASK2: 低優å…
93ˆåº¦ã‚¿ã‚¹ã‚¯
94 * SEM1: セマフォ
95 * FLG1: イベントフラグ
96 * DTQ1: データキュー
97 * ALM1: アラーム通知,変数の設定によるタイムイベントの通知
98 * ALM2: アラーム通知,タスクの起動によるタイムイベントの通知
99 * ALM3: アラーム通知,タスクの起床によるタイムイベントの通知,
100 * 変数の設定によるエラーの通知
101 * ALM4: アラーム通知,セマフォの資源の返却によるタイムイベントの通知,
102 * タスクの起動によるエラーの通知
103 * ALM5: アラーム通知,イベントフラグのセットによるタイムイベントの通知
104 * ※ASP3カーネルでは,イベントフラグのセットでエラー
105 * になることはない
106 * ALM6: アラーム通知,データキューへの送信によるタイムイベントの通知,
107 * タスクの起床によるエラーの通知
108 * ALM7: アラーム通知,タスクの起動によるタイムイベントの通知,
109 * セマフォの資源の返却によるエラーの通知
110 * ALM8: アラーム通知,タスクの起動によるタイムイベントの通知,
111 * イベントフラグのセットによるエラーの通知
112 * ALM9: アラーム通知,タスクの起動によるタイムイベントの通知,
113 * データキューへの送信によるエラーの通知
114 * ALM10: アラーム通知,変数のインクリメントによるタイムイベントの通知
115 * ALM11: アラーム通知,タスクの起動によるタイムイベントの通知,
116 * 変数のインクリメントによるエラーの通知
117 *
118 * 【テストシーケンス】
119 *
120 * == TASK1 ==
121 * 1: sta_alm(ALM1, TEST_TIME_PROC) ... ref_almで動作確認するまで
122 * assert(event_variable == false)
123 * ref_alm(ALM1, &ralm)
124 * assert((ralm.almstat & TALM_STA) != 0U)
125 * DO(wait_event()) ... (A-1)
126 * 2: ref_alm(ALM1, &ralm)
127 * assert((ralm.almstat & TALM_STP) != 0U)
128 * 3: sta_alm(ALM2, TEST_TIME_CP) ... TASK2-1が実行開始するまで
129 * ref_tsk(TASK2, &rtsk)
130 * assert((rtsk.tskstat & TTS_DMT) != 0U)
131 * ref_alm(ALM2, &ralm)
132 * assert((ralm.almstat & TALM_STA) != 0U)
133 * 4: slp_tsk()
134 * == TASK2-1(1回目)==
135 * 5: ref_alm(ALM2, &ralm) ... (A-3)
136 * assert((ralm.almstat & TALM_STP) != 0U)
137 * 6: wup_tsk(TASK1)
138 * == TASK1(続き)==
139 * 7: sta_alm(ALM3, TEST_TIME_CP) ... TASK2-1が実行再開するまで
140 * ref_tsk(TASK2, &rtsk)
141 * assert((rtsk.tskstat & TTS_RDY) != 0U)
142 * ref_alm(ALM3, &ralm)
143 * assert((ralm.almstat & TALM_STA) != 0U)
144 * 8: slp_tsk()
145 * == TASK2-1(続き)==
146 * 9: slp_tsk() ... (A-4)
147 * 10: ref_alm(ALM3, &ralm)
148 * assert((ralm.almstat & TALM_STP) != 0U)
149 * 11: wup_tsk(TASK1)
150 * == TASK1(続き)==
151 * 12: dly_tsk(TEST_TIME_CP) ... TASK1が実行再開するまで
152 * == TASK2-1(続き)==
153 * 13: ext_tsk()
154 * == TASK1(続き)==
155 * 14: sta_alm(ALM3, TEST_TIME_PROC) ... すぐに発生しても良い
156 * DO(wait_error()) ... (B-1)
157 * assert(error_variable == E_OBJ)
158 * 15: sta_alm(ALM4, TEST_TIME_PROC) ... ref_almで動作確認するまで
159 * ref_sem(SEM1, &rsem)
160 * assert(rsem.semcnt == 0U)
161 * ref_alm(ALM4, &ralm)
162 * assert((ralm.almstat & TALM_STA) != 0U)
163 * 16: dly_tsk(2 * TEST_TIME_PROC) ... ALM4が実行されるまで
164 * 17: ref_sem(SEM1, &rsem) ... (A-5)
165 * assert(rsem.semcnt == 1U)
166 * ref_alm(ALM4, &ralm)
167 * assert((ralm.almstat & TALM_STP) != 0U)
168 * 18: sta_alm(ALM4, TEST_TIME_CP) ... TASK2-2が実行開始するまで
169 * 19: slp_tsk()
170 * == TASK2-2(2回目)==
171 * 20: wup_tsk(TASK1) ... (B-3)
172 * == TASK1(続き)==
173 * 21: pol_sem(SEM1)
174 * 22: sta_alm(ALM5, 2 * TEST_TIME_CP) ... TASK1が実行開始するまで
175 * ref_flg(FLG1, &rflg)
176 * assert(rflg.flgptn == 0x00U)
177 * ref_alm(ALM5, &ralm)
178 * assert((ralm.almstat & TALM_STA) != 0U)
179 * 23: wai_flg(FLG1, 0x01U, TWF_ORW, &flgptn) ... (A-6)
180 * == TASK2-2(続き)==
181 * 24: slp_tsk()
182 * == TASK1(続き)==
183 * 25: assert(flgptn == 0x01U)
184 * ref_alm(ALM5, &ralm)
185 * assert((ralm.almstat & TALM_STP) != 0U)
186 * 26: sta_alm(ALM6, TEST_TIME_CP) ... ref_almで動作確認するまで
187 * ref_dtq(DTQ1, &rdtq)
188 * assert(rdtq.sdtqcnt == 0U)
189 * ref_alm(ALM6, &ralm)
190 * assert((ralm.almstat & TALM_STA) != 0U)
191 * 27: dly_tsk(2 * TEST_TIME_CP) ... ALM6が実行されるまで
192 * 28: ref_dtq(DTQ1, &rdtq) ... (A-7)
193 * assert(rdtq.sdtqcnt == 1U)
194 * ref_alm(ALM6, &ralm)
195 * assert((ralm.almstat & TALM_STP) != 0U)
196 * 29: sta_alm(ALM6, TEST_TIME_CP) ... TASK2-2が実行開始するまで
197 * 30: slp_tsk()
198 * == TASK2-2(続き)==
199 * 31: wup_tsk(TASK1) ... (B-4)
200 * == TASK1(続き)==
201 * 32: prcv_dtq(DTQ1, &data)
202 * assert(data == 0x01)
203 * 33: act_tsk(TASK2)
204 * sta_alm(ALM7, 2 * TEST_TIME_CP) ... TASK1が実行開始するまで
205 * ref_sem(SEM1, &rsem)
206 * assert(rsem.semcnt == 0U)
207 * ref_alm(ALM7, &ralm)
208 * assert((ralm.almstat & TALM_STA) != 0U)
209 * 34: wai_sem(SEM1) ... (B-5)
210 * == TASK2-2(続き)==
211 * 35: slp_tsk()
212 * == TASK1(続き)==
213 * 36: ref_alm(ALM7, &ralm)
214 * assert((ralm.almstat & TALM_STP) != 0U)
215 * 37: sta_alm(ALM8, TEST_TIME_CP) ... wai_flgで待
216ちにå…
217¥ã‚‹ã¾ã§
218 * ref_flg(FLG1, &rflg)
219 * assert(rflg.flgptn == 0x01U)
220 * ref_alm(ALM8, &ralm)
221 * assert((ralm.almstat & TALM_STA) != 0U)
222 * 38: wai_flg(FLG1, 0x02U, TWF_ORW, &flgptn) ... (B-6)
223 * 39: assert(flgptn == 0x03U)
224 * ref_alm(ALM8, &ralm)
225 * assert((ralm.almstat & TALM_STP) != 0U)
226 * 40: sta_alm(ALM9, TEST_TIME_CP) ... rcv_dtqで待
227ちにå…
228¥ã‚‹ã¾ã§
229 * ref_dtq(DTQ1, &rdtq)
230 * assert(rdtq.sdtqcnt == 0U)
231 * ref_alm(ALM9, &ralm)
232 * assert((ralm.almstat & TALM_STA) != 0U)
233 * 41: rcv_dtq(DTQ1, &data) ... (B-7)
234 * 42: assert(data == E_QOVR)
235 * ref_alm(ALM9, &ralm)
236 * assert((ralm.almstat & TALM_STP) != 0U)
237 * 43: sta_alm(ALM10, TEST_TIME_CP) ... ref_almで動作確認するまで
238 * 44: assert(count_variable == 1)
239 * ref_alm(ALM10, &ralm)
240 * assert((ralm.almstat & TALM_STA) != 0U)
241 * DO(wait_count(1)) ... (A-2)
242 * 45: ref_alm(ALM10, &ralm)
243 * assert((ralm.almstat & TALM_STP) != 0U)
244 * 46: sta_alm(ALM11, TEST_TIME_CP) ... ref_almで動作確認するまで
245 * 47: assert(count_variable == 2)
246 * ref_alm(ALM11, &ralm)
247 * assert((ralm.almstat & TALM_STA) != 0U)
248 * DO(wait_count(2)) ... (B-2)
249 * 48: ref_alm(ALM9, &ralm)
250 * assert((ralm.almstat & TALM_STP) != 0U)
251 * 49: END
252 */
253
254#include <kernel.h>
255#include <t_syslog.h>
256#include "syssvc/test_svc.h"
257#include "kernel_cfg.h"
258#include "test_notify1.h"
259
260volatile bool_t event_variable = false;
261volatile int_t count_variable = 1;
262volatile ER error_variable = E_INVALID;
263
264void
265wait_event(void)
266{
267 while (event_variable == false);
268}
269
270void
271wait_count(int_t current)
272{
273 while (count_variable == current);
274}
275
276void
277wait_error(void)
278{
279 while (error_variable == E_INVALID);
280}
281
282/* DO NOT DELETE THIS LINE -- gentest depends on it. */
283
284void
285task1(intptr_t exinf)
286{
287 ER_UINT ercd;
288 T_RALM ralm;
289 T_RTSK rtsk;
290 T_RSEM rsem;
291 T_RFLG rflg;
292 FLGPTN flgptn;
293 T_RDTQ rdtq;
294 intptr_t data;
295
296 test_start(__FILE__);
297
298 check_point(1);
299 ercd = sta_alm(ALM1, TEST_TIME_PROC);
300 check_ercd(ercd, E_OK);
301
302 check_assert(event_variable == false);
303
304 ercd = ref_alm(ALM1, &ralm);
305 check_ercd(ercd, E_OK);
306
307 check_assert((ralm.almstat & TALM_STA) != 0U);
308
309 wait_event();
310
311 check_point(2);
312 ercd = ref_alm(ALM1, &ralm);
313 check_ercd(ercd, E_OK);
314
315 check_assert((ralm.almstat & TALM_STP) != 0U);
316
317 check_point(3);
318 ercd = sta_alm(ALM2, TEST_TIME_CP);
319 check_ercd(ercd, E_OK);
320
321 ercd = ref_tsk(TASK2, &rtsk);
322 check_ercd(ercd, E_OK);
323
324 check_assert((rtsk.tskstat & TTS_DMT) != 0U);
325
326 ercd = ref_alm(ALM2, &ralm);
327 check_ercd(ercd, E_OK);
328
329 check_assert((ralm.almstat & TALM_STA) != 0U);
330
331 check_point(4);
332 ercd = slp_tsk();
333 check_ercd(ercd, E_OK);
334
335 check_point(7);
336 ercd = sta_alm(ALM3, TEST_TIME_CP);
337 check_ercd(ercd, E_OK);
338
339 ercd = ref_tsk(TASK2, &rtsk);
340 check_ercd(ercd, E_OK);
341
342 check_assert((rtsk.tskstat & TTS_RDY) != 0U);
343
344 ercd = ref_alm(ALM3, &ralm);
345 check_ercd(ercd, E_OK);
346
347 check_assert((ralm.almstat & TALM_STA) != 0U);
348
349 check_point(8);
350 ercd = slp_tsk();
351 check_ercd(ercd, E_OK);
352
353 check_point(12);
354 ercd = dly_tsk(TEST_TIME_CP);
355 check_ercd(ercd, E_OK);
356
357 check_point(14);
358 ercd = sta_alm(ALM3, TEST_TIME_PROC);
359 check_ercd(ercd, E_OK);
360
361 wait_error();
362
363 check_assert(error_variable == E_OBJ);
364
365 check_point(15);
366 ercd = sta_alm(ALM4, TEST_TIME_PROC);
367 check_ercd(ercd, E_OK);
368
369 ercd = ref_sem(SEM1, &rsem);
370 check_ercd(ercd, E_OK);
371
372 check_assert(rsem.semcnt == 0U);
373
374 ercd = ref_alm(ALM4, &ralm);
375 check_ercd(ercd, E_OK);
376
377 check_assert((ralm.almstat & TALM_STA) != 0U);
378
379 check_point(16);
380 ercd = dly_tsk(2 * TEST_TIME_PROC);
381 check_ercd(ercd, E_OK);
382
383 check_point(17);
384 ercd = ref_sem(SEM1, &rsem);
385 check_ercd(ercd, E_OK);
386
387 check_assert(rsem.semcnt == 1U);
388
389 ercd = ref_alm(ALM4, &ralm);
390 check_ercd(ercd, E_OK);
391
392 check_assert((ralm.almstat & TALM_STP) != 0U);
393
394 check_point(18);
395 ercd = sta_alm(ALM4, TEST_TIME_CP);
396 check_ercd(ercd, E_OK);
397
398 check_point(19);
399 ercd = slp_tsk();
400 check_ercd(ercd, E_OK);
401
402 check_point(21);
403 ercd = pol_sem(SEM1);
404 check_ercd(ercd, E_OK);
405
406 check_point(22);
407 ercd = sta_alm(ALM5, 2 * TEST_TIME_CP);
408 check_ercd(ercd, E_OK);
409
410 ercd = ref_flg(FLG1, &rflg);
411 check_ercd(ercd, E_OK);
412
413 check_assert(rflg.flgptn == 0x00U);
414
415 ercd = ref_alm(ALM5, &ralm);
416 check_ercd(ercd, E_OK);
417
418 check_assert((ralm.almstat & TALM_STA) != 0U);
419
420 check_point(23);
421 ercd = wai_flg(FLG1, 0x01U, TWF_ORW, &flgptn);
422 check_ercd(ercd, E_OK);
423
424 check_point(25);
425 check_assert(flgptn == 0x01U);
426
427 ercd = ref_alm(ALM5, &ralm);
428 check_ercd(ercd, E_OK);
429
430 check_assert((ralm.almstat & TALM_STP) != 0U);
431
432 check_point(26);
433 ercd = sta_alm(ALM6, TEST_TIME_CP);
434 check_ercd(ercd, E_OK);
435
436 ercd = ref_dtq(DTQ1, &rdtq);
437 check_ercd(ercd, E_OK);
438
439 check_assert(rdtq.sdtqcnt == 0U);
440
441 ercd = ref_alm(ALM6, &ralm);
442 check_ercd(ercd, E_OK);
443
444 check_assert((ralm.almstat & TALM_STA) != 0U);
445
446 check_point(27);
447 ercd = dly_tsk(2 * TEST_TIME_CP);
448 check_ercd(ercd, E_OK);
449
450 check_point(28);
451 ercd = ref_dtq(DTQ1, &rdtq);
452 check_ercd(ercd, E_OK);
453
454 check_assert(rdtq.sdtqcnt == 1U);
455
456 ercd = ref_alm(ALM6, &ralm);
457 check_ercd(ercd, E_OK);
458
459 check_assert((ralm.almstat & TALM_STP) != 0U);
460
461 check_point(29);
462 ercd = sta_alm(ALM6, TEST_TIME_CP);
463 check_ercd(ercd, E_OK);
464
465 check_point(30);
466 ercd = slp_tsk();
467 check_ercd(ercd, E_OK);
468
469 check_point(32);
470 ercd = prcv_dtq(DTQ1, &data);
471 check_ercd(ercd, E_OK);
472
473 check_assert(data == 0x01);
474
475 check_point(33);
476 ercd = act_tsk(TASK2);
477 check_ercd(ercd, E_OK);
478
479 ercd = sta_alm(ALM7, 2 * TEST_TIME_CP);
480 check_ercd(ercd, E_OK);
481
482 ercd = ref_sem(SEM1, &rsem);
483 check_ercd(ercd, E_OK);
484
485 check_assert(rsem.semcnt == 0U);
486
487 ercd = ref_alm(ALM7, &ralm);
488 check_ercd(ercd, E_OK);
489
490 check_assert((ralm.almstat & TALM_STA) != 0U);
491
492 check_point(34);
493 ercd = wai_sem(SEM1);
494 check_ercd(ercd, E_OK);
495
496 check_point(36);
497 ercd = ref_alm(ALM7, &ralm);
498 check_ercd(ercd, E_OK);
499
500 check_assert((ralm.almstat & TALM_STP) != 0U);
501
502 check_point(37);
503 ercd = sta_alm(ALM8, TEST_TIME_CP);
504 check_ercd(ercd, E_OK);
505
506 ercd = ref_flg(FLG1, &rflg);
507 check_ercd(ercd, E_OK);
508
509 check_assert(rflg.flgptn == 0x01U);
510
511 ercd = ref_alm(ALM8, &ralm);
512 check_ercd(ercd, E_OK);
513
514 check_assert((ralm.almstat & TALM_STA) != 0U);
515
516 check_point(38);
517 ercd = wai_flg(FLG1, 0x02U, TWF_ORW, &flgptn);
518 check_ercd(ercd, E_OK);
519
520 check_point(39);
521 check_assert(flgptn == 0x03U);
522
523 ercd = ref_alm(ALM8, &ralm);
524 check_ercd(ercd, E_OK);
525
526 check_assert((ralm.almstat & TALM_STP) != 0U);
527
528 check_point(40);
529 ercd = sta_alm(ALM9, TEST_TIME_CP);
530 check_ercd(ercd, E_OK);
531
532 ercd = ref_dtq(DTQ1, &rdtq);
533 check_ercd(ercd, E_OK);
534
535 check_assert(rdtq.sdtqcnt == 0U);
536
537 ercd = ref_alm(ALM9, &ralm);
538 check_ercd(ercd, E_OK);
539
540 check_assert((ralm.almstat & TALM_STA) != 0U);
541
542 check_point(41);
543 ercd = rcv_dtq(DTQ1, &data);
544 check_ercd(ercd, E_OK);
545
546 check_point(42);
547 check_assert(data == E_QOVR);
548
549 ercd = ref_alm(ALM9, &ralm);
550 check_ercd(ercd, E_OK);
551
552 check_assert((ralm.almstat & TALM_STP) != 0U);
553
554 check_point(43);
555 ercd = sta_alm(ALM10, TEST_TIME_CP);
556 check_ercd(ercd, E_OK);
557
558 check_point(44);
559 check_assert(count_variable == 1);
560
561 ercd = ref_alm(ALM10, &ralm);
562 check_ercd(ercd, E_OK);
563
564 check_assert((ralm.almstat & TALM_STA) != 0U);
565
566 wait_count(1);
567
568 check_point(45);
569 ercd = ref_alm(ALM10, &ralm);
570 check_ercd(ercd, E_OK);
571
572 check_assert((ralm.almstat & TALM_STP) != 0U);
573
574 check_point(46);
575 ercd = sta_alm(ALM11, TEST_TIME_CP);
576 check_ercd(ercd, E_OK);
577
578 check_point(47);
579 check_assert(count_variable == 2);
580
581 ercd = ref_alm(ALM11, &ralm);
582 check_ercd(ercd, E_OK);
583
584 check_assert((ralm.almstat & TALM_STA) != 0U);
585
586 wait_count(2);
587
588 check_point(48);
589 ercd = ref_alm(ALM9, &ralm);
590 check_ercd(ercd, E_OK);
591
592 check_assert((ralm.almstat & TALM_STP) != 0U);
593
594 check_finish(49);
595 check_point(0);
596}
597
598static uint_t task2_count = 0;
599
600void
601task2(intptr_t exinf)
602{
603 ER_UINT ercd;
604 T_RALM ralm;
605
606 switch (++task2_count) {
607 case 1:
608 check_point(5);
609 ercd = ref_alm(ALM2, &ralm);
610 check_ercd(ercd, E_OK);
611
612 check_assert((ralm.almstat & TALM_STP) != 0U);
613
614 check_point(6);
615 ercd = wup_tsk(TASK1);
616 check_ercd(ercd, E_OK);
617
618 check_point(9);
619 ercd = slp_tsk();
620 check_ercd(ercd, E_OK);
621
622 check_point(10);
623 ercd = ref_alm(ALM3, &ralm);
624 check_ercd(ercd, E_OK);
625
626 check_assert((ralm.almstat & TALM_STP) != 0U);
627
628 check_point(11);
629 ercd = wup_tsk(TASK1);
630 check_ercd(ercd, E_OK);
631
632 check_point(13);
633 ercd = ext_tsk();
634 check_ercd(ercd, E_OK);
635
636 check_point(0);
637
638 case 2:
639 check_point(20);
640 ercd = wup_tsk(TASK1);
641 check_ercd(ercd, E_OK);
642
643 check_point(24);
644 ercd = slp_tsk();
645 check_ercd(ercd, E_OK);
646
647 check_point(31);
648 ercd = wup_tsk(TASK1);
649 check_ercd(ercd, E_OK);
650
651 check_point(35);
652 ercd = slp_tsk();
653 check_ercd(ercd, E_OK);
654
655 check_point(0);
656
657 default:
658 check_point(0);
659 }
660 check_point(0);
661}
Note: See TracBrowser for help on using the repository browser.