source: azure_iot_hub_f767zi/trunk/asp_baseplatform/test/test_cpuexc.txt@ 457

Last change on this file since 457 was 457, checked in by coas-nagasima, 4 years ago

ファイルを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain;charset=UTF-8
File size: 4.5 KB
Line 
1
2 CPU例外処理のテスト
3
4【テストの目的】
5
6CPU例外ハンドラの実行開始/リターン時のシステム状態と,CPU例外ハンドラ
7中でのxsns_dpnとxsns_xpnの動作を網羅的にテストする.
8
9【テスト項目】
10
11(A) CPU例外ハンドラ実行開始時にCPUロックフラグが変化しないこと
12
13(B) CPU例外ハンドラ実行開始時に割込み優先度マスクが変化しないこと
14 !CPU例外ハンドラ中で割込み優先度マスクを読めないため,テストできな
15  い.
16
17(C) CPU例外ハンドラ実行開始時にディスパッチ禁止フラグが変化しないこと
18
19(D) CPU例外ハンドラ実行開始時にタスク例外処理禁止フラグが変化しないこと
20
21(E) CPU例外ハンドラリターン時にCPUロックフラグが元に戻ること
22
23(F) CPU例外ハンドラリターン時に割込み優先度マスクが元に戻ること
24
25(G) CPU例外ハンドラリターン時にディスパッチ禁止フラグが変化しないこと
26
27(H) CPU例外ハンドラリターン時にタスク例外処理禁止フラグが変化しないこと
28
29(I) xsns_xpnが正しい値を返すこと
30
31xsns_xpnは,CPU例外が発生した状況が次の条件をすべて満たす場合にfalse,
32そうでない場合にtrueを返す.
33 ・タスクコンテキスト
34 ・割込みロック解除状態
35 ・CPUロック解除状態
36 ・割込み優先度マスク全解除状態
37 ・タスク例外許可状態
38
39(J) xsns_dpnが正しい値を返すこと
40
41xsns_dpnは,CPU例外が発生した状況が次の条件をすべて満たす場合にfalse,
42そうでない場合にtrueを返す.
43 ・タスクコンテキスト
44 ・割込みロック解除状態
45 ・CPUロック解除状態
46 ・割込み優先度マスク全解除状態
47 ・ディスパッチ許可状態
48
49(K) タスク切換えによるリカバリーができること
50
51(L) タスク例外によるリカバリーができること
52
53【テストを実施する状況】
54
55CPU例外の発生する状況は,次のように分類することができる.これらの状況毎
56にテストプログラムを用意する.
57
58(a-1) 非タスクコンテキスト
59(a-2) タスクコンテキスト
60
61(b-1) 割込みロック状態
62(b-2) 割込みロック解除状態
63
64(c-1) CPUロック状態
65(c-2) CPUロック解除状態
66
67(d-1) 割込み優先度マスク=TIPM_ENAALL
68(d-2) 割込み優先度マスク=TMAX_INTPRI
69 !TMAX_INTPRI=TMIN_INTPRIの場合は(d-3)と同じになるので実施しない.
70(d-3) 割込み優先度マスク=TMIN_INTPRI
71(d-4) 割込み優先度マスク=TMIN_INTPRI-1
72 !TMIN_INTPRI-1が設定できるかはターゲットに依存する.
73
74(e-1) ディスパッチ禁止状態
75(e-2) ディスパッチ許可状態
76
77(f-1) タスク例外禁止状態
78(f-2) タスク例外許可状態
79
80この組み合わせをすべてテストすることは現実的でないため,代表的なパター
81ンに絞り込む.
82
83まず,(a)~(c)の組み合わせで,次の5つのパターンをテストする.これらのテ
84ストをする際には,(d)~(f)については,(d-1)(e-1)(f-2)の組み合わせに固定
85する.
86
87(1) (a-1)(b-1)(c-2) → リカバリー不可
88 !(a-1)(b-1)(c-1)のテストは省く.
89(2) (a-1)(b-2)(c-1) → リカバリー不可
90(3) (a-1)(b-2)(c-2) → リカバリー不可
91
92(4) (a-2)(b-1)(c-2) → リカバリー不可
93 !(a-2)(b-1)(c-1)のテストは省く.
94(5) (a-2)(b-2)(c-1) → リカバリー不可
95
96次に,(a)~(c)を(a-2)(b-2)(c-2)に固定して,(d)~(f)の組み合わせで,次の
978つのパターンをテストする.
98
99(6) (d-1)(e-2)(f-1) → タスク切換えによるリカバリー可能
100
101(7) (d-1)(e-1)(f-2) → タスク例外によるリカバリー可能
102
103(8) (d-2)(e-2)(f-2) → リカバリー不可
104 !(d-2)(e-1)(f-2)のテストは省く.
105
106(9) (d-3)(e-2)(f-2) → リカバリー不可
107 !(d-3)(e-1)(f-2)のテストは省く.
108
109(10) (d-4)(e-2)(f-2) → リカバリー不可
110 !(d-4)(e-1)(f-2)のテストは省く.
111
112(11) (d-1)(e-2)(f-2) → 両方法によるリカバリー可能
113
114(12) (d-1)(e-1)(f-1) → リカバリー不可
115 (d-2)~(d-4)×(e-1)×(f-1) のテスト(3パターン)は省く.
116
117(13) (d-3)(e-2)(f-1) → リカバリー不可
118 (d-2),(d-4)×(e-2)×(f-1) のテスト(2パターン)は省く.
119
120【使用リソース】
121
122TASK1: TA_ACT,中優先度,タスク例外処理ルーチン登録
123TASK2: TA_NULL,高優先度
124CPUEXC1: TA_NULL
125ALM1: TA_NULL
126
127以上
Note: See TracBrowser for help on using the repository browser.