Ignore:
Timestamp:
Jul 23, 2017, 2:29:40 PM (7 years ago)
Author:
coas-nagasima
Message:

SVNプロパティを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • rubycfg_asp/trunk/asp_dcre/test/test_sem2.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    66 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    77 *
    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 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  $Id$
     
    5439
    5540/*
    56  *              セマフォ機能のテスト(2)
    57  *
    58  * 【テストの目的】
    59  *
    60  *  isig_semを,sig_semとの違いを中心にテストする.
    61  *  pol_sem,twai_semを,wai_semとの違いを中心にテストする.
    62  *
    63  * 【テストé 
    64 ç›®ã€‘
    65  *
    66  *      (A) isig_semの静的エラーのテスト
    67  *              (A-1) タスクコンテキストからの呼出し
    68  *              (A-2) CPUロック状æ
    69 ‹ã‹ã‚‰ã®å‘¼å‡ºã—
    70  *      (B) isig_semによりセマフォå¾
    71 ã¡çŠ¶æ
    72 ‹ã®ã‚¿ã‚¹ã‚¯ãŒå¾
    73 ã¡è§£é™¤ã•ã‚Œã‚‹
    74  *              (B-1) アイドル状æ
    75 ‹ã‹ã‚‰ï¼Œå¾
    76 ã¡è§£é™¤ã•ã‚ŒãŸã‚¿ã‚¹ã‚¯ã«åˆ‡ã‚Šæ›ã‚ã‚‹
    77  *              (B-2) 実行状æ
    78 ‹ã®ã‚¿ã‚¹ã‚¯ã‹ã‚‰ï¼Œå¾
    79 ã¡è§£é™¤ã•ã‚ŒãŸã‚¿ã‚¹ã‚¯ã«åˆ‡ã‚Šæ›ã‚ã‚‹
    80  *              (B-3) ディスパッチ保留状æ
    81 ‹ã§ï¼Œåˆ‡ã‚Šæ›ã‚ã‚‰ãªã„
    82  *              (B-4) å¾
    83 ã¡è§£é™¤ã•ã‚ŒãŸã‚¿ã‚¹ã‚¯ãŒå¼·åˆ¶å¾
    84 ã¡çŠ¶æ
    85 ‹ã§ï¼Œåˆ‡ã‚Šæ›ã‚ã‚‰ãªã„
    86  *              (B-5) å¾
    87 ã¡è§£é™¤ã•ã‚ŒãŸã‚¿ã‚¹ã‚¯ãŒå„ªå
    88 ˆåº¦ãŒä½Žãï¼Œåˆ‡ã‚Šæ›ã‚ã‚‰ãªã„
    89  *      (C) pol_semの静的エラーのテスト
    90  *              (C-1) 非タスクコンテキストからの呼出し
    91  *              (C-2) CPUロック状æ
    92 ‹ã‹ã‚‰ã®å‘¼å‡ºã—
    93  *              (C-3) ディスパッチ禁止状æ
    94 ‹ã‹ã‚‰ã®å‘¼å‡ºã—(E_CTXエラーにならない)
    95  *              (C-4) 割込み優å
    96 ˆåº¦ãƒžã‚¹ã‚¯å
    97 ¨è§£é™¤ã§ãªã„状æ
    98 ‹ã‹ã‚‰ã®å‘¼å‡ºã—(E_CTXエラー
    99  *                    にならない)
    100  *      (D) pol_semでポーリング失敗する
    101  *      (E) twai_semの静的エラーのテスト
    102  *              (E-1) 非タスクコンテキストからの呼出し
    103  *              (E-2) CPUロック状æ
    104 ‹ã‹ã‚‰ã®å‘¼å‡ºã—
    105  *              (E-3) ディスパッチ禁止状æ
    106 ‹ã‹ã‚‰ã®å‘¼å‡ºã—
    107  *              (E-4) 割込み優å
    108 ˆåº¦ãƒžã‚¹ã‚¯å
    109 ¨è§£é™¤ã§ãªã„状æ
    110 ‹ã‹ã‚‰ã®å‘¼å‡ºã—
    111  *              (E-5) tmoutが不正
    112  *      (F) twai_semでtmout=TMO_POLの時にポーリング失敗する
    113  *      (G) twai_semでtmout=TMO_FEVRの時にセマフォå¾
    114 ã¡çŠ¶æ
    115 ‹ã«ãªã‚‹
    116  *      (H) twai_semでtmoutにタイムアウトを設定した時に,タイムアウト付きの
    117  *              セマフォå¾
    118 ã¡çŠ¶æ
    119 ‹ã«ãªã‚‹
    120  *
    121  * 【使用リソース】
    122  *
    123  *      TASK1: 中優å
    124 ˆåº¦ã‚¿ã‚¹ã‚¯ï¼ŒTA_ACT属性
    125  *      TASK2: 高優å
    126 ˆåº¦ã‚¿ã‚¹ã‚¯
    127  *      TASK3: 低優å
    128 ˆåº¦ã‚¿ã‚¹ã‚¯
    129  *      TASK4: 中優å
    130 ˆåº¦ã‚¿ã‚¹ã‚¯
    131  *      TASK5: 中優å
    132 ˆåº¦ã‚¿ã‚¹ã‚¯
    133  *      ALM1:  アラームハンドラ
    134  *  SEM1:  TA_NULL属性,初期資源数1,最大資源数1
    135  *
    136  * 【テストシーケンス】
    137  *
    138  *      == TASK1(優å
    139 ˆåº¦ï¼šä¸­ï¼‰==
     41 *              セマフォ機能のテスト(2)
     42 *
     43 * 【テストの目的】
     44 *
     45 *  isig_semを,sig_semとの違いを中心にテストする.
     46 *  pol_sem,twai_semを,wai_semとの違いを中心にテストする.
     47 *
     48 * 【テスト項目】
     49 *
     50 *      (A) isig_semの静的エラーのテスト
     51 *              (A-1) タスクコンテキストからの呼出し
     52 *              (A-2) CPUロック状態からの呼出し
     53 *      (B) isig_semによりセマフォ待ち状態のタスクが待ち解除される
     54 *              (B-1) アイドル状態から,待ち解除されたタスクに切り換わる
     55 *              (B-2) 実行状態のタスクから,待ち解除されたタスクに切り換わる
     56 *              (B-3) ディスパッチ保留状態で,切り換わらない
     57 *              (B-4) 待ち解除されたタスクが強制待ち状態で,切り換わらない
     58 *              (B-5) 待ち解除されたタスクが優先度が低く,切り換わらない
     59 *      (C) pol_semの静的エラーのテスト
     60 *              (C-1) 非タスクコンテキストからの呼出し
     61 *              (C-2) CPUロック状態からの呼出し
     62 *              (C-3) ディスパッチ禁止状態からの呼出し(E_CTXエラーにならない)
     63 *              (C-4) 割込み優先度マスク全解除でない状態からの呼出し(E_CTXエラー
     64 *                    にならない)
     65 *      (D) pol_semでポーリング失敗する
     66 *      (E) twai_semの静的エラーのテスト
     67 *              (E-1) 非タスクコンテキストからの呼出し
     68 *              (E-2) CPUロック状態からの呼出し
     69 *              (E-3) ディスパッチ禁止状態からの呼出し
     70 *              (E-4) 割込み優先度マスク全解除でない状態からの呼出し
     71 *              (E-5) tmoutが不正
     72 *      (F) twai_semでtmout=TMO_POLの時にポーリング失敗する
     73 *      (G) twai_semでtmout=TMO_FEVRの時にセマフォ待ち状態になる
     74 *      (H) twai_semでtmoutにタイムアウトを設定した時に,タイムアウト付きの
     75 *              セマフォ待ち状態になる
     76 *
     77 * 【使用リソース】
     78 *
     79 *      TASK1: 中優先度タスク,TA_ACT属性
     80 *      TASK2: 高優先度タスク
     81 *      TASK3: 低優先度タスク
     82 *      TASK4: 中優先度タスク
     83 *      TASK5: 中優先度タスク
     84 *      ALM1:  アラームハンドラ
     85 *  SEM1:  TA_NULL属性,初期資源数1,最大資源数1
     86 *
     87 * 【テストシーケンス】
     88 *
     89 *      == TASK1(優先度:中)==
    14090 *  1:  isig_sem(SEM1) -> E_CTX                         ... (A-1)
    14191 *      2:      loc_cpu()
     
    163113 *      10:     isig_sem(SEM1)                                          ... (B-1)
    164114 *              RETURN
    165  *      == TASK1(続き)==
     115 *      == TASK1(続き)==
    166116 *      11:     act_tsk(TASK3)
    167117 *      12:     wai_sem(SEM1)
    168  *      == TASK3(優å
    169 ˆåº¦ï¼šä½Žï¼‰==
     118 *      == TASK3(優先度:低)==
    170119 *      13:     sta_alm(ALM1, 10)
    171120 *              call(wait_var())
     
    174123 *              call(signal_var())
    175124 *              RETURN
    176  *      == TASK1(続き)==
     125 *      == TASK1(続き)==
    177126 *      15:     wai_sem(SEM1)
    178  *      == TASK3(続き)==
     127 *      == TASK3(続き)==
    179128 *      16:     sta_alm(ALM1, 10)
    180129 *              dis_dsp()
     
    184133 *              call(signal_var())
    185134 *              RETURN
    186  *      == TASK3(続き)==
     135 *      == TASK3(続き)==
    187136 *      18:     ena_dsp()
    188  *      == TASK1(続き)==
     137 *      == TASK1(続き)==
    189138 *      19:     wai_sem(SEM1)
    190  *      == TASK3(続き)==
     139 *      == TASK3(続き)==
    191140 *      20:     sta_alm(ALM1, 10)
    192141 *              sus_tsk(TASK1)
     
    196145 *              call(signal_var())
    197146 *              RETURN
    198  *      == TASK3(続き)==
     147 *      == TASK3(続き)==
    199148 *      22:     rsm_tsk(TASK1)
    200  *      == TASK1(続き)==
     149 *      == TASK1(続き)==
    201150 *      23:     act_tsk(TASK2)
    202  *      == TASK2(優å
    203 ˆåº¦ï¼šé«˜ï¼‰==
     151 *      == TASK2(優先度:高)==
    204152 *      24:     tslp_tsk(10) -> E_TMOUT
    205  *      == TASK1(続き)==
     153 *      == TASK1(続き)==
    206154 *      25:     wai_sem(SEM1)
    207  *      == TASK3(続き)==
     155 *      == TASK3(続き)==
    208156 *      26:     ext_tsk() -> noreturn
    209  *      == TASK2(続き)==
     157 *      == TASK2(続き)==
    210158 *      27:     sta_alm(ALM1, 10)
    211159 *              call(wait_var())
     
    214162 *              call(signal_var())
    215163 *              RETURN
    216  *      == TASK2(続き)==
     164 *      == TASK2(続き)==
    217165 *      29:     ext_tsk() -> noreturn
    218  *      == TASK1(続き)==
     166 *      == TASK1(続き)==
    219167 *      30:     sta_alm(ALM1, 10)
    220168 *      31:     twai_sem(SEM1, 100) -> E_RLWAI
     
    222170 *      32:     irel_wai(TASK1)
    223171 *              RETURN
    224  *      == TASK1(続き)==
     172 *      == TASK1(続き)==
    225173 *      33:     sta_alm(ALM1, 100)
    226174 *      34:     twai_sem(SEM1, 10) -> E_TMOUT           ... (H)
Note: See TracChangeset for help on using the changeset viewer.