Changeset 315 for rubycfg_asp/trunk/asp_dcre/test/test_tex1.c
- 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_tex1.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=UTF-8
r313 r315 6 6 * Graduate School of Information Science, Nagoya Univ., JAPAN 7 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 責ãããã¨ï¼ 8 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * $Id$ … … 54 39 55 40 /* 56 * ã¿ã¹ã¯ä¾å¤å¦çã«é¢ãããã¹ã(1) 57 * 58 * ããã¹ãã®ç®çã 59 * 60 * ã¿ã¹ã¯ããã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãèµ·åããå¦çãç¶²ç¾ 61 çã«ãã¹ãããï¼ 62 * 63 * ããã¹ãé 64 ç®ã 65 * 66 * (A) ras_texã®ã¨ã©ã¼æ¤åº 67 * (A-1) 対象ã¿ã¹ã¯ãä¼æ¢ç¶æ 68 ï¼»NGKI1413ï¼½ 69 * (A-2) 対象ã¿ã¹ã¯ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªãï¼»NGKI1414ï¼½ 70 * (B) dis_texã®ã¨ã©ã¼æ¤åº 71 * (B-1) èªã¿ã¹ã¯ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªãï¼»NGKI1421ï¼½ 72 * (C) ena_texã®ã¨ã©ã¼æ¤åº 73 * (C-1) èªã¿ã¹ã¯ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªãï¼»NGKI1426ï¼½ 74 * (D) ref_texã®ã¨ã©ã¼æ¤åº 75 * (D-1) 対象ã¿ã¹ã¯ãä¼æ¢ç¶æ 76 ï¼»NGKI1439ï¼½ 77 * (D-2) 対象ã¿ã¹ã¯ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªãï¼»NGKI1440ï¼½ 78 * (E) ras_texã®æ£å¸¸å¦çï¼»NGKI1415ï¼½ 79 * (E-1) 対象ã¿ã¹ã¯ãèªã¿ã¹ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦ç許å¯ï¼ãã¤å²è¾¼ã¿åªå 80 81 * 度ãã¹ã¯å 82 ¨è§£é¤ç¶æ 83 ã§ï¼ããã«å®è¡éå§ 84 * (E-2) 対象ã¿ã¹ã¯ãèªã¿ã¹ã¯ã§ãªã 85 * (E-3) 対象ã¿ã¹ã¯ãèªã¿ã¹ã¯ã ãï¼ã¿ã¹ã¯ä¾å¤å¦çç¦æ¢ 86 * (E-4) 対象ã¿ã¹ã¯ãèªã¿ã¹ã¯ã§ã¿ã¹ã¯ä¾å¤å¦ç許å¯ã ãï¼å²è¾¼ã¿åªå 87 88 * 度ãã¹ã¯ãå 89 ¨è§£é¤ã§ãªã 90 * (F) ena_texã®æ£å¸¸å¦çï¼»NGKI1427ï¼½ 91 * (F-1) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ãããï¼ãã¤å²è¾¼ã¿åªå 92 度ãã¹ã¯å 93 ¨è§£é¤ç¶ 94 * æ 95 ã§ï¼ããã«å®è¡éå§ 96 * (F-2) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ããªã 97 * (F-3) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ããããï¼å²è¾¼ã¿åªå 98 度ãã¹ã¯ãå 99 ¨è§£é¤ã§ 100 * ãªã 101 * (G) chg_ipmã®æ£å¸¸å¦ç 102 * (G-1) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ãããï¼ãã¤ã¿ã¹ã¯ä¾å¤å¦ç許å¯ã§ï¼ãã 103 * ã«å®è¡éå§ 104 * (G-2) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ããªã 105 * (G-3) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ããããï¼ã¿ã¹ã¯ä¾å¤å¦çç¦æ¢ 106 * (G-4) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ããããï¼å²è¾¼ã¿åªå 107 度ãã¹ã¯ãå 108 ¨è§£é¤ã§ 109 * ãªã 110 * (H) ã¿ã¹ã¯ãã£ã¹ãããã£ã«ããèµ·å 111 * (H-1) ãã£ã¹ãããå¾ã®ã¿ã¹ã¯ãã¿ã¹ã¯ä¾å¤è¨±å¯ã§ã¿ã¹ã¯ä¾å¤å¦çè¦ 112 * æ±ãã 113 * (I) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããã®ãªã¿ã¼ã³ã«ããèµ·åï¼é£ç¶èµ·åï¼ 114 * (J) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããã®æ»ãæã«ããç¶æ 115 復帰 116 * (J-1) ã¿ã¹ã¯ã«æ»ã£ã¦ããæ 117 * (J-2) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãé£ç¶èµ·åãããæ 118 * (K) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¤éèµ·å 119 * (L) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããã®æ»ãæã®ã¿ã¹ã¯åæã 120 * 121 * ã使ç¨ãªã½ã¼ã¹ã 122 * 123 * TASK1: ã¡ã¤ã³ã®ã¿ã¹ã¯ï¼èªã¿ã¹ã¯ã«å¯¾ãã¦ã¿ã¹ã¯ä¾å¤å¦çãè¦æ±ãã 124 * TASK2: ä»ã¿ã¹ã¯ã«å¯¾ãã¦ã¿ã¹ã¯ä¾å¤å¦çãè¦æ±ãã対象ã¿ã¹ã¯ 125 * TASK3: ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªãã¿ã¹ã¯ 126 * TASK4: ä¼æ¢ç¶æ 127 ã®ã¿ã¹ã¯ 128 * 129 * ããã¹ãã·ã¼ã±ã³ã¹ã 130 * 131 * == TASK1ï¼åªå 132 度ï¼10ï¼== 41 * タスク例外処理に関するテスト(1) 42 * 43 * 【テストの目的】 44 * 45 * タスクからタスク例外処理ルーチンを起動する処理を網羅的にテストする. 46 * 47 * 【テスト項目】 48 * 49 * (A) ras_texのエラー検出 50 * (A-1) 対象タスクが休止状態[NGKI1413] 51 * (A-2) 対象タスクのタスク例外処理ルーチンが定義されていない[NGKI1414] 52 * (B) dis_texのエラー検出 53 * (B-1) 自タスクのタスク例外処理ルーチンが定義されていない[NGKI1421] 54 * (C) ena_texのエラー検出 55 * (C-1) 自タスクのタスク例外処理ルーチンが定義されていない[NGKI1426] 56 * (D) ref_texのエラー検出 57 * (D-1) 対象タスクが休止状態[NGKI1439] 58 * (D-2) 対象タスクのタスク例外処理ルーチンが定義されていない[NGKI1440] 59 * (E) ras_texの正常処理[NGKI1415] 60 * (E-1) 対象タスクが自タスク,タスク例外処理許可,かつ割込み優先 61 * 度マスク全解除状態で,すぐに実行開始 62 * (E-2) 対象タスクが自タスクでない 63 * (E-3) 対象タスクが自タスクだが,タスク例外処理禁止 64 * (E-4) 対象タスクが自タスクでタスク例外処理許可だが,割込み優先 65 * 度マスクが全解除でない 66 * (F) ena_texの正常処理[NGKI1427] 67 * (F-1) タスク例外処理要求があり,かつ割込み優先度マスク全解除状 68 * 態で,すぐに実行開始 69 * (F-2) タスク例外処理要求がない 70 * (F-3) タスク例外処理要求があるが,割込み優先度マスクが全解除で 71 * ない 72 * (G) chg_ipmの正常処理 73 * (G-1) タスク例外処理要求があり,かつタスク例外処理許可で,すぐ 74 * に実行開始 75 * (G-2) タスク例外処理要求がない 76 * (G-3) タスク例外処理要求があるが,タスク例外処理禁止 77 * (G-4) タスク例外処理要求があるが,割込み優先度マスクが全解除で 78 * ない 79 * (H) タスクディスパッチャによる起動 80 * (H-1) ディスパッチ後のタスクがタスク例外許可でタスク例外処理要 81 * 求あり 82 * (I) タスク例外処理ルーチンからのリターンによる起動(連続起動) 83 * (J) タスク例外処理ルーチンからの戻り時による状態復帰 84 * (J-1) タスクに戻ってくる時 85 * (J-2) タスク例外処理ルーチンが連続起動される時 86 * (K) タスク例外処理ルーチンの多重起動 87 * (L) タスク例外処理ルーチンからの戻り時のタスク切換え 88 * 89 * 【使用リソース】 90 * 91 * TASK1: メインのタスク.自タスクに対してタスク例外処理を要求する 92 * TASK2: 他タスクに対してタスク例外処理を要求する対象タスク 93 * TASK3: タスク例外処理ルーチンが定義されていないタスク 94 * TASK4: 休止状態のタスク 95 * 96 * 【テストシーケンス】 97 * 98 * == TASK1(優先度:10)== 133 99 * 1: state(false, false, TIPM_ENAALL, false, false, true) 134 100 * ref_tex(TSK_SELF, &rtex) … … 145 111 * assert(rtex.pndptn == 0U) 146 112 * 3: ras_tex(TSK_SELF, 0x0001) ... (E-1) 147 * == TASK1-TEX-1 ï¼1åç®ï¼==113 * == TASK1-TEX-1(1回目)== 148 114 * 4: assert(texptn == 0x0001) 149 115 * state(false, false, TIPM_ENAALL, false, false, true) 150 * 5: dis_dsp() ... 4ã¤ã®ç¶æ 151 ãããããå¤åããã 116 * 5: dis_dsp() ... 4つの状態をそれぞれ変化させる 152 117 * chg_ipm(TMAX_INTPRI) 153 118 * ena_tex() … … 155 120 * state(false, true, TMAX_INTPRI, true, true, false) 156 121 * RETURN 157 * == TASK1 ï¼ç¶ãï¼==122 * == TASK1(続き)== 158 123 * 6: state(false, false, TIPM_ENAALL, false, false, false) ... (J-1) 159 * 7: dis_dsp() ... ãã£ã¹ãããç¦æ¢ï¼ã¿ã¹ã¯ä¾å¤å¦çç¦æ¢124 * 7: dis_dsp() ... ディスパッチ禁止,タスク例外処理禁止 160 125 * dis_tex() 161 126 * state(false, false, TIPM_ENAALL, true, true, true) … … 165 130 * assert(rtex.pndptn == 0x0002) 166 131 * 9: ena_tex() ... (F-1) 167 * == TASK1-TEX-2 ï¼2åç®ï¼==132 * == TASK1-TEX-2(2回目)== 168 133 * 10: assert(texptn == 0x0002) 169 134 * state(false, false, TIPM_ENAALL, true, true, true) 170 135 * 11: ras_tex(TASK1, 0x0001) ... (E-3) 171 136 * ras_tex(TASK1, 0x0002) ... (E-3) 172 * 12: ena_dsp() ... 3ã¤ã®ç¶æ 173 ãããããå¤åããã 137 * 12: ena_dsp() ... 3つの状態をそれぞれ変化させる 174 138 * chg_ipm(TMAX_INTPRI) 175 139 * loc_cpu() 176 140 * state(false, true, TMAX_INTPRI, false, true, true) 177 141 * RETURN ... (I) 178 * == TASK1-TEX-3 ï¼3åç®ï¼==142 * == TASK1-TEX-3(3回目)== 179 143 * 13: assert(texptn == 0x0003) 180 144 * state(false, false, TIPM_ENAALL, true, true, true) ... (J-2) 181 * 14: ena_dsp() ... ãã£ã¹ããã許å¯ï¼ã¿ã¹ã¯ä¾å¤è¨±å¯145 * 14: ena_dsp() ... ディスパッチ許可,タスク例外許可 182 146 * chg_ipm(TMAX_INTPRI) 183 147 * ena_tex() … … 192 156 * ena_tex() ... (F-3) 193 157 * 16: chg_ipm(TIPM_ENAALL) ... (G-1)(K) 194 * == TASK1-TEX-4 ï¼4åç®ï¼==158 * == TASK1-TEX-4(4回目)== 195 159 * 17: assert(texptn == 0x0004) 196 160 * state(false, false, TIPM_ENAALL, false, false, true) 197 * 18: dis_dsp() ... 3ã¤ã®ç¶æ 198 ãããããå¤åããã 161 * 18: dis_dsp() ... 3つの状態をそれぞれ変化させる 199 162 * chg_ipm(TMAX_INTPRI) 200 163 * loc_cpu() 201 164 * state(false, true, TMAX_INTPRI, true, true, true) 202 165 * RETURN 203 * == TASK1-TEX-3 ï¼3åç®ç¶ãï¼==166 * == TASK1-TEX-3(3回目続き)== 204 167 * 19: state(false, false, TIPM_ENAALL, false, false, false) 205 168 * RETURN 206 * == TASK1 ï¼ç¶ãï¼==169 * == TASK1(続き)== 207 170 * 20: state(false, false, TIPM_ENAALL, true, true, false) ... (J-1) 208 171 * 21: ena_dsp() 209 172 * rot_rdq(TPRI_SELF) 210 * == TASK2ï¼åªå 211 度ï¼10ï¼ == 173 * == TASK2(優先度:10) == 212 174 * 22: state(false, false, TIPM_ENAALL, false, false, true) 213 175 * 23: ena_tex() 214 176 * state(false, false, TIPM_ENAALL, false, false, false) 215 177 * rot_rdq(TPRI_SELF) 216 * == TASK3ï¼åªå 217 度ï¼10ï¼ == 178 * == TASK3(優先度:10) == 218 179 * 24: state(false, false, TIPM_ENAALL, false, false, true) 219 180 * 25: ena_tex() -> E_OBJ ... (C-1) … … 222 183 * state(false, false, TIPM_ENAALL, false, false, true) 223 184 * ext_tsk() 224 * == TASK1 ï¼ç¶ãï¼==185 * == TASK1(続き)== 225 186 * 27: ras_tex(TASK2, 0x0001) ... (E-2) 226 187 * ref_tex(TASK2, &rtex) 227 188 * 28: rot_rdq(TPRI_SELF) ... (H-1) 228 * == TASK2-TEX-1 ï¼1åç®ï¼==189 * == TASK2-TEX-1(1回目)== 229 190 * 29: assert(texptn == 0x0001) 230 191 * state(false, false, TIPM_ENAALL, false, false, true) 231 192 * RETURN 232 * == TASK2 ï¼ç¶ãï¼==193 * == TASK2(続き)== 233 194 * 30: ras_tex(TSK_SELF, 0x0002) 234 * == TASK2-TEX-2 ï¼2åç®ï¼==195 * == TASK2-TEX-2(2回目)== 235 196 * 31: assert(texptn == 0x0002) 236 197 * state(false, false, TIPM_ENAALL, false, false, true) … … 238 199 * rot_rdq(TPRI_SELF) 239 200 * 33: RETURN 240 * == TASK1 ï¼ç¶ãï¼==201 * == TASK1(続き)== 241 202 * 34: RETURN 242 * == TASK2 ï¼ç¶ãï¼==203 * == TASK2(続き)== 243 204 * 35: END 244 205 */ … … 251 212 252 213 /* 253 * task4 ã¨tex_task4ã¯çæãããªã214 * task4とtex_task4は生成されない 254 215 */ 255 216 -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.