Changeset 315 for rubycfg_asp/trunk/asp_dcre/test/test_cpuexc.txt
- Timestamp:
- Jul 23, 2017, 2:29:40 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
rubycfg_asp/trunk/asp_dcre/test/test_cpuexc.txt
-
Property svn:mime-type
changed from
text/plain
totext/plane; charset=UTF-8
r313 r315 1 1 2 CPU ä¾å¤å¦çã®ãã¹ã2 CPU例外処理のテスト 3 3 4 ããã¹ãã®ç®çã 4 【テストの目的】 5 5 6 CPUä¾å¤ãã³ãã©ã®å®è¡éå§ï¼ãªã¿ã¼ã³æã®ã·ã¹ãã ç¶æ 7 ã¨ï¼CPUä¾å¤ãã³ãã© 8 ä¸ã§ã®xsns_dpnã¨xsns_xpnã®åä½ãç¶²ç¾ 9 çã«ãã¹ãããï¼ 6 CPU例外ハンドラの実行開始/リターン時のシステム状態と,CPU例外ハンドラ 7 中でのxsns_dpnとxsns_xpnの動作を網羅的にテストする. 10 8 11 ããã¹ãé 12 ç®ã 9 【テスト項目】 13 10 14 (A) CPU ä¾å¤ãã³ãã©å®è¡éå§æã«CPUããã¯ãã©ã°ãå¤åããªããã¨11 (A) CPU例外ハンドラ実行開始時にCPUロックフラグが変化しないこと 15 12 16 (B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå 17 度ãã¹ã¯ãå¤åããªãã㨠18 ï¼CPUä¾å¤ãã³ãã©ä¸ã§å²è¾¼ã¿åªå 19 度ãã¹ã¯ãèªããªãããï¼ãã¹ãã§ã㪠20 ããï¼ 13 (B) CPU例外ハンドラ実行開始時に割込み優先度マスクが変化しないこと 14 !CPU例外ハンドラ中で割込み優先度マスクを読めないため,テストできな 15 い. 21 16 22 (C) CPU ä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ¢ãã©ã°ãå¤åããªããã¨17 (C) CPU例外ハンドラ実行開始時にディスパッチ禁止フラグが変化しないこと 23 18 24 (D) CPU ä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ¢ãã©ã°ãå¤åããªããã¨19 (D) CPU例外ハンドラ実行開始時にタスク例外処理禁止フラグが変化しないこと 25 20 26 (E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUããã¯ãã©ã°ãå 27 ã«æ»ãã㨠21 (E) CPU例外ハンドラリターン時にCPUロックフラグが元に戻ること 28 22 29 (F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå 30 度ãã¹ã¯ãå 31 ã«æ»ãã㨠23 (F) CPU例外ハンドラリターン時に割込み優先度マスクが元に戻ること 32 24 33 (G) CPU ä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ¢ãã©ã°ãå¤åããªããã¨25 (G) CPU例外ハンドラリターン時にディスパッチ禁止フラグが変化しないこと 34 26 35 (H) CPU ä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ¢ãã©ã°ãå¤åããªããã¨27 (H) CPU例外ハンドラリターン時にタスク例外処理禁止フラグが変化しないこと 36 28 37 (I) xsns_xpn ãæ£ããå¤ãè¿ããã¨29 (I) xsns_xpnが正しい値を返すこと 38 30 39 xsns_xpnã¯ï¼CPUä¾å¤ãçºçããç¶æ³ã次ã®æ¡ä»¶ããã¹ã¦æºããå ´åã«falseï¼ 40 ããã§ãªãå ´åã«trueãè¿ãï¼ 41 ãã»ã¿ã¹ã¯ã³ã³ããã¹ã 42 ãã»å²è¾¼ã¿ããã¯è§£é¤ç¶æ 43 44 ãã»CPUããã¯è§£é¤ç¶æ 45 46 ãã»å²è¾¼ã¿åªå 47 度ãã¹ã¯å 48 ¨è§£é¤ç¶æ 49 50 ãã»ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ 51 31 xsns_xpnは,CPU例外が発生した状況が次の条件をすべて満たす場合にfalse, 32 そうでない場合にtrueを返す. 33 ・タスクコンテキスト 34 ・割込みロック解除状態 35 ・CPUロック解除状態 36 ・割込み優先度マスク全解除状態 37 ・タスク例外許可状態 52 38 53 (J) xsns_dpn ãæ£ããå¤ãè¿ããã¨39 (J) xsns_dpnが正しい値を返すこと 54 40 55 xsns_dpnã¯ï¼CPUä¾å¤ãçºçããç¶æ³ã次ã®æ¡ä»¶ããã¹ã¦æºããå ´åã«falseï¼ 56 ããã§ãªãå ´åã«trueãè¿ãï¼ 57 ãã»ã¿ã¹ã¯ã³ã³ããã¹ã 58 ãã»å²è¾¼ã¿ããã¯è§£é¤ç¶æ 59 60 ãã»CPUããã¯è§£é¤ç¶æ 61 62 ãã»å²è¾¼ã¿åªå 63 度ãã¹ã¯å 64 ¨è§£é¤ç¶æ 65 66 ãã»ãã£ã¹ããã許å¯ç¶æ 67 41 xsns_dpnは,CPU例外が発生した状況が次の条件をすべて満たす場合にfalse, 42 そうでない場合にtrueを返す. 43 ・タスクコンテキスト 44 ・割込みロック解除状態 45 ・CPUロック解除状態 46 ・割込み優先度マスク全解除状態 47 ・ディスパッチ許可状態 68 48 69 (K) ã¿ã¹ã¯åæãã«ãããªã«ããªã¼ãã§ãããã¨49 (K) タスク切換えによるリカバリーができること 70 50 71 (L) ã¿ã¹ã¯ä¾å¤ã«ãããªã«ããªã¼ãã§ãããã¨51 (L) タスク例外によるリカバリーができること 72 52 73 ããã¹ããå®æ½ããç¶æ³ã 53 【テストを実施する状況】 74 54 75 CPU ä¾å¤ã®çºçããç¶æ³ã¯ï¼æ¬¡ã®ããã«åé¡ãããã¨ãã§ããï¼ãããã®ç¶æ³æ¯76 ã«ãã¹ãããã°ã©ã ãç¨æããï¼ 55 CPU例外の発生する状況は,次のように分類することができる.これらの状況毎 56 にテストプログラムを用意する. 77 57 78 (a-1) éã¿ã¹ã¯ã³ã³ããã¹ã79 (a-2) ã¿ã¹ã¯ã³ã³ããã¹ã58 (a-1) 非タスクコンテキスト 59 (a-2) タスクコンテキスト 80 60 81 (b-1) å²è¾¼ã¿ããã¯ç¶æ 82 83 (b-2) å²è¾¼ã¿ããã¯è§£é¤ç¶æ 84 61 (b-1) 割込みロック状態 62 (b-2) 割込みロック解除状態 85 63 86 (c-1) CPUããã¯ç¶æ 87 88 (c-2) CPUããã¯è§£é¤ç¶æ 89 64 (c-1) CPUロック状態 65 (c-2) CPUロック解除状態 90 66 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ãè¨å®ã§ãããã¯ã¿ã¼ã²ããã«ä¾åããï¼ 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が設定できるかはターゲットに依存する. 101 73 102 (e-1) ãã£ã¹ãããç¦æ¢ç¶æ 103 104 (e-2) ãã£ã¹ããã許å¯ç¶æ 105 74 (e-1) ディスパッチ禁止状態 75 (e-2) ディスパッチ許可状態 106 76 107 (f-1) ã¿ã¹ã¯ä¾å¤ç¦æ¢ç¶æ 108 109 (f-2) ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ 110 77 (f-1) タスク例外禁止状態 78 (f-2) タスク例外許可状態 111 79 112 ãã®çµã¿åããããã¹ã¦ãã¹ããããã¨ã¯ç¾å®çã§ãªãããï¼ä»£è¡¨çãªãã¿ã¼ 113 ã³ã«çµãè¾¼ãï¼ 80 この組み合わせをすべてテストすることは現実的でないため,代表的なパター 81 ンに絞り込む. 114 82 115 ã¾ãï¼(a)ï½(c)ã®çµã¿åããã§ï¼æ¬¡ã®5ã¤ã®ãã¿ã¼ã³ããã¹ãããï¼ãããã®ã 116 ã¹ããããéã«ã¯ï¼(d)ï½(f)ã«ã¤ãã¦ã¯ï¼(d-1)(e-1)(f-2)ã®çµã¿åããã«åºå® 117 ããï¼ 83 まず,(a)~(c)の組み合わせで,次の5つのパターンをテストする.これらのテ 84 ストをする際には,(d)~(f)については,(d-1)(e-1)(f-2)の組み合わせに固定 85 する. 118 86 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) â ãªã«ããªã¼ä¸å¯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) → リカバリー不可 123 91 124 (4) (a-2)(b-1)(c-2) â ãªã«ããªã¼ä¸å¯125 ï¼(a-2)(b-1)(c-1)ã®ãã¹ãã¯çãï¼126 (5) (a-2)(b-2)(c-1) â ãªã«ããªã¼ä¸å¯92 (4) (a-2)(b-1)(c-2) → リカバリー不可 93 !(a-2)(b-1)(c-1)のテストは省く. 94 (5) (a-2)(b-2)(c-1) → リカバリー不可 127 95 128 次ã«ï¼(a)ï½(c)ã(a-2)(b-2)(c-2)ã«åºå®ãã¦ï¼(d)ï½(f)ã®çµã¿åããã§ï¼æ¬¡ã® 129 8 ã¤ã®ãã¿ã¼ã³ããã¹ãããï¼96 次に,(a)~(c)を(a-2)(b-2)(c-2)に固定して,(d)~(f)の組み合わせで,次の 97 8つのパターンをテストする. 130 98 131 (6) (d-1)(e-2)(f-1) â ã¿ã¹ã¯åæãã«ãããªã«ããªã¼å¯è½99 (6) (d-1)(e-2)(f-1) → タスク切換えによるリカバリー可能 132 100 133 (7) (d-1)(e-1)(f-2) â ã¿ã¹ã¯ä¾å¤ã«ãããªã«ããªã¼å¯è½101 (7) (d-1)(e-1)(f-2) → タスク例外によるリカバリー可能 134 102 135 (8) (d-2)(e-2)(f-2) â ãªã«ããªã¼ä¸å¯136 ï¼(d-2)(e-1)(f-2)ã®ãã¹ãã¯çãï¼103 (8) (d-2)(e-2)(f-2) → リカバリー不可 104 !(d-2)(e-1)(f-2)のテストは省く. 137 105 138 (9) (d-3)(e-2)(f-2) â ãªã«ããªã¼ä¸å¯139 ï¼(d-3)(e-1)(f-2)ã®ãã¹ãã¯çãï¼106 (9) (d-3)(e-2)(f-2) → リカバリー不可 107 !(d-3)(e-1)(f-2)のテストは省く. 140 108 141 (10) (d-4)(e-2)(f-2) â ãªã«ããªã¼ä¸å¯142 ï¼(d-4)(e-1)(f-2)ã®ãã¹ãã¯çãï¼109 (10) (d-4)(e-2)(f-2) → リカバリー不可 110 !(d-4)(e-1)(f-2)のテストは省く. 143 111 144 (11) (d-1)(e-2)(f-2) â 両æ¹æ³ã«ãããªã«ããªã¼å¯è½112 (11) (d-1)(e-2)(f-2) → 両方法によるリカバリー可能 145 113 146 (12) (d-1)(e-1)(f-1) â ãªã«ããªã¼ä¸å¯147 (d-2) ï½(d-4)Ã(e-1)Ã(f-1) ã®ãã¹ãï¼3ãã¿ã¼ã³ï¼ã¯çãï¼114 (12) (d-1)(e-1)(f-1) → リカバリー不可 115 (d-2)~(d-4)×(e-1)×(f-1) のテスト(3パターン)は省く. 148 116 149 (13) (d-3)(e-2)(f-1) â ãªã«ããªã¼ä¸å¯150 (d-2),(d-4) Ã(e-2)Ã(f-1) ã®ãã¹ãï¼2ãã¿ã¼ã³ï¼ã¯çãï¼117 (13) (d-3)(e-2)(f-1) → リカバリー不可 118 (d-2),(d-4)×(e-2)×(f-1) のテスト(2パターン)は省く. 151 119 152 ã使ç¨ãªã½ã¼ã¹ã 120 【使用リソース】 153 121 154 TASK1: TA_ACTï¼ä¸åªå 155 度ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é² 156 TASK2: TA_NULLï¼é«åªå 157 度 122 TASK1: TA_ACT,中優先度,タスク例外処理ルーチン登録 123 TASK2: TA_NULL,高優先度 158 124 CPUEXC1: TA_NULL 159 125 ALM1: TA_NULL 160 126 161 ä»¥ä¸ 127 以上 -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.