source: rtos_arduino/trunk/asp_1.9.2/test/test_cpuexc.txt@ 136

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

ライブラリとOS及びベーシックなサンプルの追加.

  • Property svn:mime-type set to application/octet-stream
File size: 4.5 KB
Line 
1
2 CPU例外処理のテスト
3
4【テストの目的】
5
6CPU例外ハンドラの実行開始/リターン時のシステム状æ…
7‹ã¨ï¼ŒCPU例外ハンドラ
8中でのxsns_dpnとxsns_xpnの動作を網羅
9的にテストする.
10
11【テスト項
12目】
13
14(A) CPU例外ハンドラ実行開始時にCPUロックフラグが変化しないこと
15
16(B) CPU例外ハンドラ実行開始時に割込み優å…
17ˆåº¦ãƒžã‚¹ã‚¯ãŒå¤‰åŒ–しないこと
18 !CPU例外ハンドラ中で割込み優å…
19ˆåº¦ãƒžã‚¹ã‚¯ã‚’読めないため,テストできな
20  い.
21
22(C) CPU例外ハンドラ実行開始時にディスパッチ禁止フラグが変化しないこと
23
24(D) CPU例外ハンドラ実行開始時にタスク例外処理禁止フラグが変化しないこと
25
26(E) CPU例外ハンドラリターン時にCPUロックフラグがå…
27ƒã«æˆ»ã‚‹ã“と
28
29(F) CPU例外ハンドラリターン時に割込み優å…
30ˆåº¦ãƒžã‚¹ã‚¯ãŒå…
31ƒã«æˆ»ã‚‹ã“と
32
33(G) CPU例外ハンドラリターン時にディスパッチ禁止フラグが変化しないこと
34
35(H) CPU例外ハンドラリターン時にタスク例外処理禁止フラグが変化しないこと
36
37(I) xsns_xpnが正しい値を返すこと
38
39xsns_xpnは,CPU例外が発生した状況が次の条件をすべて満たす場合にfalse,
40そうでない場合にtrueを返す.
41 ・タスクコンテキスト
42 ・割込みロック解除状æ…
43‹
44 ・CPUロック解除状æ…
45‹
46 ・割込み優å…
47ˆåº¦ãƒžã‚¹ã‚¯å…
48¨è§£é™¤çŠ¶æ…
49‹
50 ・タスク例外許可状æ…
51‹
52
53(J) xsns_dpnが正しい値を返すこと
54
55xsns_dpnは,CPU例外が発生した状況が次の条件をすべて満たす場合にfalse,
56そうでない場合にtrueを返す.
57 ・タスクコンテキスト
58 ・割込みロック解除状æ…
59‹
60 ・CPUロック解除状æ…
61‹
62 ・割込み優å…
63ˆåº¦ãƒžã‚¹ã‚¯å…
64¨è§£é™¤çŠ¶æ…
65‹
66 ・ディスパッチ許可状æ…
67‹
68
69(K) タスク切換えによるリカバリーができること
70
71(L) タスク例外によるリカバリーができること
72
73【テストを実施する状況】
74
75CPU例外の発生する状況は,次のように分類することができる.これらの状況毎
76にテストプログラムを用意する.
77
78(a-1) 非タスクコンテキスト
79(a-2) タスクコンテキスト
80
81(b-1) 割込みロック状æ…
82‹
83(b-2) 割込みロック解除状æ…
84‹
85
86(c-1) CPUロック状æ…
87‹
88(c-2) CPUロック解除状æ…
89‹
90
91(d-1) 割込み優å…
92ˆåº¦ãƒžã‚¹ã‚¯ï¼TIPM_ENAALL
93(d-2) 割込み優å…
94ˆåº¦ãƒžã‚¹ã‚¯ï¼TMAX_INTPRI
95 !TMAX_INTPRI=TMIN_INTPRIの場合は(d-3)と同じになるので実施しない.
96(d-3) 割込み優å…
97ˆåº¦ãƒžã‚¹ã‚¯ï¼TMIN_INTPRI
98(d-4) 割込み優å…
99ˆåº¦ãƒžã‚¹ã‚¯ï¼TMIN_INTPRI-1
100 !TMIN_INTPRI-1が設定できるかはターゲットに依存する.
101
102(e-1) ディスパッチ禁止状æ…
103‹
104(e-2) ディスパッチ許可状æ…
105‹
106
107(f-1) タスク例外禁止状æ…
108‹
109(f-2) タスク例外許可状æ…
110‹
111
112この組み合わせをすべてテストすることは現実的でないため,代表的なパター
113ンに絞り込む.
114
115まず,(a)~(c)の組み合わせで,次の5つのパターンをテストする.これらのテ
116ストをする際には,(d)~(f)については,(d-1)(e-1)(f-2)の組み合わせに固定
117する.
118
119(1) (a-1)(b-1)(c-2) → リカバリー不可
120 !(a-1)(b-1)(c-1)のテストは省く.
121(2) (a-1)(b-2)(c-1) → リカバリー不可
122(3) (a-1)(b-2)(c-2) → リカバリー不可
123
124(4) (a-2)(b-1)(c-2) → リカバリー不可
125 !(a-2)(b-1)(c-1)のテストは省く.
126(5) (a-2)(b-2)(c-1) → リカバリー不可
127
128次に,(a)~(c)を(a-2)(b-2)(c-2)に固定して,(d)~(f)の組み合わせで,次の
1298つのパターンをテストする.
130
131(6) (d-1)(e-2)(f-1) → タスク切換えによるリカバリー可能
132
133(7) (d-1)(e-1)(f-2) → タスク例外によるリカバリー可能
134
135(8) (d-2)(e-2)(f-2) → リカバリー不可
136 !(d-2)(e-1)(f-2)のテストは省く.
137
138(9) (d-3)(e-2)(f-2) → リカバリー不可
139 !(d-3)(e-1)(f-2)のテストは省く.
140
141(10) (d-4)(e-2)(f-2) → リカバリー不可
142 !(d-4)(e-1)(f-2)のテストは省く.
143
144(11) (d-1)(e-2)(f-2) → 両方法によるリカバリー可能
145
146(12) (d-1)(e-1)(f-1) → リカバリー不可
147 (d-2)~(d-4)×(e-1)×(f-1) のテスト(3パターン)は省く.
148
149(13) (d-3)(e-2)(f-1) → リカバリー不可
150 (d-2),(d-4)×(e-2)×(f-1) のテスト(2パターン)は省く.
151
152【使用リソース】
153
154TASK1: TA_ACT,中優å…
155ˆåº¦ï¼Œã‚¿ã‚¹ã‚¯ä¾‹å¤–処理ルーチン登録
156TASK2: TA_NULL,高優å…
157ˆåº¦
158CPUEXC1: TA_NULL
159ALM1: TA_NULL
160
161以上
Note: See TracBrowser for help on using the repository browser.