Changeset 315 for rubycfg_asp/trunk/asp_dcre/test/test_tex2.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_tex2.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 * ã¿ã¹ã¯ä¾å¤å¦çã«é¢ãããã¹ã(2) 57 * 58 * ããã¹ãã®ç®çã 59 * 60 * å²è¾¼ã¿ãã³ãã©ï¼ã¢ã©ã¼ã ãã³ãã©ï¼ããã³CPUä¾å¤ãã³ãã©ããã¿ã¹ã¯ä¾ 61 * å¤å¦çã«ã¼ãã³ãèµ·åããå¦çãç¶²ç¾ 62 çã«ãã¹ãããï¼ 63 * 64 * ããã¹ãé 65 ç®ã 66 * 67 * (A) iras_texã®ã¨ã©ã¼æ¤åº 68 * (A-1) 対象ã¿ã¹ã¯ãä¼æ¢ç¶æ 69 70 * (A-2) 対象ã¿ã¹ã¯ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªã 71 * (B) å²è¾¼ã¿ãã³ãã©ããå¼ã°ããiras_texã®æ£å¸¸å¦ç 72 * (B-1) 対象ã¿ã¹ã¯ãå®è¡ç¶æ 73 ã®ã¿ã¹ã¯ãã¤ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ 74 * (B-2) 対象ã¿ã¹ã¯ãå®è¡ç¶æ 75 ã®ã¿ã¹ã¯ã§ãªã 76 * (B-3) 対象ã¿ã¹ã¯ãå®è¡ç¶æ 77 ã®ã¿ã¹ã¯ã ãã¿ã¹ã¯ä¾å¤å¦çç¦æ¢ 78 * (C) CPUä¾å¤ãã³ãã©ããå¼ã°ããiras_texã®æ£å¸¸å¦ç 79 * (C-1) 対象ã¿ã¹ã¯ãå®è¡ç¶æ 80 ã®ã¿ã¹ã¯ãã¤ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ 81 * (C-2) 対象ã¿ã¹ã¯ãå®è¡ç¶æ 82 ã®ã¿ã¹ã¯ã§ãªã 83 * (C-3) 対象ã¿ã¹ã¯ãå®è¡ç¶æ 84 ã®ã¿ã¹ã¯ã ãã¿ã¹ã¯ä¾å¤å¦çç¦æ¢ 85 * â å®æ½ããªãï¼ã¿ã¼ã²ããéä¾åã«å®ç¾ã§ããªãï¼ 86 * (D) å²è¾¼ã¿ãã³ãã©ã®åºå£å¦çã«ããèµ·å 87 * (D-1) ãã£ã¹ãããå¾ã®ã¿ã¹ã¯ãã¿ã¹ã¯ä¾å¤è¨±å¯ã§ã¿ã¹ã¯ä¾å¤å¦çè¦ 88 * æ±ãã 89 * (E) CPUä¾å¤ãã³ãã©ã®åºå£å¦çã«ããèµ·å 90 * (E-1) ãã£ã¹ãããå¾ã®ã¿ã¹ã¯ãã¿ã¹ã¯ä¾å¤è¨±å¯ã§ã¿ã¹ã¯ä¾å¤å¦çè¦ 91 * æ±ãã 92 * (F) sns_texã§å®è¡ç¶æ 93 ã®ã¿ã¹ã¯ããªã 94 * 95 * ã使ç¨ãªã½ã¼ã¹ã 96 * 97 * TASK1: ã¡ã¤ã³ã®ã¿ã¹ã¯ï¼å®è¡ç¶æ 98 ã®ã¿ã¹ã¯ã«å¯¾ãã¦ã¿ã¹ã¯ä¾å¤å¦çãè¦æ±ã 99 * ã対象ã¿ã¹ã¯ 100 * TASK2: å®è¡ç¶æ 101 ã§ãªãã¿ã¹ã¯ã«å¯¾ãã¦ã¿ã¹ã¯ä¾å¤å¦çãè¦æ±ãã対象ã¿ã¹ã¯ 102 * TASK3: ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªãã¿ã¹ã¯ 103 * TASK4: ä¼æ¢ç¶æ 104 ã®ã¿ã¹ã¯ 105 * ALM1: ã¢ã©ã¼ã ãã³ãã©1 106 * ALM2: ã¢ã©ã¼ã ãã³ãã©2 107 * ALM3: ã¢ã©ã¼ã ãã³ãã©3 108 * CPUEXC: CPUä¾å¤ãã³ãã© 109 * 110 * ããã¹ãã·ã¼ã±ã³ã¹ã 111 * 112 * == TASK1ï¼åªå 113 度ï¼10ï¼== 41 * タスク例外処理に関するテスト(2) 42 * 43 * 【テストの目的】 44 * 45 * 割込みハンドラ(アラームハンドラ)およびCPU例外ハンドラからタスク例 46 * 外処理ルーチンを起動する処理を網羅的にテストする. 47 * 48 * 【テスト項目】 49 * 50 * (A) iras_texのエラー検出 51 * (A-1) 対象タスクが休止状態 52 * (A-2) 対象タスクのタスク例外処理ルーチンが定義されていない 53 * (B) 割込みハンドラから呼ばれたiras_texの正常処理 54 * (B-1) 対象タスクが実行状態のタスクかつタスク例外処理許可 55 * (B-2) 対象タスクが実行状態のタスクでない 56 * (B-3) 対象タスクが実行状態のタスクだがタスク例外処理禁止 57 * (C) CPU例外ハンドラから呼ばれたiras_texの正常処理 58 * (C-1) 対象タスクが実行状態のタスクかつタスク例外処理許可 59 * (C-2) 対象タスクが実行状態のタスクでない 60 * (C-3) 対象タスクが実行状態のタスクだがタスク例外処理禁止 61 * → 実施しない(ターゲット非依存に実現できない) 62 * (D) 割込みハンドラの出口処理による起動 63 * (D-1) ディスパッチ後のタスクがタスク例外許可でタスク例外処理要 64 * 求あり 65 * (E) CPU例外ハンドラの出口処理による起動 66 * (E-1) ディスパッチ後のタスクがタスク例外許可でタスク例外処理要 67 * 求あり 68 * (F) sns_texで実行状態のタスクがない 69 * 70 * 【使用リソース】 71 * 72 * TASK1: メインのタスク.実行状態のタスクに対してタスク例外処理を要求す 73 * る対象タスク 74 * TASK2: 実行状態でないタスクに対してタスク例外処理を要求する対象タスク 75 * TASK3: タスク例外処理ルーチンが定義されていないタスク 76 * TASK4: 休止状態のタスク 77 * ALM1: アラームハンドラ1 78 * ALM2: アラームハンドラ2 79 * ALM3: アラームハンドラ3 80 * CPUEXC: CPU例外ハンドラ 81 * 82 * 【テストシーケンス】 83 * 84 * == TASK1(優先度:10)== 114 85 * 1: state(false, false, TIPM_ENAALL, false, false, true) 115 86 * ref_tex(TSK_SELF, &rtex) … … 117 88 * assert(rtex.pndptn == 0U) 118 89 * 2: sta_alm(ALM1, 1U) 119 * DO(while (!(alm1_flag))) ... ã¢ã©ã¼ã ãã³ãã©1ã®å®è¡ãå¾ 120 㤠90 * DO(while (!(alm1_flag))) ... アラームハンドラ1の実行を待つ 121 91 * == ALM1 == 122 92 * 3: state_i(true, false, false, true, true) … … 127 97 * DO(alm1_flag = true) 128 98 * RETURN 129 * == TASK1 ï¼ç¶ãï¼==99 * == TASK1(続き)== 130 100 * 4: ena_tex() 131 * == TASK1-TEX-1 ï¼1åç®ï¼==101 * == TASK1-TEX-1(1回目)== 132 102 * 5: assert(texptn == 0x0001) 133 103 * state(false, false, TIPM_ENAALL, false, false, true) 134 * 6: dis_dsp() ... 4ã¤ã®ç¶æ 135 ãããããå¤åããã 104 * 6: dis_dsp() ... 4つの状態をそれぞれ変化させる 136 105 * chg_ipm(TMAX_INTPRI) 137 106 * ena_tex() … … 139 108 * state(false, true, TMAX_INTPRI, true, true, false) 140 109 * RETURN 141 * == TASK1 ï¼ç¶ãï¼==110 * == TASK1(続き)== 142 111 * 7: state(false, false, TIPM_ENAALL, false, false, false) 143 112 * ref_tex(TSK_SELF, &rtex) … … 151 120 * DO(alm2_flag = true) 152 121 * RETURN ... (D-1) 153 * == TASK1-TEX-2 ï¼2åç®ï¼==122 * == TASK1-TEX-2(2回目)== 154 123 * 10: assert(texptn == 0x0002) 155 124 * state(false, false, TIPM_ENAALL, false, false, true) 156 125 * RETURN 157 * == TASK1 ï¼ç¶ãï¼==126 * == TASK1(続き)== 158 127 * 11: sus_tsk(TASK2) 159 128 * sus_tsk(TASK3) … … 161 130 * 13: dly_tsk(50U) 162 131 * == ALM3 == 163 * 14: state_i(true, false, false, true, true) ... (F) ï¼»sns_tex()ãå«ãï¼½132 * 14: state_i(true, false, false, true, true) ... (F)[sns_tex()を含む] 164 133 * iget_tid(&tskid) 165 134 * assert(tskid == TSK_NONE) … … 167 136 * DO(alm3_flag = true) 168 137 * RETURN 169 * == TASK1-TEX-3 ï¼3åç®ï¼==138 * == TASK1-TEX-3(3回目)== 170 139 * 15: assert(texptn == 0x0004) 171 140 * state(false, false, TIPM_ENAALL, false, false, true) 172 141 * RETURN 173 * == TASK1 ï¼ç¶ãï¼==142 * == TASK1(続き)== 174 143 * 16: rsm_tsk(TASK2) 175 144 * rsm_tsk(TASK3) … … 184 153 * iras_tex(TASK1, 0x0010) ... (C-1) 185 154 * RETURN ... (E-1) 186 * == TASK1-TEX-4 ï¼4åç®ï¼==155 * == TASK1-TEX-4(4回目)== 187 156 * 19: assert(texptn == 0x0010) 188 157 * state(false, false, TIPM_ENAALL, true, true, true) 189 158 * 20: ext_tsk() 190 * == TASK2ï¼åªå 191 度ï¼10ï¼== 159 * == TASK2(優先度:10)== 192 160 * 21: state(false, false, TIPM_ENAALL, false, false, true) 193 161 * 22: ena_tex() … … 196 164 * state(false, false, TIPM_ENAALL, false, false, true) 197 165 * RETURN 198 * == TASK2 ï¼ç¶ãï¼==166 * == TASK2(続き)== 199 167 * 24: sus_tsk(TASK3) 200 168 * 25: END … … 212 180 213 181 /* 214 * task3 ï¼task4ã¨tex_task4ã¯çæãããªã182 * task3,task4とtex_task4は生成されない 215 183 */ 216 184 -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.