Ignore:
Timestamp:
Jun 10, 2015, 8:40:31 PM (9 years ago)
Author:
coas-nagasima
Message:

SHIFT_JISのコードにcharsetプロパティを付けた

Location:
uKadecot/trunk/ssp/extension
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • uKadecot/trunk/ssp/extension/alarm.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    77 *             Nagoya Municipal Industrial Research Institute, JAPAN
    88 *
    9  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    10  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    11  *  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    12  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    13  *      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    14  *      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    15  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    16  *      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    17 ƒƒ“ƒgi—˜—pŽÒƒ}
    18  *      ƒjƒ
    19 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    20  *      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    21  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    22  *      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    23  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    24 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    25 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    26  *        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    27  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É•ñ
    28  *        ‚·‚邱‚ƁD
    29  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    30  *      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    31  *      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    32  *      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     9 *  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     11 *  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     13 *      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     14 *      コード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     16 *      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     17 *      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     18 *      証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     20 *      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     22 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     24 *        告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     26 *      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     27 *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     28 *      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3329 *
    34  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    35  *  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    36  *  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    37  *  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    38  *  ‚í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     31 *  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     32 *  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     33 *  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     34 *  わない.
    3935 *
    4036 */
    4137
    4238/*
    43  *  ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‹@”\
     39 *  アラームハンドラ機能
    4440 */
    4541
     
    4945
    5046/*
    51  *  ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
     47 *  トレースログマクロのデフォルト定義
    5248 */
    5349
     
    9389
    9490
    95 /* ŽüŠúƒnƒ“ƒhƒ‰ID‚ðƒ^ƒCƒ€ƒCƒxƒ“ƒgID‚É•ÏŠ· */
     91/* 周期ハンドラIDをタイムイベントIDに変換 */
    9692#define ALM_EVTID(almid)        ((ID)(INDEX_ALM(almid) + almevtid_offset))
    9793#define INDEX_ALM(almid)        ((uint_t)((almid) - TMIN_ALMID))
    9894
    99 /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚̌” */
     95/* アラームハンドラの個数 */
    10096#define tnum_alm                        ((uint_t)(tmax_almid - TMIN_ALMID + 1))
    10197
    102 /* ƒAƒ‰[ƒ€‚Ì“®ìó‘Ô‚ð•\‚·ƒrƒbƒgƒ}ƒbƒv */
     98/* アラームの動作状態を表すビットマップ */
    10399#define ALMACT_BIT(index)       (1U << (index))
    104100
    105101
    106 /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰ŽÀsƒ^ƒCƒ€ƒCƒxƒ“ƒg */
     102/* アラームハンドラ実行タイムイベント */
    107103void call_almhdr(uintptr_t almidx);
    108104
    109105
    110106/*
    111  *  ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‹@”\‚̏‰Šú‰»
     107 *  アラームハンドラ機能の初期化
    112108 */
    113109
     
    117113initialize_alarm(void)
    118114{
    119         /* ‘S‚ẴAƒ‰[ƒ€‚ð’âŽ~ó‘Ô‚É‚·‚é */
     115        /* 全てのアラームを停止状態にする */
    120116        almcb_almact = 0U;
    121117}
     
    124120
    125121/*
    126  *  ƒAƒ‰[ƒ€‚ÌŠJŽn
     122 *  アラームの開始
    127123 */
    128124
     
    162158
    163159/*
    164  *  ƒAƒ‰[ƒ€‚ÌŠJŽn(”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p)
     160 *  アラームの開始(非タスクコンテキスト用)
    165161 */
    166162
     
    200196
    201197/*
    202  *  ƒAƒ‰[ƒ€‚Ì’âŽ~
     198 *  アラームの停止
    203199 */
    204200
     
    232228
    233229/*
    234  *  ƒAƒ‰[ƒ€‚Ì’âŽ~(”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p)
     230 *  アラームの停止(非タスクコンテキスト用)
    235231 */
    236232
     
    264260
    265261/*
    266  *  ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‹N“®ƒ‹[ƒ`ƒ“
     262 *  アラームハンドラ起動ルーチン
    267263 */
    268264
     
    272268call_almhdr(uintptr_t almidx)
    273269{
    274         /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚ð’âŽ~ó‘Ô‚É‚·‚é */
     270        /* アラームハンドラを停止状態にする */
    275271        almcb_almact &= ~ALMACT_BIT(almidx);
    276272       
    277273        i_unlock_cpu();
    278274       
    279         /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚ÌŽÀs */
     275        /* アラームハンドラの実行 */
    280276        LOG_ALM_ENTER(almidx);
    281277        (*alminib_almhdr[almidx])(alminib_exinf[almidx]);
  • uKadecot/trunk/ssp/extension/alarm.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2011 by Meika Sugimoto
    66 *
    7  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    8  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    9  *  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    10  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    11  *      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    12  *      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    14  *      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    15 ƒƒ“ƒgi—˜—pŽÒƒ}
    16  *      ƒjƒ
    17 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    18  *      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    19  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    20  *      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    21  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    24  *        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É•ñ
    26  *        ‚·‚邱‚ƁD
    27  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    28  *      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    29  *      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    30  *      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     7 *  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     9 *  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     11 *      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     12 *      コード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     14 *      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     15 *      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     16 *      証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     18 *      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     20 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     22 *        告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     24 *      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     25 *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     26 *      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3127 *
    32  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    33  *  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    34  *  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    35  *  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    36  *  ‚í‚È‚¢D
     28 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     29 *  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     30 *  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     31 *  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     32 *  わない.
    3733 *
    3834 */
     
    4541
    4642/*
    47  *  ƒRƒ“ƒtƒBƒMƒ
    48 ƒŒ[ƒVƒ‡ƒ“ƒf[ƒ^
     43 *  コンフィギュレーションデータ
    4944 */
    5045
    51 /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚̃^ƒCƒ€ƒCƒxƒ“ƒgIDƒIƒtƒZƒbƒg */
     46/* アラームハンドラのタイムイベントIDオフセット */
    5247extern const uint_t almevtid_offset;
    5348
    54 /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚̍őåID’l */
     49/* アラームハンドラの最大ID値 */
    5550extern const ID tmax_almid;
    5651
    57 /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰æ“ª”Ô’n */
     52/* アラームハンドラ先頭番地 */
    5853extern const ALMHDR alminib_almhdr[];
    5954
    60 /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰Šg’£î•ñ */
     55/* アラームハンドラ拡張情報 */
    6156extern const intptr_t alminib_exinf[];
    6257
    63 /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰ó‘Ô */
     58/* アラームハンドラ状態 */
    6459extern uint16_t almcb_almact;
    6560
    6661
    6762/*
    68  *  ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‹@”\‚̏‰Šú‰»
     63 *  アラームハンドラ機能の初期化
    6964 */
    7065extern void
  • uKadecot/trunk/ssp/extension/cyclic.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2011 by Meika Sugimoto
    66 *
    7  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    8  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    9  *  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    10  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    11  *      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    12  *      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    14  *      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    15 ƒƒ“ƒgi—˜—pŽÒƒ}
    16  *      ƒjƒ
    17 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    18  *      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    19  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    20  *      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    21  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    24  *        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É•ñ
    26  *        ‚·‚邱‚ƁD
    27  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    28  *      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    29  *      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    30  *      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     7 *  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     9 *  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     11 *      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     12 *      コード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     14 *      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     15 *      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     16 *      証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     18 *      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     20 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     22 *        告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     24 *      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     25 *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     26 *      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3127 *
    32  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    33  *  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    34  *  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    35  *  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    36  *  ‚í‚È‚¢D
     28 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     29 *  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     30 *  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     31 *  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     32 *  わない.
    3733 *
    3834 */
    3935
    4036/*
    41  *  ŽüŠúƒnƒ“ƒhƒ‰‹@”\
     37 *  周期ハンドラ機能
    4238 */
    4339
     
    4844
    4945/*
    50  *  ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
     46 *  トレースログマクロのデフォルト定義
    5147 */
    5248#ifndef LOG_CYC_ENTER
     
    7571
    7672
    77 /* ŽüŠúƒnƒ“ƒhƒ‰ID‚ðƒ^ƒCƒ€ƒCƒxƒ“ƒgID‚É•ÏŠ· */
     73/* 周期ハンドラIDをタイムイベントIDに変換 */
    7874#define CYC_EVTID(cycidx)       ((ID)((cycidx) + cycevtid_offset))
    7975#define INDEX_CYC(cycid)        ((uint_t)((cycid) - TMIN_CYCID))
    8076
    8177
    82 /* ŽüŠúƒnƒ“ƒhƒ‰‚Ì“®ìó‘Ô‚ð•\‚·ƒrƒbƒgƒ}ƒbƒv */
     78/* 周期ハンドラの動作状態を表すビットマップ */
    8379#define CYCACT_BIT(index)       (1U << (index))
    8480
    8581/*
    86  *  ŽüŠúƒnƒ“ƒhƒ‰‹N“®ƒ‹[ƒ`ƒ“
     82 *  周期ハンドラ起動ルーチン
    8783 */
    8884void call_cychdr(uintptr_t cycidx);
    8985
    9086/*
    91  *  ŽüŠúƒnƒ“ƒhƒ‰‹@”\‚̏‰Šú‰»
     87 *  周期ハンドラ機能の初期化
    9288 */
    9389
     
    9995        uint_t i;
    10096       
    101         /* ŽüŠúƒnƒ“ƒhƒ‰‚̏ó‘Ԑݒè */
     97        /* 周期ハンドラの状態設定 */
    10298        cyccb_cycact = cycinib_cycact;
    10399       
     
    105101                cyccb_evttim[i] = 0U;
    106102               
    107                 /* ŽüŠúƒnƒ“ƒhƒ‰‚̏‰Šú‹N“® */
     103                /* 周期ハンドラの初期起動 */
    108104                if((cycinib_cycact & CYCACT_BIT(i)) != 0U) {
    109105                        time_event_enqueue(CYC_EVTID(i) ,
     
    189185        cyccb_evttim[cycidx] += cycinib_cyctim[cycidx];
    190186
    191         /* ŽŸŽüŠú‚̃^ƒCƒ€ƒCƒxƒ“ƒg‚ð“o˜^ */
     187        /* 次周期のタイムイベントを登録 */
    192188        time_event_enqueue((ID)cycidx ,
    193189                cyccb_evttim[cycidx] , call_cychdr , cycidx);
     
    195191        i_unlock_cpu();
    196192       
    197         /* ŽüŠúƒnƒ“ƒhƒ‰‚ðŽÀs */
     193        /* 周期ハンドラを実行 */
    198194        LOG_CYC_ENTER(cycidx);
    199195        (*cycinib_cychdr[cycidx])(cycinib_exinf[cycidx]);
  • uKadecot/trunk/ssp/extension/cyclic.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2011 by Meika Sugimoto
    66 *
    7  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    8  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    9  *  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    10  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    11  *      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    12  *      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    14  *      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    15 ƒƒ“ƒgi—˜—pŽÒƒ}
    16  *      ƒjƒ
    17 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    18  *      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    19  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    20  *      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    21  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    24  *        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É•ñ
    26  *        ‚·‚邱‚ƁD
    27  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    28  *      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    29  *      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    30  *      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     7 *  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     9 *  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     11 *      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     12 *      コード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     14 *      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     15 *      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     16 *      証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     18 *      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     20 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     22 *        告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     24 *      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     25 *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     26 *      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3127 *
    32  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    33  *  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    34  *  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    35  *  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    36  *  ‚í‚È‚¢D
     28 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     29 *  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     30 *  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     31 *  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     32 *  わない.
    3733 *
    3834 */
     
    4238
    4339/*
    44  *  ŽüŠúƒnƒ“ƒhƒ‰‰Šú‰»ƒuƒƒbƒN
     40 *  周期ハンドラ初期化ブロック
    4541 *
    46  *  ƒRƒ“ƒtƒBƒMƒ
    47 ƒŒ[ƒ^‚É‚æ‚Á‚ж¬‚·‚éD
     42 *  コンフィギュレータによって生成する.
    4843 */
    4944
    50 /* ŽüŠúƒnƒ“ƒhƒ‰ID‚̍őå’l */
     45/* 周期ハンドラIDの最大値 */
    5146extern const ID tmax_cycid;
    5247
    53 /* ŽüŠúƒnƒ“ƒhƒ‰‘®« */
     48/* 周期ハンドラ属性 */
    5449extern const uint16_t cycinib_cycact;
    5550
    56 /* ŽüŠúƒnƒ“ƒhƒ‰ƒAƒhƒŒƒX */
     51/* 周期ハンドラアドレス */
    5752extern const CYCHDR cycinib_cychdr[];
    5853
    59 /* ŽüŠúƒnƒ“ƒhƒ‰ŽüŠú */
     54/* 周期ハンドラ周期 */
    6055extern const RELTIM cycinib_cyctim[];
    6156
    62 /* ŽüŠúƒnƒ“ƒhƒ‰ˆÊ‘Š */
     57/* 周期ハンドラ位相 */
    6358extern const RELTIM cycinib_cycphs[];
    6459
    65 /* ŽüŠúƒnƒ“ƒhƒ‰Šg’£î•ñ */
     60/* 周期ハンドラ拡張情報 */
    6661extern const intptr_t cycinib_exinf[];
    6762
    68 /* ŽüŠúƒnƒ“ƒhƒ‰“®ìó‘Ô */
     63/* 周期ハンドラ動作状態 */
    6964extern uint16_t cyccb_cycact;
    7065
    71 /* ŽüŠúƒnƒ“ƒhƒ‰‚ÌŽŸ‰ñ‹N“®Žž */
     66/* 周期ハンドラの次回起動時刻 */
    7267extern EVTTIM cyccb_evttim[];
    7368
    74 /* ŽüŠúƒnƒ“ƒhƒ‰‚̃^ƒCƒ€ƒCƒxƒ“ƒgIDƒIƒtƒZƒbƒg */
     69/* 周期ハンドラのタイムイベントIDオフセット */
    7570extern const uint_t cycevtid_offset;
    7671
     
    7974
    8075/*
    81  *  ŽüŠúƒnƒ“ƒhƒ‰‹@”\‚̏‰Šú‰»
     76 *  周期ハンドラ機能の初期化
    8277 */
    8378extern void
  • uKadecot/trunk/ssp/extension/dataqueue.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2011 by Meika Sugimoto
    1010 *
    11  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    12  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    13  *  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    14  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    15  *      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    16  *      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    17  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    18  *      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    19 ƒƒ“ƒgi—˜—pŽÒƒ}
    20  *      ƒjƒ
    21 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    22  *      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    23  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    24  *      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    25  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    26 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    27 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    28  *        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    29  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É•ñ
    30  *        ‚·‚邱‚ƁD
    31  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    32  *      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    33  *      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    34  *      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     11 *  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     13 *  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     15 *      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     16 *      コード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     18 *      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     19 *      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     20 *      証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     22 *      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     24 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     26 *        告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     28 *      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     29 *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     30 *      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3531 *
    36  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    37  *  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    38  *  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    39  *  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    40  *  ‚í‚È‚¢D
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     33 *  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     34 *  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     35 *  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     36 *  わない.
    4137 *
    4238 */
    4339 
    4440/*
    45  *              ƒf[ƒ^ƒLƒ
    46 [‹@”\
     41 *              データキュー機能
    4742 */
    4843
     
    5247
    5348/*
    54  *  ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
     49 *  トレースログマクロのデフォルト定義
    5550 */
    5651#ifndef LOG_PSND_DTQ_ENTER
     
    7974
    8075/*
    81  *  ƒf[ƒ^ƒLƒ
    82 [‚ւ̃f[ƒ^‘—M
     76 *  データキューへのデータ送信
    8377 */
    8478void
     
    8680
    8781/*
    88  *  ƒf[ƒ^ƒLƒ
    89 [‚©‚ç‚̃f[ƒ^ŽóM
     82 *  データキューからのデータ受信
    9083 */
    9184void
     
    9487
    9588/*
    96  *  ƒf[ƒ^ƒLƒ
    97 [‚̐”
     89 *  データキューの数
    9890 */
    9991#define tnum_dtq        ((uint_t)(tmax_dtqid - TMIN_DTQID + 1))
    10092
    10193/*
    102  *  ƒf[ƒ^ƒLƒ
    103 [ID‚©‚çƒf[ƒ^ƒLƒ
    104 [ŠÇ—ƒuƒƒbƒN‚ðŽæ‚èo‚·‚½‚߂̃}ƒNƒ
     94 *  データキューIDからデータキュー管理ブロックを取り出すためのマクロ
    10595 */
    10696#define INDEX_DTQ(dtqid)        ((uint_t)((dtqid) - TMIN_DTQID))
    10797
    10898/*
    109  *  ƒf[ƒ^ƒLƒ
    110 [‹@”\‚̏‰Šú‰»
     99 *  データキュー機能の初期化
    111100 */
    112101#ifdef TOPPERS_dtqini
     
    128117
    129118/*
    130  *  ƒf[ƒ^ƒLƒ
    131 [‚ª–ž”t‚©‚̃`ƒFƒbƒN
     119 *  データキューが満杯かのチェック
    132120 */
    133121
     
    139127
    140128/*
    141  *  ƒf[ƒ^ƒLƒ
    142 [‚ª‹ó‚©‚̃`ƒFƒbƒN
     129 *  データキューが空かのチェック
    143130 */
    144131
     
    151138
    152139/*
    153  *  ƒf[ƒ^ƒLƒ
    154 [‚ւ̃f[ƒ^‘—M
     140 *  データキューへのデータ送信
    155141 */
    156142
     
    171157
    172158/*
    173  *  ‘—M‘Ò‚¿ƒLƒ
    174 [‚̐擪ƒ^ƒXƒN‚©‚ç‚̃f[ƒ^ŽóM
     159 *  送信待ちキューの先頭タスクからのデータ受信
    175160 */
    176161#ifdef TOPPERS_dtqdeq
     
    190175
    191176/*
    192  *  ƒf[ƒ^ƒLƒ
    193 [‚Ö‚Ì‘—Miƒ|[ƒŠƒ“ƒOj
     177 *  データキューへの送信(ポーリング)
    194178 */
    195179#ifdef TOPPERS_psnd_dtq
     
    228212
    229213/*
    230  *  ƒf[ƒ^ƒLƒ
    231 [‚Ö‚Ì‘—Miƒ|[ƒŠƒ“ƒOC”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—pj
     214 *  データキューへの送信(ポーリング,非タスクコンテキスト用)
    232215 */
    233216#ifdef TOPPERS_ipsnd_dtq
     
    266249
    267250/*
    268  *  ƒf[ƒ^ƒLƒ
    269 [‚©‚ç‚ÌŽóMiƒ|[ƒŠƒ“ƒOj
     251 *  データキューからの受信(ポーリング)
    270252 */
    271253#ifdef TOPPERS_prcv_dtq
  • uKadecot/trunk/ssp/extension/dataqueue.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    12  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    13  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    14  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    15  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    16  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    17  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    18  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    19 ƒƒ“ƒgi—˜—p
    20  *      ŽÒƒ}ƒjƒ
    21 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    22  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    23  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    24  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    25  *      ‚ƁD
    26  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    27 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    28 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    29  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    30  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    31  *        •ñ‚·‚邱‚ƁD
    32  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    33  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    34  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    35  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    36  *      –Ɛӂ·‚邱‚ƁD
     11 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23 *      と.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27 *        報告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32 *      免責すること.
    3733 *
    38  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    39  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    40  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    41  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    42  *  ‚̐ӔC‚𕉂í‚È‚¢D
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    4339 *
    4440 */
    4541
    4642/*
    47  *              ƒf[ƒ^ƒLƒ
    48 [‹@”\
     43 *              データキュー機能
    4944 */
    5045
     
    5550
    5651/*
    57  *  ƒf[ƒ^ƒLƒ
    58 [‰Šú‰»ƒuƒƒbƒN
     52 *  データキュー初期化ブロック
    5953 */
    60 extern const ATR dtqinib_atr[];                 /* ƒf[ƒ^ƒLƒ
    61 [‘®« */
    62 extern intptr_t* const dtqinib_data[];  /* ƒf[ƒ^Ši”[—̈æ‚̐擪”Ô’n */
    63 extern const uint8_t dtqinib_size[];    /* ƒf[ƒ^ƒLƒ
    64 [‚Ì—e—Ê */
     54extern const ATR dtqinib_atr[];                 /* データキュー属性 */
     55extern intptr_t* const dtqinib_data[];  /* データ格納領域の先頭番地 */
     56extern const uint8_t dtqinib_size[];    /* データキューの容量 */
    6557
    6658/*
    67  *  ƒf[ƒ^ƒLƒ
    68 [ŠÇ—ƒuƒƒbƒN
     59 *  データキュー管理ブロック
    6960 */
    70 extern uint8_t dtqcb_count[];                           /* ƒf[ƒ^ƒLƒ
    71 [‚ÉŠi”[‚³‚ê‚Ä‚¢‚éƒf[ƒ^‚̐” */
    72 extern uint8_t dtqcb_head[];                            /* Å‰‚̃f[ƒ^‚ÌŠi”[êŠ */
    73 extern uint8_t dtqcb_tail[];                            /* ÅŒã‚̃f[ƒ^‚ÌŠi”[êŠ‚ÌŽŸ */
     61extern uint8_t dtqcb_count[];                           /* データキューに格納されているデータの数 */
     62extern uint8_t dtqcb_head[];                            /* 最初のデータの格納場所 */
     63extern uint8_t dtqcb_tail[];                            /* 最後のデータの格納場所の次 */
    7464
    7565
    7666/*
    77  *  ƒf[ƒ^ƒLƒ
    78 [ID‚̍őå’likernel_cfg.cj
     67 *  データキューIDの最大値(kernel_cfg.c)
    7968 */
    8069extern const ID tmax_dtqid;
    8170
    8271/*
    83  *  ƒf[ƒ^ƒLƒ
    84 [ŠÇ—ƒuƒƒbƒN‚©‚çƒf[ƒ^ƒLƒ
    85 [ID‚ðŽæ‚èo‚·‚½‚߂̃}ƒNƒ
     72 *  データキュー管理ブロックからデータキューIDを取り出すためのマクロ
    8673 */
    8774#define DTQID(p_dtqcb)  ((ID)(((p_dtqcb) - dtqcb_table) + TMIN_DTQID))
    8875
    8976/*
    90  *  ƒf[ƒ^ƒLƒ
    91 [‹@”\‚̏‰Šú‰»
     77 *  データキュー機能の初期化
    9278 */
    9379extern void     initialize_dataqueue(void);
  • uKadecot/trunk/ssp/extension/eventflag.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *             Nagoya Municipal Industrial Research Institute, JAPAN
    1212 *
    13  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    14  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    15  *  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    16  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    17  *      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    18  *      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    20  *      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    21 ƒƒ“ƒgi—˜—pŽÒƒ}
    22  *      ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    24  *      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    26  *      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    27  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    28 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    29 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    30  *        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    31  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É•ñ
    32  *        ‚·‚邱‚ƁD
    33  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    34  *      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    35  *      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    36  *      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     13 *  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     15 *  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     17 *      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     18 *      コード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     20 *      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     21 *      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     22 *      証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     24 *      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     26 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     28 *        告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     30 *      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     31 *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     32 *      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3733 *
    38  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    39  *  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    40  *  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    41  *  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    42  *  ‚í‚È‚¢D
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     35 *  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     36 *  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     37 *  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     38 *  わない.
    4339 *
    4440 */
    4541/*
    46  *  ƒCƒxƒ“ƒgƒtƒ‰ƒO‹@”\
     42 *  イベントフラグ機能
    4743 */
    4844
     
    5349
    5450/*
    55  *  ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
     51 *  トレースログマクロのデフォルト定義
    5652 */
    5753#ifndef LOG_SET_FLG_ENTER
     
    8985
    9086
    91 /* ƒCƒxƒ“ƒgƒtƒ‰ƒOIDID‚©‚ç‚Ì”z—ñƒIƒtƒZƒbƒg‚Ö‚Ì•ÏŠ·ƒ}ƒNƒ */
     87/* イベントフラグIDIDからの配列オフセットへの変換マクロ */
    9288#define INDEX_FLG(flgid)        ((uint_t)((flgid) - TMIN_FLGID))
    9389
     
    10096        for(i = 0 ; i < tmax_flgid ; i++)
    10197        {
    102                 /* ƒrƒbƒgƒpƒ^[ƒ“‚̏‰Šú‰» */
     98                /* ビットパターンの初期化 */
    10399                flgcb_flgptn[i] = flginib_iflgptn[i];
    104100        }
     
    108104
    109105/*
    110  *  ƒCƒxƒ“ƒgƒtƒ‰ƒOðŒ‚ª¬—§‚µ‚Ä‚¢‚é‚©‚̃`ƒFƒbƒN
     106 *  イベントフラグ条件が成立しているかのチェック
    111107 */
    112108Inline bool_t
     
    134130
    135131/*
    136  *  ƒCƒxƒ“ƒgƒtƒ‰ƒO‚̃Zƒbƒg
     132 *  イベントフラグのセット
    137133 */
    138134#ifdef TOPPERS_set_flg
     
    161157
    162158/*
    163  *  ƒCƒxƒ“ƒgƒtƒ‰ƒO‚̃Zƒbƒgi”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—pj
     159 *  イベントフラグのセット(非タスクコンテキスト用)
    164160 */
    165161#ifdef TOPPERS_iset_flg
     
    187183
    188184/*
    189  *  ƒCƒxƒ“ƒgƒtƒ‰ƒO‚̃NƒŠƒA
     185 *  イベントフラグのクリア
    190186 */
    191187#ifdef TOPPERS_clr_flg
     
    214210
    215211/*
    216  *  ƒCƒxƒ“ƒgƒtƒ‰ƒO‘Ò‚¿iƒ|[ƒŠƒ“ƒOj
     212 *  イベントフラグ待ち(ポーリング)
    217213 */
    218214#ifdef TOPPERS_pol_flg
  • uKadecot/trunk/ssp/extension/eventflag.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2011 by Meika Sugimoto
    1010 *
    11  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    12  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    13  *  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    14  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    15  *      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    16  *      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    17  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    18  *      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    19 ƒƒ“ƒgi—˜—pŽÒƒ}
    20  *      ƒjƒ
    21 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    22  *      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    23  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    24  *      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    25  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    26 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    27 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    28  *        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    29  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É•ñ
    30  *        ‚·‚邱‚ƁD
    31  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    32  *      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    33  *      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    34  *      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     11 *  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     13 *  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     15 *      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     16 *      コード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     18 *      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     19 *      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     20 *      証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     22 *      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     24 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     26 *        告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     28 *      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     29 *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     30 *      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3531 *
    36  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    37  *  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    38  *  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    39  *  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    40  *  ‚í‚È‚¢D
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     33 *  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     34 *  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     35 *  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     36 *  わない.
    4137 *
    4238 */
     
    4743
    4844/*
    49  *  ƒCƒxƒ“ƒgƒtƒ‰ƒO‰Šú‰»ƒuƒƒbƒN
     45 *  イベントフラグ初期化ブロック
    5046 */
    5147
    52 /* ƒCƒxƒ“ƒgƒtƒ‰ƒO‘®« */
     48/* イベントフラグ属性 */
    5349extern const ATR flginib_atr[];
    5450
    55 /* ƒCƒxƒ“ƒgƒtƒ‰ƒO‰Šú’l */
     51/* イベントフラグ初期値 */
    5652extern const FLGPTN flginib_iflgptn[];
    5753
    5854/*
    59  *  ƒCƒxƒ“ƒgƒtƒ‰ƒOŠÇ—ƒuƒƒbƒN
     55 *  イベントフラグ管理ブロック
    6056 */
    6157
    62 /* ƒCƒxƒ“ƒgƒtƒ‰ƒOŒ»Ýƒpƒ^[ƒ“ */
     58/* イベントフラグ現在パターン */
    6359extern FLGPTN flgcb_flgptn[];
    6460
    6561
    6662/*
    67  *  ƒCƒxƒ“ƒgƒtƒ‰ƒOID‚̍őå’likernel_cfg.cj
     63 *  イベントフラグIDの最大値(kernel_cfg.c)
    6864 */
    6965extern const ID tmax_flgid;
    7066
    7167/*
    72  *  ƒCƒxƒ“ƒgƒtƒ‰ƒO‹@”\‚̏‰Šú‰»
     68 *  イベントフラグ機能の初期化
    7369 */
    7470extern void     initialize_eventflag(void);
  • uKadecot/trunk/ssp/extension/time_event.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2011 by Meika Sugimoto
    66 *
    7  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    8  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    9  *  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    10  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    11  *      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    12  *      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    14  *      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    15 ƒƒ“ƒgi—˜—pŽÒƒ}
    16  *      ƒjƒ
    17 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    18  *      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    19  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    20  *      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    21  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    24  *        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É•ñ
    26  *        ‚·‚邱‚ƁD
    27  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    28  *      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    29  *      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    30  *      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     7 *  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     9 *  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     11 *      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     12 *      コード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     14 *      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     15 *      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     16 *      証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     18 *      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     20 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     22 *        告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     24 *      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     25 *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     26 *      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3127 *
    32  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    33  *  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    34  *  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    35  *  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    36  *  ‚í‚È‚¢D
     28 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     29 *  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     30 *  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     31 *  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     32 *  わない.
    3733 *
    3834 */
     
    4440
    4541/*
    46  *  Œ»Ý‚̃VƒXƒeƒ€Žži’PˆÊ: 1ƒ~ƒŠ•bj
     42 *  現在のシステム時刻(単位: 1ミリ秒)
    4743 *
    48  *  Œµ–§‚ɂ́C‘O‚̃^ƒCƒ€ƒeƒBƒbƒN‚̃VƒXƒeƒ€ŽžD
     44 *  厳密には,前のタイムティックのシステム時刻.
    4945 */
    5046EVTTIM  current_time;
    5147
    5248/*
    53  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒq[ƒv’†‚Å—LŒø‚ȍŏ¬‚̃VƒXƒeƒ€Žži’PˆÊ: 1ƒ~ƒŠ•bj
     49 *  タイムイベントヒープ中で有効な最小のシステム時刻(単位: 1ミリ秒)
    5450 */
    5551EVTTIM  min_time;
     
    5753
    5854/*
    59  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ
    60 [‚̃Lƒ
    61 [ƒwƒbƒ_
     55 *  タイムイベントキューのキューヘッダ
    6256 *
    63  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ
    64 [ƒuƒƒbƒN‚̏I’[‚ÉŠm•Û‚·‚éD
     57 *  タイムイベントキューブロックの終端に確保する.
    6558 */
    6659#define TMEVT_HEAD()    (tmevt_queue[tnum_tmevt_queue])
     
    6861
    6962/*
    70  *  ƒCƒxƒ“ƒg”­¶Žž”äŠrƒ}ƒNƒ
     63 *  イベント発生時刻比較マクロ
    7164 *
    72  *  ƒCƒxƒ“ƒg”­¶Žž‚́Cmin_time‚©‚ç‚Ì‘Š‘Î’l‚Å”äŠr‚·‚éD‚·‚È‚í‚¿C
    73  *  min_time‚ðÅ¬’liÅ‚à‹ß‚¢ŽžjCmit_time-1‚ªÅ‘å’liÅ‚à‰“‚¢Žžj
    74  *  ‚Æ‚Ý‚È‚µ‚Ä”äŠr‚·‚éD
     65 *  イベント発生時刻は,min_timeからの相対値で比較する.すなわち,
     66 *  min_timeを最小値(最も近い時刻),mit_time-1が最大値(最も遠い時刻)
     67 *  とみなして比較する.
    7568 */
    7669#define EVTTIM_LT(t1, t2) (((t1) - min_time) < ((t2) - min_time))
     
    7871
    7972/*
    80  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒg‚̏‰Šú‰»
     73 *  タイムイベントの初期化
    8174 */
    8275
     
    8679initialize_time_event(void)
    8780{
    88         /* •Ï”‚̏‰Šú‰» */
     81        /* 変数の初期化 */
    8982        current_time = 0U;
    9083        min_time = 0U;
    9184       
    92         /* ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ
    93 [‚̏‰Šú‰» */
     85        /* タイムイベントキューの初期化 */
    9486        queue_initialize(&TMEVT_HEAD() , (QUEIDX)tnum_tmevt_queue);
    9587}
     
    9890
    9991/*
    100  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒg‚Ì“o˜^
     92 *  タイムイベントの登録
    10193 */
    10294
     
    108100        QUEIDX pos = TMEVT_HEAD().next;
    109101       
    110         /* ‘}“üˆÊ’u‚ðŒŸõ */
     102        /* 挿入位置を検索 */
    111103        while((pos != TMEVT_NULL)
    112104                        && (EVTTIM_LE(tmevt_time[pos] , evttim))) {
     
    114106        }
    115107       
    116         /* ƒLƒ
    117 [‚É‘}“ü */
     108        /* キューに挿入 */
    118109        queue_insert_prev(&(tmevt_queue[0]) , pos , (QUEIDX)tmevtid);
    119110        tmevt_callback[tmevtid] = (CBACK)callback;
     
    125116
    126117/*
    127  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒg‚̍폜
     118 *  タイムイベントの削除
    128119 */
    129120
     
    133124time_event_dequeue(ID tmevtid)
    134125{
    135         /* ƒLƒ
    136 [‚©‚çíœ */
     126        /* キューから削除 */
    137127        (void)queue_delete_next(&(tmevt_queue[0]) , (QUEIDX)tmevtid);
    138128}
     
    141131
    142132/*
    143  *  ƒVƒXƒeƒ€Žž‚Ì’Ê’m
     133 *  システム時刻の通知
    144134 */
    145135
     
    153143        i_lock_cpu();
    154144       
    155         /* Œ»ÝŽž‚̍XV */
     145        /* 現在時刻の更新 */
    156146        current_time += (EVTTIM)TIC_NUME;
    157147       
    158         /* ƒR[ƒ‹ƒoƒbƒN‚ÌŽÀs */
     148        /* コールバックの実行 */
    159149        while((pos != TMEVT_NULL)
    160150                        && EVTTIM_LT(tmevt_time[pos] , current_time)) {
     
    165155        }
    166156
    167         /* min_time‚̍XV */
     157        /* min_timeの更新 */
    168158        min_time = current_time;
    169159       
  • uKadecot/trunk/ssp/extension/time_event.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2011 by Meika Sugimoto
    66 *
    7  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    8  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    9  *  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    10  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    11  *      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    12  *      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    14  *      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    15 ƒƒ“ƒgi—˜—pŽÒƒ}
    16  *      ƒjƒ
    17 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    18  *      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    19  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    20  *      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    21  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    24  *        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É•ñ
    26  *        ‚·‚邱‚ƁD
    27  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    28  *      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    29  *      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    30  *      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     7 *  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     9 *  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     11 *      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     12 *      コード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     14 *      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     15 *      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     16 *      証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     18 *      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     20 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     22 *        告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     24 *      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     25 *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     26 *      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3127 *
    32  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    33  *  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    34  *  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    35  *  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    36  *  ‚í‚È‚¢D
     28 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     29 *  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     30 *  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     31 *  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     32 *  わない.
    3733 *
    3834 */
     
    4440#include "queue.h"
    4541
    46 /* ƒCƒxƒ“ƒgŽž */
     42/* イベント時刻 */
    4743typedef ulong_t EVTTIM;
    4844
    4945/*
    50  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒR[ƒ‹ƒoƒbƒNŠÖ”
     46 *  タイムイベントコールバック関数
    5147 */
    5248
     
    5450
    5551/*
    56  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN
     52 *  タイムイベントブロック
    5753 *
    58  *  ƒRƒ“ƒtƒBƒMƒ
    59 ƒŒ[ƒ^‚É‚æ‚Á‚ж¬‚·‚éD
     54 *  コンフィギュレータによって生成する.
    6055 */
    6156
    62 /* ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚̃TƒCƒY */
     57/* タイムイベントブロックのサイズ */
    6358extern const uint_t tnum_tmevt_queue;
    6459
    65 /* ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ
    66 [ */
     60/* タイムイベントキュー */
    6761extern QUEUE tmevt_queue[];
    6862
    69 /* ƒ^ƒCƒ€ƒCƒxƒ“ƒgŽžŠÔ */
     63/* タイムイベント時間 */
    7064extern EVTTIM tmevt_time[];
    7165
    72 /* ƒ^ƒCƒ€ƒCƒxƒ“ƒg‚̃R[ƒ‹ƒoƒbƒN */
     66/* タイムイベントのコールバック */
    7367extern CBACK tmevt_callback[];
    7468
    75 /* ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒR[ƒ‹ƒoƒbƒN‚̈ø” */
     69/* タイムイベントコールバックの引数 */
    7670extern uintptr_t tmevt_arg[];
    7771
    7872
    79 /* Œ»Ý‚̃VƒXƒeƒ€Žž */
     73/* 現在のシステム時刻 */
    8074extern EVTTIM current_time;
    8175
    8276
    8377/*
    84  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒg‚̏‰Šú‰»
     78 *  タイムイベントの初期化
    8579 */
    8680extern void
     
    8882
    8983/*
    90  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒg‚Ì“o˜^
     84 *  タイムイベントの登録
    9185 */
    9286extern void
     
    9488
    9589/*
    96  *  ƒ^ƒCƒ€ƒCƒxƒ“ƒg‚̍폜
     90 *  タイムイベントの削除
    9791 */
    9892extern void
     
    10094
    10195/*
    102  *  ƒ^ƒCƒ€ƒeƒBƒbƒN‚Ì‹Ÿ‹‹
     96 *  タイムティックの供給
    10397 */
    10498extern void
  • uKadecot/trunk/ssp/extension/time_manage.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *             Nagoya Municipal Industrial Research Institute, JAPAN
    77 *
    8  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    9  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    10  *  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    11  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    12  *      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    13  *      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    15  *      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    16 ƒƒ“ƒgi—˜—pŽÒƒ}
    17  *      ƒjƒ
    18 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    19  *      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    20  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    21  *      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    22  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    23 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    25  *        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É•ñ
    27  *        ‚·‚邱‚ƁD
    28  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    29  *      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    30  *      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    31  *      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     8 *  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     10 *  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     12 *      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     13 *      コード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     15 *      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     16 *      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     17 *      証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     19 *      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     20 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     21 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     22 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     23 *        告すること.
     24 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     25 *      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     26 *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     27 *      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3228 *
    33  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    34  *  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    35  *  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    36  *  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    37  *  ‚í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     30 *  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     31 *  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     32 *  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     33 *  わない.
    3834 *
    3935 */
    4036
    4137/*
    42  *              ƒVƒXƒeƒ€ŽžŠÔŠÇ—
     38 *              システム時間管理
    4339 */
    4440
Note: See TracChangeset for help on using the changeset viewer.