Changeset 107


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

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

Location:
uKadecot/trunk
Files:
255 edited

Legend:

Unmodified
Added
Removed
  • uKadecot/trunk/csp/libssp/dummy.c

    • 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 *  @(#) $Id$
     
    4642
    4743/*
    48  *  ƒJ[ƒlƒ‹ì¬—pƒ_ƒ~[ƒ^ƒXƒN
     44 *  カーネル作成用ダミータスク
    4945 */
    5046
     
    5450
    5551/*
    56  *  ƒƒCƒ“ƒ^ƒXƒN
     52 *  メインタスク
    5753 */
    5854void dummy_task(intptr_t exinf)
  • uKadecot/trunk/csp/libssp/dummy.cfg

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44
    55/*
    6  *  ƒTƒ“ƒvƒ‹ƒvƒƒOƒ‰ƒ€(1)‚̃VƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ
    7 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     6 *  サンプルプログラム(1)のシステムコンフィギュレーションファイル
    87 */
    98#include "dummy.h"
  • uKadecot/trunk/csp/libssp/dummy.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 *  @(#) $Id$
     
    4642
    4743/*
    48  *      ƒJ[ƒlƒ‹ì¬—pƒ_ƒ~[ƒ^ƒXƒN‚̃wƒbƒ_ƒtƒ@ƒCƒ‹
     44 *      カーネル作成用ダミータスクのヘッダファイル
    4945 */
    5046
    5147/*
    52  *  ƒ^[ƒQƒbƒgˆË‘¶‚Ì’è‹`
     48 *  ターゲット依存の定義
    5349 */
    5450#include "target_test.h"
    5551
    5652/*
    57  *  Šeƒ^ƒXƒN‚Ì—Dæ“x‚Ì’è‹`
     53 *  各タスクの優先度の定義
    5854 */
    5955
    60 #define MAIN_PRIORITY   5               /* ƒƒCƒ“ƒ^ƒXƒN‚Ì—Dæ“x */
     56#define MAIN_PRIORITY   5               /* メインタスクの優先度 */
    6157
    6258/*
    63  *  ƒ^[ƒQƒbƒg‚Ɉˑ¶‚·‚é‰Â”\«‚Ì‚ ‚é’萔‚Ì’è‹`
     59 *  ターゲットに依存する可能性のある定数の定義
    6460 */
    6561
    6662#ifndef TASK_PORTID
    67 #define TASK_PORTID             1                       /* •¶Žš“ü—Í‚·‚éƒVƒŠƒAƒ‹ƒ|[ƒgID */
     63#define TASK_PORTID             1                       /* 文字入力するシリアルポートID */
    6864#endif /* TASK_PORTID */
    6965
    7066#ifndef STACK_SIZE
    71 #define STACK_SIZE              4096            /* ƒ^ƒXƒN‚̃Xƒ^ƒbƒNƒTƒCƒY */
     67#define STACK_SIZE              4096            /* タスクのスタックサイズ */
    7268#endif /* STACK_SIZE */
    7369
    7470/*
    75  *  ŠÖ”‚̃vƒƒgƒ^ƒCƒvéŒ¾
     71 *  関数のプロトタイプ宣言
    7672 */
    7773#ifndef TOPPERS_MACRO_ONLY
  • uKadecot/trunk/ecnl_ssp/echonet.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    5147
    5248/*
    53  * ECHONET LiteƒT[ƒrƒXˆ—ŠJŽn
     49 * ECHONET Liteサービス処理開始
    5450 */
    5551ER ecn_sta_svc()
     
    5955
    6056/*
    61  * ECHONETƒIƒuƒWƒFƒNƒgŽQÆ
    62  * ˆø”
    63  * ID           fa_eobjid       ECHONETƒIƒuƒWƒFƒNƒgID
    64  * T_REOBJ      *fp_eobj        ECHONETƒIƒuƒWƒFƒNƒg‚̐ݒè“à—eƒRƒs[æ
     57 * ECHONETオブジェクト参照
     58 * 引数
     59 * ID           fa_eobjid       ECHONETオブジェクトID
     60 * T_REOBJ      *fp_eobj        ECHONETオブジェクトの設定内容コピー先
    6561 *
    66  * eobjid‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚̐ݒè“à—e‚ðŽQÆ‚·‚éB
    67  * ŽQÆ‚µ‚½Ý’è“à—e‚Ípk_eobj‚ÉŽw’肵‚½ƒƒ‚ƒŠ‚É•Ô‚³‚ê‚éB
     62 * eobjidで指定したECHONETオブジェクトの設定内容を参照する。
     63 * 参照した設定内容はpk_eobjに指定したメモリに返される。
    6864 */
    6965ER ecn_ref_eobj(ID fa_eobjid, T_REOBJ *fp_eobj)
     
    7268
    7369        if (!fp_eobj)
    74                 return E_PAR;   /* ƒpƒ‰ƒ[ƒ^ƒGƒ‰[ */
     70                return E_PAR;   /* パラメータエラー */
    7571
    7672        if ((fa_eobjid <= 0) || (fa_eobjid > tmax_eobjid))
    77                 return E_OBJ;   /* ƒIƒuƒWƒFƒNƒg–¢“o˜^ */
     73                return E_OBJ;   /* オブジェクト未登録 */
    7874
    7975        p_obj = &eobjinib_table[fa_eobjid - 1];
     
    8581
    8682/*
    87  * ECHONETƒvƒƒpƒeƒBŽQÆ
    88  * ˆø”
    89  * ID                   fa_eobjid       ECHONETƒIƒuƒWƒFƒNƒgID
    90  * uint8_t              fa_epc          ƒvƒƒpƒeƒBƒR[ƒh
    91  * T_RPRP               *fp_eprp        ECHONETƒIƒuƒWƒFƒNƒg‚̃vƒƒpƒeƒBÝ’è“à—eƒRƒs[æ
     83 * ECHONETプロパティ参照
     84 * 引数
     85 * ID                   fa_eobjid       ECHONETオブジェクトID
     86 * uint8_t              fa_epc          プロパティコード
     87 * T_RPRP               *fp_eprp        ECHONETオブジェクトのプロパティ設定内容コピー先
    9288 *
    93  * eobjid‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚́Aepc‚ÅŽw’肵‚½ƒvƒƒpƒeƒB‚̐ݒè“à—e‚ðŽQÆ‚·‚éB
    94  * ŽQÆ‚µ‚½Ý’è“à—e‚Ípk_eprp‚ÉŽw’肵‚½ƒƒ‚ƒŠ‚É•Ô‚³‚ê‚éB
     89 * eobjidで指定したECHONETオブジェクトの、epcで指定したプロパティの設定内容を参照する。
     90 * 参照した設定内容はpk_eprpに指定したメモリに返される。
    9591 */
    9692ER ecn_ref_eprp(ID fa_eobjid, uint8_t fa_epc, T_RPRP *fp_eprp)
     
    10197
    10298        if (!fp_eprp)
    103                 return E_PAR;   /* ƒpƒ‰ƒ[ƒ^ƒGƒ‰[ */
     99                return E_PAR;   /* パラメータエラー */
    104100
    105101        if ((fa_eobjid <= 0) || (fa_eobjid > tmax_eobjid))
    106                 return E_OBJ;   /* ƒIƒuƒWƒFƒNƒg–¢“o˜^ */
     102                return E_OBJ;   /* オブジェクト未登録 */
    107103
    108104        p_obj = &eobjinib_table[fa_eobjid - 1];
    109105
    110         /* eoj‚ÌŽ‚ƒvƒƒpƒeƒB‰Šú‰»’è‹`”z—ñ‚©‚猟õ */
     106        /* eojの持つプロパティ初期化定義配列から検索 */
    111107        p = p_obj->eprp;
    112108        for (i = 0; i < p_obj->eprpcnt; i++, p++) {
     
    117113        }
    118114
    119         return E_PAR;   /* ƒpƒ‰ƒ[ƒ^ƒGƒ‰[ */
    120 }
    121 
    122 /*
    123  * ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj“d•¶ì¬
    124  * ˆø”
    125  * T_EDATA                      **ppk_esv       Žæ“¾‚µ‚½“d•¶‚ÌŠi”[æ
    126  * ID                           fa_deoj         ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    127  * uint8_t                      fa_epc          ƒvƒƒpƒeƒBƒR[ƒh
    128  * uint8_t                      fa_pdc          ƒvƒƒpƒeƒB’lƒf[ƒ^ƒTƒCƒY
    129  * const void           *p_edt          ƒvƒƒpƒeƒB’lƒf[ƒ^
     115        return E_PAR;   /* パラメータエラー */
     116}
     117
     118/*
     119 * プロパティ値書き込み要求(応答不要)電文作成
     120 * 引数
     121 * T_EDATA                      **ppk_esv       取得した電文の格納先
     122 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     123 * uint8_t                      fa_epc          プロパティコード
     124 * uint8_t                      fa_pdc          プロパティ値データサイズ
     125 * const void           *p_edt          プロパティ値データ
    130126 *
    131  *      ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj“d•¶‚ðì¬‚·‚éB
    132  *      “d•¶‚Ídeoj‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚ðˆ¶æ‚Æ‚µA
    133  *      “d•¶‚̏‰‚߂̃vƒƒpƒeƒB’l‚Æ‚µ‚āAepc‚ÆpdcAp_edt‚ÅŽw’肳‚ꂽ
    134  *      ƒvƒƒpƒeƒBƒR[ƒhAƒf[ƒ^ƒTƒCƒYAƒf[ƒ^‚ð“d•¶‚ɐݒ肷‚éB
    135  *      ì¬‚µ‚½“d•¶‚̐擪ƒAƒhƒŒƒX‚̓|ƒCƒ“ƒ^Œo—R‚Å•Ô‚³‚ê‚éB
     127 *      プロパティ値書き込み要求(応答不要)電文を作成する。
     128 *      電文はdeojで指定したECHONETオブジェクトを宛先とし、
     129 *      電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
     130 *      プロパティコード、データサイズ、データを電文に設定する。
     131 *      作成した電文の先頭アドレスはポインタ経由で返される。
    136132 */
    137133ER ecn_esv_seti(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
     
    142138
    143139/*
    144  * ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj“d•¶ì¬
    145  * ˆø”
    146  * T_EDATA                      **ppk_esv       Žæ“¾‚µ‚½“d•¶‚ÌŠi”[æ
    147  * ID                           fa_deoj         ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    148  * uint8_t                      fa_epc          ƒvƒƒpƒeƒBƒR[ƒh
    149  * uint8_t                      fa_pdc          ƒvƒƒpƒeƒB’lƒf[ƒ^ƒTƒCƒY
    150  * const void           *p_edt          ƒvƒƒpƒeƒB’lƒf[ƒ^
     140 * プロパティ値書き込み要求(応答要)電文作成
     141 * 引数
     142 * T_EDATA                      **ppk_esv       取得した電文の格納先
     143 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     144 * uint8_t                      fa_epc          プロパティコード
     145 * uint8_t                      fa_pdc          プロパティ値データサイズ
     146 * const void           *p_edt          プロパティ値データ
    151147 *
    152  *      ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj“d•¶‚ðì¬‚·‚éB
    153  *      “d•¶‚Ídeoj‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚ðˆ¶æ‚Æ‚µA
    154  *      “d•¶‚̏‰‚߂̃vƒƒpƒeƒB’l‚Æ‚µ‚āAepc‚ÆpdcAp_edt‚ÅŽw’肳‚ꂽ
    155  *      ƒvƒƒpƒeƒBƒR[ƒhAƒf[ƒ^ƒTƒCƒYAƒf[ƒ^‚ð“d•¶‚ɐݒ肷‚éB
    156  *      ì¬‚µ‚½“d•¶‚̐擪ƒAƒhƒŒƒX‚̓|ƒCƒ“ƒ^Œo—R‚Å•Ô‚³‚ê‚éB
     148 *      プロパティ値書き込み要求(応答要)電文を作成する。
     149 *      電文はdeojで指定したECHONETオブジェクトを宛先とし、
     150 *      電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
     151 *      プロパティコード、データサイズ、データを電文に設定する。
     152 *      作成した電文の先頭アドレスはポインタ経由で返される。
    157153 */
    158154ER ecn_esv_setc(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
     
    163159
    164160/*
    165  * ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹“d•¶ì¬
    166  * ˆø”
    167  * T_EDATA                      **ppk_esv       Žæ“¾‚µ‚½“d•¶‚ÌŠi”[æ
    168  * ID                           fa_deoj         ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    169  * uint8_t                      fa_epc          ƒvƒƒpƒeƒBƒR[ƒh
     161 * プロパティ値読み出し要求電文作成
     162 * 引数
     163 * T_EDATA                      **ppk_esv       取得した電文の格納先
     164 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     165 * uint8_t                      fa_epc          プロパティコード
    170166 *
    171  * ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹“d•¶‚ðì¬‚·‚éB
    172  * “d•¶‚Ídeoj‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚ðˆ¶æ‚Æ‚µA
    173  * “d•¶‚̏‰‚߂̃vƒƒpƒeƒB’l‚Æ‚µ‚āAepc‚ÅŽw’肳‚ꂽ
    174  * ƒvƒƒpƒeƒBƒR[ƒh‚ð“d•¶‚ɐݒ肷‚éB
    175  * ì¬‚µ‚½“d•¶‚̐擪ƒAƒhƒŒƒX‚̓|ƒCƒ“ƒ^Œo—R‚Å•Ô‚³‚ê‚éB
     167 * プロパティ値読み出し要求電文を作成する。
     168 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
     169 * 電文の初めのプロパティ値として、epcで指定された
     170 * プロパティコードを電文に設定する。
     171 * 作成した電文の先頭アドレスはポインタ経由で返される。
    176172 */
    177173ER ecn_esv_get(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
     
    181177
    182178/*
    183  * ƒvƒƒpƒeƒB’l’Ê’m—v‹“d•¶ì¬
    184  * ˆø”
    185  * T_EDATA                      **ppk_esv       Žæ“¾‚µ‚½“d•¶‚ÌŠi”[æ
    186  * ID                           fa_deoj         ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    187  * uint8_t                      fa_epc          ƒvƒƒpƒeƒBƒR[ƒh
     179 * プロパティ値通知要求電文作成
     180 * 引数
     181 * T_EDATA                      **ppk_esv       取得した電文の格納先
     182 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     183 * uint8_t                      fa_epc          プロパティコード
    188184 *
    189  * ƒvƒƒpƒeƒB’l’Ê’m—v‹“d•¶‚ðì¬‚·‚éB
    190  * “d•¶‚Ídeoj‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚ðˆ¶æ‚Æ‚µA
    191  * “d•¶‚̏‰‚߂̃vƒƒpƒeƒB’l‚Æ‚µ‚āAepc‚ÅŽw’肳‚ꂽ
    192  * ƒvƒƒpƒeƒBƒR[ƒh‚ð“d•¶‚ɐݒ肷‚éB
    193  * ì¬‚µ‚½“d•¶‚̐擪ƒAƒhƒŒƒX‚̓|ƒCƒ“ƒ^Œo—R‚Å•Ô‚³‚ê‚éB
     185 * プロパティ値通知要求電文を作成する。
     186 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
     187 * 電文の初めのプロパティ値として、epcで指定された
     188 * プロパティコードを電文に設定する。
     189 * 作成した電文の先頭アドレスはポインタ経由で返される。
    194190 */
    195191ER ecn_esv_inf_req(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc)
     
    199195
    200196/*
    201  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶ì¬
    202  * ˆø”
    203  * T_EDATA                      **ppk_esv       Žæ“¾‚µ‚½“d•¶‚ÌŠi”[æ
    204  * ID                           fa_deoj         ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    205  * uint8_t                      fa_epc          ƒvƒƒpƒeƒBƒR[ƒh
    206  * uint8_t                      fa_pdc          ƒvƒƒpƒeƒB’lƒf[ƒ^ƒTƒCƒY
    207  * const void           *p_edt          ƒvƒƒpƒeƒB’lƒf[ƒ^
     197 * プロパティ値書き込み・読み出し要求電文作成
     198 * 引数
     199 * T_EDATA                      **ppk_esv       取得した電文の格納先
     200 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     201 * uint8_t                      fa_epc          プロパティコード
     202 * uint8_t                      fa_pdc          プロパティ値データサイズ
     203 * const void           *p_edt          プロパティ値データ
    208204 *
    209  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶‚ðì¬‚·‚éB
    210  * “d•¶‚Ídeoj‚ÅŽw’肵‚½ECHONETƒIƒuƒWƒFƒNƒg‚ðˆ¶æ‚Æ‚µA
    211  * “d•¶‚̏‰‚߂̃vƒƒpƒeƒB’l‚Æ‚µ‚āAepc‚ÆpdcAp_edt‚ÅŽw’肳‚ꂽ
    212  * ƒvƒƒpƒeƒBƒR[ƒhAƒf[ƒ^ƒTƒCƒYAƒf[ƒ^‚ð“d•¶‚ɐݒ肷‚éB
    213  * ì¬‚µ‚½“d•¶‚̐擪ƒAƒhƒŒƒX‚̓|ƒCƒ“ƒ^Œo—R‚Å•Ô‚³‚ê‚éB
     205 * プロパティ値書き込み・読み出し要求電文を作成する。
     206 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、
     207 * 電文の初めのプロパティ値として、epcとpdc、p_edtで指定された
     208 * プロパティコード、データサイズ、データを電文に設定する。
     209 * 作成した電文の先頭アドレスはポインタ経由で返される。
    214210 */
    215211ER ecn_esv_set_get(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc,
     
    220216
    221217/*
    222  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶ì¬FÜ‚è•Ô‚µŽw’è
    223  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶ì¬’†‚́A‘‚«ž‚݃vƒƒpƒeƒB”z—ñ‚ðI‚¦‚Ä
    224  * “ǂݏo‚µƒvƒƒpƒeƒB”z—ñ‚Ɉڂ鎞‚É—p‚¢‚éB
     218 * プロパティ値書き込み・読み出し要求電文作成:折り返し指定
     219 * プロパティ値書き込み・読み出し要求電文作成中の、書き込みプロパティ配列を終えて
     220 * 読み出しプロパティ配列に移る時に用いる。
    225221 */
    226222ER ecn_trn_set_get(T_EDATA *ppk_esv, int *p_trn_pos)
     
    233229                return E_PAR;
    234230
    235         /* ƒvƒƒpƒeƒB“ǂݍž‚ÝŒ”‘‚«ž‚ÝŽž‚̃wƒbƒhî•ñ‚ð‹L˜^ */
     231        /* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
    236232        *p_trn_pos = _ecn_fbs_get_datalen(*(ECN_FBS_ID *)&ppk_esv);
    237233
    238         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁE‚±‚ÌŽž“_‚ł̉ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”‚ð‹L˜^ */
     234        /* 応答電文用メモリにデータ追加・この時点での応答電文中プロパティ件数を記録 */
    239235        a_ret = _ecn_fbs_add_data_ex(*(ECN_FBS_ID *)&ppk_esv, &ppk_esv->hdr.edata.opc, 1);
    240236        if (a_ret) {
     
    243239        }
    244240
    245         /* ‰ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”‚ð 0 ‚É–ß‚·i¡ŒãAI—¹Žw’è‚·‚é‚܂ł͓ǂݏo‚µƒvƒƒpƒeƒBŒ”‚É‚È‚éj */
     241        /* 応答電文中プロパティ件数を 0 に戻す(今後、終了指定するまでは読み出しプロパティ件数になる) */
    246242        ppk_esv->hdr.edata.opc = 0;
    247243
     
    250246
    251247/*
    252  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶ì¬FI—¹Žw’è
    253  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶ì¬’†‚́A“ǂݏo‚µƒvƒƒpƒeƒB”z—ñ‚ðI‚¦‚鎞‚É—p‚¢‚éB
     248 * プロパティ値書き込み・読み出し要求電文作成:終了指定
     249 * プロパティ値書き込み・読み出し要求電文作成中の、読み出しプロパティ配列を終える時に用いる。
    254250 */
    255251ER ecn_end_set_get(T_EDATA *ppk_esv, int fa_trn_pos)
     
    262258                return E_PAR;
    263259
    264         /* ‚±‚ÌŽž“_‚ł̉ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”(“ǂݏo‚µƒvƒƒpƒeƒBŒ”)‚ð•ÛŽ */
     260        /* この時点での応答電文中プロパティ件数(読み出しプロパティ件数)を保持 */
    265261        a_rd_opc = ppk_esv->hdr.edata.opc;
    266262
    267         /* ‰ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”(‘‚«ž‚݃vƒƒpƒeƒBŒ”)‚ð•Û‘¶ˆÊ’u‚©‚ç“Ç‚ÝŽæ‚è */
     263        /* 応答電文中プロパティ件数(書き込みプロパティ件数)を保存位置から読み取り */
    268264        a_wr_opc = _ecn_fbs_peek(*(ECN_FBS_ID *)&ppk_esv, fa_trn_pos);
    269265        if (a_wr_opc < 0) {
     
    272268        }
    273269
    274         /* ‰ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”(‘‚«ž‚݃vƒƒpƒeƒBŒ”)‚𕜌³ */
     270        /* 応答電文中プロパティ件数(書き込みプロパティ件数)を復元 */
    275271        ppk_esv->hdr.edata.opc = (uint8_t)a_wr_opc;
    276272
    277         /* ‰ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”(“ǂݏo‚µƒvƒƒpƒeƒBŒ”)‚ð•Û‘¶ˆÊ’u‚ɏ‘‚«ž‚Ý */
     273        /* 応答電文中プロパティ件数(読み出しプロパティ件数)を保存位置に書き込み */
    278274        a_ret = _ecn_fbs_poke(*(ECN_FBS_ID *)&ppk_esv, fa_trn_pos, a_rd_opc);
    279275        if (a_ret) {
     
    286282
    287283/*
    288  * ƒvƒƒpƒeƒB’l’Ê’mi‰ž“š—vj“d•¶ì¬
    289  * ˆø”
    290  * T_EDATA                      **ppk_esv       Žæ“¾‚µ‚½“d•¶‚ÌŠi”[æ
    291  * ID                           fa_deoj         ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    292  * ID                           fa_seoj         ‘—MŒ³‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    293  * uint8_t                      fa_sepc         ‘—MŒ³‚̃vƒƒpƒeƒBƒR[ƒh
     284 * プロパティ値通知(応答要)電文作成
     285 * 引数
     286 * T_EDATA                      **ppk_esv       取得した電文の格納先
     287 * ID                           fa_deoj         宛先のECHONETオブジェクトID
     288 * ID                           fa_seoj         送信元のECHONETオブジェクトID
     289 * uint8_t                      fa_sepc         送信元のプロパティコード
    294290 */
    295291ER ecn_esv_infc(T_EDATA **ppk_esv, ID fa_deoj, ID fa_seoj, uint8_t fa_sepc)
     
    299295
    300296/*
    301  * —v‹“d•¶‚ւ̃vƒƒpƒeƒBŽw’è’ljÁ (ƒvƒƒpƒeƒBƒf[ƒ^‚ª•t‚µ‚È‚¢ê‡‚É—p‚¢‚é)
     297 * 要求電文へのプロパティ指定追加 (プロパティデータが付随しない場合に用いる)
    302298 */
    303299ER ecn_add_epc(T_EDATA *pk_esv, uint8_t epc)
     
    307303
    308304/*
    309  * —v‹“d•¶‚ւ̃vƒƒpƒeƒBƒf[ƒ^’ljÁ (ƒvƒƒpƒeƒB‚¨‚æ‚Ñ•tƒf[ƒ^‚ð’ljÁ‚·‚é)
     305 * 要求電文へのプロパティデータ追加 (プロパティおよび付随データを追加する)
    310306 */
    311307ER ecn_add_edt(T_EDATA *pk_esv, uint8_t fa_epc, uint8_t fa_pdc, const void *p_edt)
     
    316312
    317313        if (!pk_esv)
    318                 return E_PAR; /* Žæ“¾‚µ‚½FBS_ID‚ÌŠi”[æ‚ªNULL */
     314                return E_PAR; /* 取得したFBS_IDの格納先がNULL */
    319315        if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
    320                 return E_PAR; /* ƒvƒƒpƒeƒB’lƒTƒCƒY‚ª‘å‚«‚·‚¬‚é */
     316                return E_PAR; /* プロパティ値サイズが大きすぎる */
    321317        if (!p_edt && 0 < fa_pdc)
    322                 return E_PAR; /* ƒvƒƒpƒeƒB’lƒTƒCƒY‚ª1ˆÈã‚Ȃ̂Ƀf[ƒ^ƒ|ƒCƒ“ƒ^‚ªNULL */
     318                return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
    323319
    324320        a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_esv;
    325321        if (((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc == 0xFF)
    326                 return E_PAR; /* ƒvƒƒpƒeƒB‚ª‘½‚·‚¬‚é */
    327 
    328         /* —v‹“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ */
     322                return E_PAR; /* プロパティが多すぎる */
     323
     324        /* 要求電文用メモリにデータ追加 */
    329325        memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
    330326        a_ecn_prp.epc = fa_epc;
     
    338334        }
    339335        if (0 < fa_pdc) {
    340                 /* •tƒf[ƒ^’ljÁ */
     336                /* 付随データ追加 */
    341337                a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_edt, fa_pdc);
    342338                if (a_ret) {
     
    347343                }
    348344        }
    349         /* ƒvƒƒpƒeƒB”ƒCƒ“ƒNƒŠƒƒ“ƒg */
     345        /* プロパティ数インクリメント */
    350346        ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc++;
    351347
     
    355351
    356352/*
    357  * —v‹“d•¶‚Ì‘—M
    358  * esv‚ÅŽw’肳‚ꂽ—v‹“d•¶‚𑗐M‚·‚éB
    359  * “d•¶‚ÉŽw’肳‚ꂽˆ¶æ‚©‚çIPƒAƒhƒŒƒX‚ð“Á’肵AUDPƒpƒPƒbƒg‚Æ‚µ‚Ä‘—M‚·‚éB
     353 * 要求電文の送信
     354 * esvで指定された要求電文を送信する。
     355 * 電文に指定された宛先からIPアドレスを特定し、UDPパケットとして送信する。
    360356 */
    361357ER ecn_snd_esv(T_EDATA *pk_esv)
     
    367363
    368364/*
    369  * ‰ž“š“d•¶‚ÌŽóMƒ|[ƒŠƒ“ƒO
    370  * ‰ž“š“d•¶‚ðŽóM‚·‚é‚Ì‚ð‘҂B
    371  * ŽóM‚µ‚½‰ž“š“d•¶‚Íppk_esv‚ÅŽw’肵‚½ƒ|ƒCƒ“ƒ^[‚ɐ擪ƒAƒhƒŒƒX‚ª•Ô‚³‚ê‚éB
    372  * ‰ž“š“d•¶‚ÌŽóM‚Ì—L–³‚É‚©‚©‚í‚炸A‘Ò‚½‚¸‚Ɋ֐”‚𔲂¯‚éB
     365 * 応答電文の受信ポーリング
     366 * 応答電文を受信するのを待つ。
     367 * 受信した応答電文はppk_esvで指定したポインターに先頭アドレスが返される。
     368 * 応答電文の受信の有無にかかわらず、待たずに関数を抜ける。
    373369 */
    374370ER ecn_prcv_esv(T_EDATA **ppk_esv)
     
    391387
    392388/*
    393  * ‰ž“š“d•¶‚Ì”jŠü
     389 * 応答電文の破棄
    394390 */
    395391ER ecn_rel_esv(T_EDATA *pk_esv)
     
    404400
    405401/*
    406  * ‰ž“š“d•¶‚Ì‘—MŒ³ƒm[ƒh‚ðŽæ“¾‚·‚é
     402 * 応答電文の送信元ノードを取得する
    407403 */
    408404ID ecn_get_enod(T_EDATA *pk_esv)
     
    428424
    429425/*
    430  * ‰ž“š“d•¶‚Ì‘—MŒ³‹@ŠíƒIƒuƒWƒFƒNƒg‚ðŽæ“¾‚·‚é
     426 * 応答電文の送信元機器オブジェクトを取得する
    431427 */
    432428ID ecn_get_eobj(T_EDATA *pk_esv)
     
    439435        p_snod = _ecn_eno_fnd(((T_ECN_FST_BLK *)pk_esv)->hdr.sender);
    440436        if (p_snod != NULL) {
    441                 /* ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚̏ꍇ */
     437                /* ノードプロファイルの場合 */
    442438                if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
    443439                        && (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
    444440                        p_sobj = p_snod->profile;
    445441                }
    446                 /* ‹@ŠíƒIƒuƒWƒFƒNƒg‚̏ꍇ */
     442                /* 機器オブジェクトの場合 */
    447443                else {
    448444                        p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
     
    460456
    461457/*
    462  * ‰ž“š“d•¶‰ðÍƒCƒeƒŒ[ƒ^[‰Šú‰»
     458 * 応答電文解析イテレーター初期化
    463459 */
    464460ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv)
     
    472468        pk_itr->pk_esv = pk_esv;
    473469        pk_itr->count = pk_esv->hdr.edata.opc;
    474                                                                 /* ¡‚̃uƒƒbƒN‚ł̃vƒƒpƒeƒB‘” */
    475         pk_itr->got_ct = 0;                     /* ¡‚̃uƒƒbƒN‚ŁA“Ç‚ÝŽæ‚Á‚½” */
    476         pk_itr->next_blk_ct = 0;        /* Œã‘±ƒuƒƒbƒN” */
    477         pk_itr->is_eof = 0;                     /* I’[‚É’B‚µ‚½ŽžA”ñ0 */
     470                                                                /* 今のブロックでのプロパティ総数 */
     471        pk_itr->got_ct = 0;                     /* 今のブロックで、読み取った数 */
     472        pk_itr->next_blk_ct = 0;        /* 後続ブロック数 */
     473        pk_itr->is_eof = 0;                     /* 終端に達した時、非0 */
    478474        pk_itr->cur = offsetof(T_ECN_EDT_HDR, ecn_prp);
    479475
    480476        switch (pk_esv->hdr.edata.esv) {
    481         case ESV_SET_GET:               /* 0x6E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹              */
    482         case ESV_SET_GET_RES:   /* 0x7E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ‰ž“š              */
    483         case ESV_SET_GET_SNA:   /* 0x5E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ•s‰Â‰ž“š  */
     477        case ESV_SET_GET:               /* 0x6E プロパティ値書き込み・読み出し要求               */
     478        case ESV_SET_GET_RES:   /* 0x7E プロパティ値書き込み・読み出し応答               */
     479        case ESV_SET_GET_SNA:   /* 0x5E プロパティ値書き込み・読み出し不可応答     */
    484480                pk_itr->next_blk_ct ++;
    485481        default:
     
    491487
    492488/*
    493  * ‰ž“š“d•¶‰ðÍƒCƒeƒŒ[ƒ^[ƒCƒ“ƒNƒŠƒƒ“ƒg
     489 * 応答電文解析イテレーターインクリメント
    494490 */
    495491ER ecn_itr_nxt(T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt)
     
    513509
    514510        if (pk_itr->is_eof)
    515                 return E_BOVR; /* ƒf[ƒ^I—¹ */
     511                return E_BOVR; /* データ終了 */
    516512        if (    pk_itr->count <= pk_itr->got_ct
    517513        &&      pk_itr->next_blk_ct < 1) {
    518                 pk_itr->is_eof = 1;                     /* I’[‚É’B‚µ‚½ŽžA”ñ0 */
    519                 return E_BOVR; /* ƒf[ƒ^I—¹ */
     514                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
     515                return E_BOVR; /* データ終了 */
    520516        }
    521517
    522518        a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_itr->pk_esv;
    523519
    524         /* Œ³‚̃J[ƒ\ƒ‹ˆÊ’u‚ð•Û‘¶‚µAƒCƒeƒŒ[ƒ^‚̃J[ƒ\ƒ‹ˆÊ’u‚É‚·‚é */
     520        /* 元のカーソル位置を保存し、イテレータのカーソル位置にする */
    525521        a_rd_bak = a_fbs_id.ptr->hdr.rd;
    526522        a_fbs_id.ptr->hdr.rd = pk_itr->cur;
     
    530526#endif
    531527        if (pk_itr->count <= pk_itr->got_ct && 0 < pk_itr->next_blk_ct) {
    532                 /* ŽŸƒuƒƒbƒN‚Ɉړ® */
     528                /* 次ブロックに移動 */
    533529                pk_itr->next_blk_ct --;
    534                 pk_itr->count = 0;              /* ¡‚̃uƒƒbƒN‚ł̃vƒƒpƒeƒB‘” */
    535                 pk_itr->got_ct = 0;             /* ¡‚̃uƒƒbƒN‚ŁA“Ç‚ÝŽæ‚Á‚½” */
    536 
    537                 /* ŽŸƒuƒƒbƒN‚̃vƒƒpƒeƒB”‚ð“Ç‚ÝŽæ‚é */
     530                pk_itr->count = 0;              /* 今のブロックでのプロパティ総数 */
     531                pk_itr->got_ct = 0;             /* 今のブロックで、読み取った数 */
     532
     533                /* 次ブロックのプロパティ数を読み取る */
    538534                a_rd_len = 0;
    539535                a_ret = _ecn_fbs_get_data(a_fbs_id, &a_ecn_prp.pdc, 1, &a_rd_len);
     
    541537                        goto lb_except;
    542538                if (0 < a_rd_len) {
    543                         pk_itr->count = a_ecn_prp.pdc;  /* ¡‚̃uƒƒbƒN‚ł̃vƒƒpƒeƒB‘” */
     539                        pk_itr->count = a_ecn_prp.pdc;  /* 今のブロックでのプロパティ総数 */
    544540                }
    545                 a_ret = E_BOVR; /* ƒf[ƒ^I—¹ */
     541                a_ret = E_BOVR; /* データ終了 */
    546542                goto lb_finally;
    547543        }
    548544
    549         /* ƒvƒƒpƒeƒBƒR[ƒh‚ƃf[ƒ^ƒTƒCƒY‚ð“Ç‚ÝŽæ‚é */
     545        /* プロパティコードとデータサイズを読み取る */
    550546        memset(&a_ecn_prp, 0, sizeof(a_ecn_prp));
    551547        a_rd_len = 0;
     
    556552                ECN_DBG_PUT "ecn_itr_nxt() ecn_prp read fault."
    557553                        " rd.cur=%d", pk_itr->cur ECN_DBG_END;
    558                 pk_itr->is_eof = 1;                     /* I’[‚É’B‚µ‚½ŽžA”ñ0 */
    559                 a_ret = E_BOVR; /* ƒf[ƒ^I—¹ */
     554                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
     555                a_ret = E_BOVR; /* データ終了 */
    560556                goto lb_finally;
    561557        }
     
    564560
    565561        if (0 < a_ecn_prp.pdc) {
    566                 /* •tƒf[ƒ^‚ð“Ç‚ÝŽæ‚é */
     562                /* 付随データを読み取る */
    567563                a_rd_len = 0;
    568564                a_ret = _ecn_fbs_get_data(a_fbs_id, p_edt, a_ecn_prp.pdc, &a_rd_len);
     
    572568                        ECN_DBG_PUT "ecn_itr_nxt() edt read fault."
    573569                                " rd.cur=%d,epc=0x%02X,pdc=%u", pk_itr->cur, a_ecn_prp.epc , a_ecn_prp.pdc ECN_DBG_END;
    574                         pk_itr->is_eof = 1;                     /* I’[‚É’B‚µ‚½ŽžA”ñ0 */
    575                         a_ret = E_BOVR; /* ƒf[ƒ^I—¹ */
     570                        pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
     571                        a_ret = E_BOVR; /* データ終了 */
    576572                        goto lb_finally;
    577573                }
     
    584580
    585581lb_finally:
    586         /* ƒCƒeƒŒ[ƒ^‚̃J[ƒ\ƒ‹ˆÊ’u‚ðXV */
     582        /* イテレータのカーソル位置を更新 */
    587583        pk_itr->cur = a_fbs_id.ptr->hdr.rd;
    588584
    589585lb_except:
    590         /* Œ³‚̃J[ƒ\ƒ‹ˆÊ’u‚É–ß‚· */
     586        /* 元のカーソル位置に戻す */
    591587        a_fbs_id.ptr->hdr.rd = a_rd_bak;
    592588        return a_ret;
     
    594590
    595591/*
    596  * ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚Ý‘—M
     592 * 応答電文待ちの割り込み送信
    597593 */
    598594ER ecn_brk_wai(const void *p_dat, int fa_datsz)
    599595{
    600596        ER                              a_ret;
    601         ECN_FBS_ID              a_fbs_id = { 0 };       /* —v‹“d•¶—pƒƒ‚ƒŠ     */
    602 
    603         /* ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚Ý“d•¶ì¬ */
     597        ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ     */
     598
     599        /* 応答電文待ちの割り込み電文作成 */
    604600        a_ret = _ecn_mk_brk_wai(&a_fbs_id, p_dat, fa_datsz);
    605601        if (a_ret)
    606602                return a_ret;
    607603
    608         /* Š„‚荞‚Ý‘—M */
     604        /* 割り込み送信 */
    609605        a_ret = _ecn_tsk_snd_mbx(a_fbs_id, true);
    610606        if (a_ret) {
     
    614610        }
    615611
    616         /* ³íI—¹ */
     612        /* 正常終了 */
    617613        return a_ret;
    618614
    619615lb_except:
    620         /* ƒf[ƒ^ì¬Ž¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     616        /* データ作成失敗したら領域解放 */
    621617        if (a_fbs_id.ptr)
    622618                _ecn_fbs_del(a_fbs_id);
     
    626622
    627623/*
    628  * Š„‚荞‚݃f[ƒ^‚̎擾
     624 * 割り込みデータの取得
    629625 */
    630626ER ecn_get_brk_dat(T_EDATA *pk_esv, void *p_buf, int fa_bufsz, int *p_datsz)
     
    646642        }
    647643
    648         /* “Ç‚ÝŽæ‚èˆÊ’u‚ðæ“ª‚É–ß‚· */
     644        /* 読み取り位置を先頭に戻す */
    649645        a_ret = _ecn_fbs_set_rpos(a_fbs, 0);
    650646        if (a_ret) {
     
    654650        }
    655651
    656         /* •tƒf[ƒ^‚ð“ǂݍž‚Þ */
     652        /* 付随データを読み込む */
    657653        if (p_buf && 0 < fa_bufsz) {
    658654                a_len = 0;
     
    671667#ifndef ECN_USER_DATA_PROP_SET
    672668/*
    673  * ƒf[ƒ^Ý’èŠÖ”
     669 * データ設定関数
    674670 */
    675671int ecn_data_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno)
     
    689685#ifndef ECN_USER_DATA_PROP_GET
    690686/*
    691  * ƒf[ƒ^Žæ“¾ŠÖ”
     687 * データ取得関数
    692688 */
    693689int ecn_data_prop_get(const EPRPINIB *item, void *dst, int size)
  • uKadecot/trunk/ecnl_ssp/echonet.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    5753
    5854#define EOBJ_NULL 0x00
    59 #define EOBJ_LOCAL_NODE 0x01                    /* Ž©ƒm[ƒh */
    60 #define EOBJ_SYNC_REMOTE_NODE 0x02              /* ‘¼ƒm[ƒh */
    61 #define EOBJ_ASYNC_REMOTE_NODE 0x04             /* ‘¼ƒm[ƒhi”ñ“¯Šúj */
    62 #define EOBJ_DEVICE 0x08                                /* ‹@ŠíƒIƒuƒWƒFƒNƒg */
     55#define EOBJ_LOCAL_NODE 0x01                    /* 自ノード */
     56#define EOBJ_SYNC_REMOTE_NODE 0x02              /* 他ノード */
     57#define EOBJ_ASYNC_REMOTE_NODE 0x04             /* 他ノード(非同期) */
     58#define EOBJ_DEVICE 0x08                                /* 機器オブジェクト */
    6359
    6460#define EPC_NONE 0x00
    65 #define EPC_RULE_SET 0x01                               /* ƒAƒNƒZƒXƒ‹[ƒ‹ Set */
    66 #define EPC_RULE_GET 0x02                               /* ƒAƒNƒZƒXƒ‹[ƒ‹ Get */
    67 #define EPC_RULE_ANNO 0x04                              /* ƒAƒNƒZƒXƒ‹[ƒ‹ Anno */
    68 #define EPC_ANNOUNCE 0x40                               /* ó‘ԕω»Žž’Ê’m */
    69 #define EPC_VARIABLE 0x80                               /* ‰Â•Ï’·ƒf[ƒ^ */
     61#define EPC_RULE_SET 0x01                               /* アクセスルール Set */
     62#define EPC_RULE_GET 0x02                               /* アクセスルール Get */
     63#define EPC_RULE_ANNO 0x04                              /* アクセスルール Anno */
     64#define EPC_ANNOUNCE 0x40                               /* 状態変化時通知 */
     65#define EPC_VARIABLE 0x80                               /* 可変長データ */
    7066
    7167typedef enum _echonet_enod_id
    7268{
    7369        ENOD_NOT_MATCH_ID       = -1,
    74         ENOD_MULTICAST_ID       = 0,                    /* ƒ}ƒ‹ƒ`ƒLƒƒƒXƒgƒAƒhƒŒƒXID */
    75         ENOD_LOCAL_ID           = 1,                    /* Ž©ƒm[ƒhƒAƒhƒŒƒXID */
    76         ENOD_API_ID                     = 2,                    /* APIƒAƒhƒŒƒXID */
    77         ENOD_REMOTE_ID          = 3,                    /* ‘¼ƒm[ƒhƒAƒhƒŒƒXID */
     70        ENOD_MULTICAST_ID       = 0,                    /* マルチキャストアドレスID */
     71        ENOD_LOCAL_ID           = 1,                    /* 自ノードアドレスID */
     72        ENOD_API_ID                     = 2,                    /* APIアドレスID */
     73        ENOD_REMOTE_ID          = 3,                    /* 他ノードアドレスID */
    7874} ECN_ENOD_ID;
    7975
    80 /* ECHONET Lite‹KŠi */
     76/* ECHONET Lite規格 */
    8177typedef enum
    8278{
     
    8480} ECN_EHD1_ECL_VERSION;
    8581
    86 /* “d•¶Œ`Ž®1/2 */
     82/* 電文形式1/2 */
    8783typedef enum
    8884{
    89         ECN_EDH2_FORMAT_1 = 0x81,       /* “d•¶Œ`Ž®1 */
    90         ECN_EDH2_FORMAT_2 = 0x82        /* “d•¶Œ`Ž®2 */
     85        ECN_EDH2_FORMAT_1 = 0x81,       /* 電文形式1 */
     86        ECN_EDH2_FORMAT_2 = 0x82        /* 電文形式2 */
    9187} ECN_EHD2_FORMAT;
    9288
    93 /* ECHONET LiteƒT[ƒrƒXƒR[ƒh */
     89/* ECHONET Liteサービスコード */
    9490typedef enum _echonet_service_code
    9591{
    96         ESV_NOP                         =       0,              /* (‹@”\Žw’è‚È‚µ)                                                       */
    97         ESV_SET_I                       =       0x60,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj         */
    98         ESV_SET_C                       =       0x61,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj           */
    99         ESV_GET                         =       0x62,   /* ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹                                     */
    100         ESV_INF_REQ                     =       0x63,   /* ƒvƒƒpƒeƒB’l’Ê’m—v‹                                         */
    101         ESV_SET_GET                     =       0x6E,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹           */
    102         ESV_SET_RES                     =       0x71,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚݉ž“š                                     */
    103         ESV_GET_RES                     =       0x72,   /* ƒvƒƒpƒeƒB’l“ǂݏo‚µ‰ž“š                                     */
    104         ESV_INF                         =       0x73,   /* ƒvƒƒpƒeƒB’l’Ê’m                                                     */
    105         ESV_INFC                        =       0x74,   /* ƒvƒƒpƒeƒB’l’Ê’mi‰ž“š—vj                           */
    106         ESV_INFC_RES            =       0x7A,   /* ƒvƒƒpƒeƒB’l’Ê’m‰ž“š                                         */
    107         ESV_SET_GET_RES         =       0x7E,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ‰ž“š           */
    108         ESV_SET_I_SNA           =       0x50,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹•s‰Â‰ž“š                     */
    109         ESV_SET_C_SNA           =       0x51,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹•s‰Â‰ž“š                     */
    110         ESV_GET_SNA                     =       0x52,   /* ƒvƒƒpƒeƒB’l“ǂݏo‚µ•s‰Â‰ž“š                         */
    111         ESV_INF_SNA                     =       0x53,   /* ƒvƒƒpƒeƒB’l’Ê’m•s‰Â‰ž“š                                     */
    112         ESV_SET_GET_SNA         =       0x5E    /* ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ•s‰Â‰ž“š       */
     92        ESV_NOP                         =       0,              /* (機能指定なし)                                                     */
     93        ESV_SET_I                       =       0x60,   /* プロパティ値書き込み要求(応答不要)           */
     94        ESV_SET_C                       =       0x61,   /* プロパティ値書き込み要求(応答要)            */
     95        ESV_GET                         =       0x62,   /* プロパティ値読み出し要求                                 */
     96        ESV_INF_REQ                     =       0x63,   /* プロパティ値通知要求                                           */
     97        ESV_SET_GET                     =       0x6E,   /* プロパティ値書き込み・読み出し要求            */
     98        ESV_SET_RES                     =       0x71,   /* プロパティ値書き込み応答                                 */
     99        ESV_GET_RES                     =       0x72,   /* プロパティ値読み出し応答                                 */
     100        ESV_INF                         =       0x73,   /* プロパティ値通知                                                     */
     101        ESV_INFC                        =       0x74,   /* プロパティ値通知(応答要)                                */
     102        ESV_INFC_RES            =       0x7A,   /* プロパティ値通知応答                                           */
     103        ESV_SET_GET_RES         =       0x7E,   /* プロパティ値書き込み・読み出し応答            */
     104        ESV_SET_I_SNA           =       0x50,   /* プロパティ値書き込み要求不可応答                     */
     105        ESV_SET_C_SNA           =       0x51,   /* プロパティ値書き込み要求不可応答                     */
     106        ESV_GET_SNA                     =       0x52,   /* プロパティ値読み出し不可応答                               */
     107        ESV_INF_SNA                     =       0x53,   /* プロパティ値通知不可応答                                 */
     108        ESV_SET_GET_SNA         =       0x5E    /* プロパティ値書き込み・読み出し不可応答  */
    113109} ECN_SRV_CODE;
    114110
     
    122118
    123119/*
    124  *  ECHONET Lite“d•¶ƒwƒbƒ_[
     120 *  ECHONET Lite電文ヘッダー
    125121 */
    126122typedef struct
    127123{
    128         uint8_t ehd1;           /* ECHONET Lite“d•¶ƒwƒbƒ_[1 ECN_EHD1_ECL_VERSION */
    129         uint8_t ehd2;           /* ECHONET Lite“d•¶ƒwƒbƒ_[2 ECN_EHD2_FORMAT */
    130         uint16_t        tid;    /* ƒgƒ‰ƒ“ƒUƒNƒVƒ‡ƒ“ID */
     124        uint8_t ehd1;           /* ECHONET Lite電文ヘッダー1 ECN_EHD1_ECL_VERSION */
     125        uint8_t ehd2;           /* ECHONET Lite電文ヘッダー2 ECN_EHD2_FORMAT */
     126        uint16_t        tid;    /* トランザクションID */
    131127} T_ECN_HDR;
    132128
    133129/*
    134  *  ECHONET LiteƒIƒuƒWƒFƒNƒgƒR[ƒh
     130 *  ECHONET Liteオブジェクトコード
    135131 */
    136132typedef struct
    137133{
    138         uint8_t eojx1;          /* ƒNƒ‰ƒXƒOƒ‹[ƒvƒR[ƒh */
    139         uint8_t eojx2;          /* ƒNƒ‰ƒXƒR[ƒh */
    140         uint8_t eojx3;          /* ƒCƒ“ƒXƒ^ƒ“ƒXƒR[ƒh */
     134        uint8_t eojx1;          /* クラスグループコード */
     135        uint8_t eojx2;          /* クラスコード */
     136        uint8_t eojx3;          /* インスタンスコード */
    141137} T_ECN_EOJ;
    142138
    143139/*
    144  *  ECHONET Liteƒf[ƒ^ƒwƒbƒ_[
     140 *  ECHONET Liteデータヘッダー
    145141 */
    146142typedef struct
    147143{
    148         T_ECN_EOJ       seoj;   /* ‘—MŒ³ECHONET LiteƒIƒuƒWƒFƒNƒgŽw’è */
    149         T_ECN_EOJ       deoj;   /* ‘ŠŽèæECHONET LiteƒIƒuƒWƒFƒNƒgŽw’è */
    150         uint8_t esv;            /* ECHONET LiteƒT[ƒrƒX (ECN_SRV_CODE) */
    151         uint8_t opc;            /* ˆ—ƒvƒƒpƒeƒB” */
     144        T_ECN_EOJ       seoj;   /* 送信元ECHONET Liteオブジェクト指定 */
     145        T_ECN_EOJ       deoj;   /* 相手先ECHONET Liteオブジェクト指定 */
     146        uint8_t esv;            /* ECHONET Liteサービス (ECN_SRV_CODE) */
     147        uint8_t opc;            /* 処理プロパティ数 */
    152148} T_ECN_EDATA_BODY;
    153149
    154150/*
    155  *  ECHONET LiteƒvƒƒpƒeƒB
     151 *  ECHONET Liteプロパティ
    156152 */
    157153typedef struct
    158154{
    159         uint8_t epc;            /* ECHONET LiteƒvƒƒpƒeƒBƒR[ƒh */
    160         uint8_t pdc;            /* EDT‚̃oƒCƒg” */
    161         /*void  *p_edt;*/       /* ƒvƒƒpƒeƒB’lƒf[ƒ^ */
     155        uint8_t epc;            /* ECHONET Liteプロパティコード */
     156        uint8_t pdc;            /* EDTのバイト数 */
     157        /*void  *p_edt;*/       /* プロパティ値データ */
    162158} T_ECN_PRP;
    163159
    164160/*
    165  *  ECHONET Liteƒf[ƒ^
     161 *  ECHONET Liteデータ
    166162 */
    167163typedef struct
     
    173169
    174170/*
    175  *  ECHONET Lite “d•¶
     171 *  ECHONET Lite 電文
    176172 */
    177173typedef struct echonet_object_data
     
    191187
    192188/*
    193  *  ‰ž“š“d•¶‰ðÍƒCƒeƒŒ[ƒ^[
     189 *  応答電文解析イテレーター
    194190 */
    195191typedef struct echonet_epc_enumerator
    196192{
    197193        T_EDATA *pk_esv;
    198         uint8_t count;                  /* ¡“Ç‚ÝŽæ‚è’†‚̃uƒƒbƒN‚É‚ ‚éƒvƒƒpƒeƒB‘” */
    199         uint8_t got_ct;                 /* ¡“Ç‚ÝŽæ‚è’†‚̃uƒƒbƒN‚ŁA“Ç‚ÝŽæ‚Á‚½” */
    200         uint8_t next_blk_ct;    /* Œã‘±ƒuƒƒbƒN” */
    201         uint8_t is_eof;                 /* I’[‚É’B‚µ‚½ŽžA”ñ0 */
     194        uint8_t count;                  /* 今読み取り中のブロックにあるプロパティ総数 */
     195        uint8_t got_ct;                 /* 今読み取り中のブロックで、読み取った数 */
     196        uint8_t next_blk_ct;    /* 後続ブロック数 */
     197        uint8_t is_eof;                 /* 終端に達した時、非0 */
    202198        int cur;
    203199} T_ENUM_EPC;
     
    206202
    207203/*
    208  * ECHONET Lite ƒvƒƒpƒeƒB‚̐ݒèŠÖ”
     204 * ECHONET Lite プロパティの設定関数
    209205 */
    210206typedef int (EPRP_SETTER)(const EPRPINIB *item, const void *src, int size, bool_t *anno);
    211207
    212208/*
    213  * ECHONET Lite ƒvƒƒpƒeƒB‚̎擾ŠÖ”
     209 * ECHONET Lite プロパティの取得関数
    214210 */
    215211typedef int (EPRP_GETTER)(const EPRPINIB *item, void *dst, int size);
    216212
    217213/*
    218  *  ECHONET Lite ƒvƒƒpƒeƒB‰Šú‰»ƒuƒƒbƒN
     214 *  ECHONET Lite プロパティ初期化ブロック
    219215 */
    220216struct echonet_property_initialization_block
    221217{
    222         uint8_t         eprpcd;                 /* ECHONET Lite ƒvƒƒpƒeƒBƒR[ƒh */
    223         ATR                     eprpatr;                /* ECHONET Lite ƒvƒƒpƒeƒB‘®« */
    224         uint8_t         eprpsz;                 /* ECHONET Lite ƒvƒƒpƒeƒB‚̃TƒCƒY */
    225         intptr_t        exinf;                  /* ECHONET Lite ƒvƒƒpƒeƒB‚ÌŠg’£î•ñ */
    226         EPRP_SETTER     *eprpset;               /* ECHONET Lite ƒvƒƒpƒeƒB‚̐ݒèŠÖ” */
    227         EPRP_GETTER     *eprpget;               /* ECHONET Lite ƒvƒƒpƒeƒB‚̎擾ŠÖ” */
     218        uint8_t         eprpcd;                 /* ECHONET Lite プロパティコード */
     219        ATR                     eprpatr;                /* ECHONET Lite プロパティ属性 */
     220        uint8_t         eprpsz;                 /* ECHONET Lite プロパティのサイズ */
     221        intptr_t        exinf;                  /* ECHONET Lite プロパティの拡張情報 */
     222        EPRP_SETTER     *eprpset;               /* ECHONET Lite プロパティの設定関数 */
     223        EPRP_GETTER     *eprpget;               /* ECHONET Lite プロパティの取得関数 */
    228224};
    229225
    230 #define TMIN_EOBJID             1               /* ECHONET Lite ƒIƒuƒWƒFƒNƒgID‚̍ŏ¬’l */
    231 
    232 /*
    233  *  ECHONET Lite ƒIƒuƒWƒFƒNƒg‰Šú‰»ƒuƒƒbƒN
     226#define TMIN_EOBJID             1               /* ECHONET Lite オブジェクトIDの最小値 */
     227
     228/*
     229 *  ECHONET Lite オブジェクト初期化ブロック
    234230 */
    235231typedef struct echonet_object_initialization_block
    236232{
    237         ATR                     eobjatr;                /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‘®« */
    238         ID                      enodid;                 /* ECHONET Lite ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ƒIƒuƒWƒFƒNƒgID */
    239         intptr_t        exinf;                  /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‚ÌŠg’£î•ñ */
    240         uint8_t         eojx1;                  /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‚̃Nƒ‰ƒXƒOƒ‹[ƒvƒR[ƒh */
    241         uint8_t         eojx2;                  /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‚̃Nƒ‰ƒXƒR[ƒh */
    242         uint8_t         eojx3;                  /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‚̃Cƒ“ƒXƒ^ƒ“ƒXƒR[ƒh */
    243         const EPRPINIB *eprp;           /* ECHONET Lite ƒvƒƒpƒeƒB‰Šú‰»ƒuƒƒbƒN */
    244         uint_t          eprpcnt;                /* ECHONET Lite ƒvƒƒpƒeƒB‰Šú‰»ƒuƒƒbƒN” */
     233        ATR                     eobjatr;                /* ECHONET Lite オブジェクト属性 */
     234        ID                      enodid;                 /* ECHONET Lite ノードプロファイルオブジェクトID */
     235        intptr_t        exinf;                  /* ECHONET Lite オブジェクトの拡張情報 */
     236        uint8_t         eojx1;                  /* ECHONET Lite オブジェクトのクラスグループコード */
     237        uint8_t         eojx2;                  /* ECHONET Lite オブジェクトのクラスコード */
     238        uint8_t         eojx3;                  /* ECHONET Lite オブジェクトのインスタンスコード */
     239        const EPRPINIB *eprp;           /* ECHONET Lite プロパティ初期化ブロック */
     240        uint_t          eprpcnt;                /* ECHONET Lite プロパティ初期化ブロック数 */
    245241} EOBJINIB;
    246242
    247243/*
    248  *  ECHONET Lite ƒm[ƒhŠÇ—ƒuƒƒbƒN
     244 *  ECHONET Lite ノード管理ブロック
    249245 */
    250246typedef struct echonet_object_control_block
    251247{
    252         const EOBJINIB *profile;        /* ECHONET Lite ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚ւ̃|ƒCƒ“ƒ^ */
    253         const EOBJINIB **eobjs;         /* ECHONET Lite ƒIƒuƒWƒFƒNƒgƒŠƒXƒg‚ւ̃|ƒCƒ“ƒ^ */
    254         uint_t          eobjcnt;                /* ECHONET Lite ƒIƒuƒWƒFƒNƒg” */
     248        const EOBJINIB *profile;        /* ECHONET Lite ノードプロファイルへのポインタ */
     249        const EOBJINIB **eobjs;         /* ECHONET Lite オブジェクトリストへのポインタ */
     250        uint_t          eobjcnt;                /* ECHONET Lite オブジェクト数 */
    255251} EOBJCB;
    256252
    257253/*
    258  *  ECHONET Lite ƒm[ƒh‚ÆIPƒAƒhƒŒƒX‚̑Ήžî•ñƒuƒƒbƒN‚Ì’è‹`
     254 *  ECHONET Lite ノードとIPアドレスの対応情報ブロックの定義
    259255 */
    260256typedef struct echonet_node_address_block
    261257{
    262         bool_t          inuse;                  /* Žg—pó‹µ */
    263         uint8_t         ipaddr[16];             /* IPƒAƒhƒŒƒX */
     258        bool_t          inuse;                  /* 使用状況 */
     259        uint8_t         ipaddr[16];             /* IPアドレス */
    264260} ENODADRB;
    265261
    266262/*
    267  *  ECHONET Lite ƒIƒuƒWƒFƒNƒgID‚̍őå’liechonet_cfg.cj
     263 *  ECHONET Lite オブジェクトIDの最大値(echonet_cfg.c)
    268264 */
    269265extern const ID tmax_eobjid;
    270266
    271267/*
    272  *  ECHONET Lite ƒIƒuƒWƒFƒNƒg‰Šú‰»ƒuƒƒbƒN‚̃GƒŠƒAiechonet_cfg.cj
     268 *  ECHONET Lite オブジェクト初期化ブロックのエリア(echonet_cfg.c)
    273269 */
    274270extern const EOBJINIB eobjinib_table[];
    275271
    276272/*
    277  *  ECHONET Liteƒm[ƒhŠÇ—ƒuƒƒbƒN‚̐”
     273 *  ECHONET Liteノード管理ブロックの数
    278274 */
    279275extern const int tnum_enodid;
    280276
    281277/*
    282  *  ECHONET Lite ƒIƒuƒWƒFƒNƒgŠÇ—ƒuƒƒbƒN‚̃GƒŠƒAiechonet_cfg.cj
     278 *  ECHONET Lite オブジェクト管理ブロックのエリア(echonet_cfg.c)
    283279 */
    284280extern EOBJCB eobjcb_table[];
    285281
    286282/*
    287  * ECHONET Liteƒm[ƒh‚ÆIPƒAƒhƒŒƒX‚̑Ήžî•ñ‚̐”
     283 * ECHONET LiteノードとIPアドレスの対応情報の数
    288284 */
    289285extern const int tnum_enodadr;
    290286
    291287/*
    292  *  ECHONET Lite ƒm[ƒh‚ÆIPƒAƒhƒŒƒX‚̑Ήžî•ñƒuƒƒbƒN‚̃GƒŠƒAiechonet_cfg.cj
     288 *  ECHONET Lite ノードとIPアドレスの対応情報ブロックのエリア(echonet_cfg.c)
    293289 */
    294290extern ENODADRB enodadrb_table[];
    295291
    296292/*
    297  * ECHONET Lite ƒJ[ƒlƒ‹ƒIƒuƒWƒFƒNƒgID
     293 * ECHONET Lite カーネルオブジェクトID
    298294 */
    299295extern const ID ecn_svc_taskid;
     
    306302
    307303/*
    308  *  ECHONET Lite ƒIƒuƒWƒFƒNƒgŠÇ—ƒuƒƒbƒN‚©‚çECHONET Lite ƒIƒuƒWƒFƒNƒgID‚ðŽæ‚èo‚·‚½‚߂̃}ƒNƒ
     304 *  ECHONET Lite オブジェクト管理ブロックからECHONET Lite オブジェクトIDを取り出すためのマクロ
    309305 */
    310306#define EOBJID(p_eobjcb)        ((ID)(((p_eobjcb) - eobjcb_table) + TMIN_EOBJID))
    311307
    312308/*
    313  *  ECHONET Lite ƒIƒuƒWƒFƒNƒg‹@”\‚̏‰Šú‰»
     309 *  ECHONET Lite オブジェクト機能の初期化
    314310 */
    315311extern void initialize_echonet_object(void);
     
    322318
    323319/*
    324  * ECHONET LiteƒT[ƒrƒXˆ—ŠJŽn
     320 * ECHONET Liteサービス処理開始
    325321 */
    326322ER ecn_sta_svc();
    327323
    328324/*
    329  * ECHONETƒIƒuƒWƒFƒNƒgŽQÆ
     325 * ECHONETオブジェクト参照
    330326 */
    331327ER ecn_ref_eobj(ID eobjid, T_REOBJ *pk_eobj);
    332328
    333329/*
    334  * ECHONETƒvƒƒpƒeƒBŽQÆ
     330 * ECHONETプロパティ参照
    335331 */
    336332ER ecn_ref_eprp(ID eobjid, uint8_t epc, T_RPRP *pk_eprp);
    337333
    338334/*
    339  * ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj“d•¶ì¬
     335 * プロパティ値書き込み要求(応答不要)電文作成
    340336 */
    341337ER ecn_esv_seti(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
    342338
    343339/*
    344  * ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj“d•¶ì¬
     340 * プロパティ値書き込み要求(応答要)電文作成
    345341 */
    346342ER ecn_esv_setc(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
    347343
    348344/*
    349  * ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹“d•¶ì¬
     345 * プロパティ値読み出し要求電文作成
    350346 */
    351347ER ecn_esv_get(T_EDATA **ppk_esv, ID eobjid, uint8_t epc);
    352348
    353349/*
    354  * ƒvƒƒpƒeƒB’l’Ê’m—v‹“d•¶ì¬
     350 * プロパティ値通知要求電文作成
    355351 */
    356352ER ecn_esv_inf_req(T_EDATA **ppk_esv, ID eobjid, uint8_t epc);
    357353
    358354/*
    359  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶ì¬
     355 * プロパティ値書き込み・読み出し要求電文作成
    360356 */
    361357ER ecn_esv_set_get(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
    362358
    363359/*
    364  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶Ü‚è•Ô‚µŽw’è
     360 * プロパティ値書き込み・読み出し要求電文折り返し指定
    365361 */
    366362ER ecn_trn_set_get(T_EDATA *pk_esv, int *p_trn_pos);
    367363
    368364/*
    369  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶I—¹Žw’è
     365 * プロパティ値書き込み・読み出し要求電文終了指定
    370366 */
    371367ER ecn_end_set_get(T_EDATA *pk_esv, int trn_pos);
    372368
    373369/*
    374  * ƒvƒƒpƒeƒB’l’Ê’mi‰ž“š—vj“d•¶ì¬
     370 * プロパティ値通知(応答要)電文作成
    375371 */
    376372ER ecn_esv_infc(T_EDATA **ppk_esv, ID eobjid, ID seobjid, uint8_t sepc);
    377373
    378374/*
    379  * —v‹“d•¶‚ւ̃vƒƒpƒeƒBŽw’è’ljÁ
     375 * 要求電文へのプロパティ指定追加
    380376 */
    381377ER ecn_add_epc(T_EDATA *pk_esv, uint8_t epc);
    382378
    383379/*
    384  * —v‹“d•¶‚ւ̃vƒƒpƒeƒBƒf[ƒ^’ljÁ
     380 * 要求電文へのプロパティデータ追加
    385381 */
    386382ER ecn_add_edt(T_EDATA *pk_esv, uint8_t epc, uint8_t pdc, const void *p_edt);
    387383
    388384/*
    389  * —v‹“d•¶‚Ì‘—M
     385 * 要求電文の送信
    390386 */
    391387ER ecn_snd_esv(T_EDATA *pk_esv);
    392388
    393389/*
    394  * ‰ž“š“d•¶‚ÌŽóMƒ|[ƒŠƒ“ƒO
     390 * 応答電文の受信ポーリング
    395391 */
    396392ER ecn_prcv_esv(T_EDATA **ppk_esv);
    397393
    398394/*
    399  * ‰ž“š“d•¶‚Ì”jŠü
     395 * 応答電文の破棄
    400396 */
    401397ER ecn_rel_esv(T_EDATA *pk_esv);
    402398
    403399/*
    404  * ‰ž“š“d•¶‚Ì‘—MŒ³ƒm[ƒh‚ðŽæ“¾‚·‚é
     400 * 応答電文の送信元ノードを取得する
    405401 */
    406402ID ecn_get_enod(T_EDATA *pk_esv);
    407403
    408404/*
    409  * ‰ž“š“d•¶‚Ì‘—MŒ³‹@ŠíƒIƒuƒWƒFƒNƒg‚ðŽæ“¾‚·‚é
     405 * 応答電文の送信元機器オブジェクトを取得する
    410406 */
    411407ID ecn_get_eobj(T_EDATA *pk_esv);
    412408
    413409/*
    414  * ‰ž“š“d•¶‰ðÍƒCƒeƒŒ[ƒ^[‰Šú‰»
     410 * 応答電文解析イテレーター初期化
    415411 */
    416412ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv);
    417413
    418414/*
    419  * ‰ž“š“d•¶‰ðÍƒCƒeƒŒ[ƒ^[ƒCƒ“ƒNƒŠƒƒ“ƒg
     415 * 応答電文解析イテレーターインクリメント
    420416 */
    421417ER ecn_itr_nxt(T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt);
    422418
    423419/*
    424  * ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚Ý‘—M
     420 * 応答電文待ちの割り込み送信
    425421 */
    426422ER ecn_brk_wai(const void *p_dat, int datsz);
    427423
    428424/*
    429  * Š„‚荞‚݃f[ƒ^‚̎擾
     425 * 割り込みデータの取得
    430426 */
    431427ER ecn_get_brk_dat(T_EDATA *pk_esv, void *p_buf, int bufsz, int *p_datsz);
    432428
    433429/*
    434  * ƒf[ƒ^Ý’èŠÖ”
     430 * データ設定関数
    435431 */
    436432int ecn_data_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno);
    437433
    438434/*
    439  * ƒf[ƒ^Žæ“¾ŠÖ”
     435 * データ取得関数
    440436 */
    441437int ecn_data_prop_get(const EPRPINIB *item, void *dst, int size);
  • uKadecot/trunk/ecnl_ssp/echonet.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55$  Copyright (C) 2014 Cores Co., Ltd. Japan
    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‰ü
    9 $  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12 $      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14 $      —p‚Å‚«‚éŒ`‚ōĔ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
    20 $      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21 $      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29 $      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30 $      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31 $      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32 $      –Ɛӂ·‚邱‚ƁD
    33 $
    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
    37 $  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38 $  ‚̐ӔC‚𕉂í‚È‚¢D
     7$  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8$  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9$  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10$  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11$      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12$      スコード中に含まれていること.
     13$  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14$      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15$      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16$      の無保証規定を掲載すること.
     17$  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18$      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19$      と.
     20$    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21$        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22$    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23$        報告すること.
     24$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25$      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26$      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27$      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28$      免責すること.
     29$
     30$  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31$  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32$  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33$  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34$  の責任を負わない.
    3935$
    4036$  @(#) $Id$
     
    4339
    4440$ =====================================================================
    45 $ echonet_cfg.h‚̐¶¬
     41$ echonet_cfg.hの生成
    4642$ =====================================================================
    4743
     
    5551$NL$
    5652
    57 $ ƒm[ƒhƒŠƒXƒg‚̍쐬
     53$ ノードリストの作成
    5854$ENOD.LIST = {}$
    5955$LOCAL_NODE = {}$
     
    6157
    6258$FOREACH eobjid EOBJ.ORDER_LIST$
    63 $       // ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚̏ꍇ
     59$       // ノードプロファイルオブジェクトの場合
    6460        $IF (EOBJ.EOBJATR[eobjid] & EOBJ_LOCAL_NODE) != 0$
    6561                $LOCAL_NODE = APPEND(LOCAL_NODE, eobjid)$
    66 $       // ‹@ŠíƒIƒuƒWƒFƒNƒg‚̏ꍇ
     62$       // 機器オブジェクトの場合
    6763        $ELIF (EOBJ.EOBJATR[eobjid] & (EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$
    6864                $REMOTE_NODE = APPEND(REMOTE_NODE, eobjid)$
     
    7066$END$
    7167
    72 $       // ƒ[ƒJƒ‹‚̃m[ƒhƒvƒƒtƒ@ƒCƒ‹‚Í‚P‚‚¾‚¯
     68$       // ローカルのノードプロファイルは1つだけ
    7369$IF LENGTH(LOCAL_NODE) != 1$
    7470        $ERROR$Local node must be only one.$END$
     
    9086        $eprp_list = {}$
    9187        $prp_map_cnt = 3$
    92 $       // ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚̏ꍇ
     88$       // ノードプロファイルの場合
    9389        $IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$
    9490                $prp_map_cnt = prp_map_cnt + 5$
     
    104100                $END$
    105101
    106 $               // ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚̏ꍇ
     102$               // ノードプロファイルの場合
    107103                $IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$
    108104                        $IF (EPRP.EPRPCD[eprpno] >= 0xD3) && (EPRP.EPRPCD[eprpno] <= 0xD7)$
     
    135131
    136132$ =====================================================================
    137 $ echonet_cfg.c‚̐¶¬
     133$ echonet_cfg.cの生成
    138134$ =====================================================================
    139135
     
    145141
    146142$
    147 ƒCƒ“ƒNƒ‹[ƒhƒfƒBƒŒƒNƒeƒBƒui#includej
     143インクルードディレクティブ(#include)
    148144$
    149145/*$NL$
     
    155151
    156152$
    157 ƒIƒuƒWƒFƒNƒg‚ÌID”ԍ†‚ð•ÛŽ‚·‚é•Ï”
     153オブジェクトのID番号を保持する変数
    158154$
    159155$IF USE_EXTERNAL_ID$
     
    168164
    169165$
    170 $  ECHONET LiteƒvƒƒpƒeƒB
     166$  ECHONET Liteプロパティ
    171167$
    172168/*$NL$
     
    177173$INCLUDE "echonet_chk.tf"$
    178174
    179 $ ECHONET LiteƒvƒƒpƒeƒB‰Šú‰»ƒuƒƒbƒN‚̐¶¬
     175$ ECHONET Liteプロパティ初期化ブロックの生成
    180176$IF LENGTH(EOBJ.ID_LIST) && LENGTH(EPRP.ID_LIST)$
    181177        $FOREACH enodid ENOD.LIST$
     
    200196
    201197                /*$NL$
    202                 $SPC$* ƒCƒ“ƒXƒ^ƒ“ƒX”$NL$
     198                $SPC$* インスタンス数$NL$
    203199                $SPC$*/$NL$
    204200                $inst_list_len = LENGTH(INST_LIST)$
     
    209205
    210206                /*$NL$
    211                 $SPC$* ƒNƒ‰ƒX”$NL$
    212                 $SPC$*/$NL$
    213 $               // ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚àŠÜ‚ß‚éi + 1j
     207                $SPC$* クラス数$NL$
     208                $SPC$*/$NL$
     209$               // ノードプロファイルも含める( + 1)
    214210                $class_list_len = LENGTH(CLASS_LIST) + 1$
    215211                const uint8_t _echonet_$EOBJ.EOBJID[enodid]$_class_count[] = {$NL$
     
    219215
    220216                /*$NL$
    221                 $SPC$* ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg$NL$
     217                $SPC$* インスタンスリスト$NL$
    222218                $SPC$*/$NL$
    223219                $pos = 0$
     
    238234
    239235                /*$NL$
    240                 $SPC$* ƒNƒ‰ƒXƒŠƒXƒg$NL$
     236                $SPC$* クラスリスト$NL$
    241237                $SPC$*/$NL$
    242238                $pos = 0$
     
    268264                        $get_map[i] = 0x00$
    269265                $END$
    270 $               // 0x9DA0x9EA0x9F‚ÍON‚É‚µ‚Ä‚¨‚­
     266$               // 0x9D、0x9E、0x9FはONにしておく
    271267                $FOREACH i { 13 , 14 , 15 }$
    272268                        $anno_map[i] = anno_map[i] | 0x02$
    273269                        $get_map[i] = get_map[i] | 0x02$
    274270                $END$
    275 $               // ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚̏ꍇ
     271$               // ノードプロファイルの場合
    276272                $IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$
    277273                        $anno_map[5] = anno_map[5] | 0x20$
     
    285281                $FOREACH eprpno EPRP.ID_LIST$
    286282                        $IF EQ(EPRP.EOBJID[eprpno], eobjid)$
    287 $                               // (0x80 <= eprpcd && eprpcd <= 0xFF)‚Å‚È‚¢ê‡iE_PARj
     283$                               // (0x80 <= eprpcd && eprpcd <= 0xFF)でない場合(E_PAR)
    288284                                $IF !(0x80 <= EPRP.EPRPCD[eprpno] && EPRP.EPRPCD[eprpno] <= 0xFF)$
    289285                                        $ERROR EPRP.TEXT_LINE[eprpno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eprpcd", EPRP.EPRPCD[eprpno], eprpno, "ECN_DEF_EPRP")$$END$
    290286                                $END$
    291287
    292 $                               // eprpatr‚ªimEPC_RULE_SET] | [EPC_RULE_GET] | [EPC_RULE_ANNO] | [EPC_ANNOUNCEn| [EPC_VARIABLE]j‚Å‚È‚¢ê‡iE_RSATRj
     288$                               // eprpatrが([EPC_RULE_SET] | [EPC_RULE_GET] | [EPC_RULE_ANNO] | [EPC_ANNOUNCE]| [EPC_VARIABLE])でない場合(E_RSATR)
    293289                                $IF (EPRP.EPRPATR[eprpno] & ~(EPC_RULE_SET|EPC_RULE_GET|EPC_RULE_ANNO|EPC_ANNOUNCE|EPC_VARIABLE)) != 0$
    294290                                        $ERROR EPRP.TEXT_LINE[eprpno]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eprpatr", EPRP.EPRPATR[eprpno], eprpno, "ECN_DEF_EPRP")$$END$
    295291                                $END$
    296292
    297 $                               // (0 <= eprpsz && eprpsz <= 255)‚Å‚È‚¢ê‡iE_PARj
     293$                               // (0 <= eprpsz && eprpsz <= 255)でない場合(E_PAR)
    298294                                $IF !(0 <= EPRP.EPRPSZ[eprpno] && EPRP.EPRPSZ[eprpno] <= 255)$
    299295                                        $ERROR EPRP.TEXT_LINE[eprpno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eprpsz", EPRP.EPRPSZ[eprpno], eprpno, "ECN_DEF_EPRP")$$END$
    300296                                $END$
    301297
    302 $                               // ƒvƒƒpƒeƒBƒ}ƒbƒv‚ɐݒè
     298$                               // プロパティマップに設定
    303299                                $pos = EPRP.EPRPCD[eprpno] & 0xF$
    304300                                $bit = (EPRP.EPRPCD[eprpno] >> 4) - 8$
     
    320316                $END$
    321317
    322 $               // •K{ƒAƒiƒEƒ“ƒXƒvƒƒpƒeƒB‚ª‚ ‚é‚©ƒ`ƒFƒbƒN
     318$               // 必須アナウンスプロパティがあるかチェック
    323319                $must_anno_map = GetPropertyInfo(EOBJ.EOJX1[eobjid], EOBJ.EOJX2[eobjid], EPC_ANNOUNCE)$
    324320                $i = 0$
     
    331327                $END$
    332328
    333 $               // •K{SETƒvƒƒpƒeƒB‚ª‚ ‚é‚©ƒ`ƒFƒbƒN
     329$               // 必須SETプロパティがあるかチェック
    334330                $must_set_map = GetPropertyInfo(EOBJ.EOJX1[eobjid], EOBJ.EOJX2[eobjid], EPC_RULE_SET)$
    335331                $i = 0$
     
    342338                $END$
    343339
    344 $               // •K{GETƒvƒƒpƒeƒB‚ª‚ ‚é‚©ƒ`ƒFƒbƒN
     340$               // 必須GETプロパティがあるかチェック
    345341                $must_get_map = GetPropertyInfo(EOBJ.EOJX1[eobjid], EOBJ.EOJX2[eobjid], EPC_RULE_GET)$
    346342                $i = 0$
     
    354350
    355351                /*$NL$
    356                 $SPC$* ƒAƒiƒEƒ“ƒXƒvƒƒpƒeƒBƒ}ƒbƒv$NL$
     352                $SPC$* アナウンスプロパティマップ$NL$
    357353                $SPC$*/$NL$
    358354                $anno_list = LSORT(anno_list, "compare")$
     
    375371
    376372                /*$NL$
    377                 $SPC$* SETƒvƒƒpƒeƒBƒ}ƒbƒv$NL$
     373                $SPC$* SETプロパティマップ$NL$
    378374                $SPC$*/$NL$
    379375                $set_list = LSORT(set_list, "compare")$
     
    396392
    397393                /*$NL$
    398                 $SPC$* GETƒvƒƒpƒeƒBƒ}ƒbƒv$NL$
     394                $SPC$* GETプロパティマップ$NL$
    399395                $SPC$*/$NL$
    400396                $get_list = LSORT(get_list, "compare")$
     
    417413
    418414                /*$NL$
    419                 $SPC$* ƒvƒƒpƒeƒB’è‹`$NL$
     415                $SPC$* プロパティ定義$NL$
    420416                $SPC$*/$NL$
    421417                const EPRPINIB _echonet_$EOBJ.EOBJID[eobjid]$_eprpinib_table[TNUM_$EOBJ.EOBJID[eobjid]$_EPRPNO] = {$NL$
    422418                $FOREACH eprpno eprp_list$
    423 $                       // ECHONET LiteƒvƒƒpƒeƒB‰Šú‰»ƒuƒƒbƒN
     419$                       // ECHONET Liteプロパティ初期化ブロック
    424420                        $TAB${ ($EPRP.EPRPCD[eprpno]$), ($EPRP.EPRPATR[eprpno]$), ($EPRP.EPRPSZ[eprpno]$), ($EPRP.EXINF[eprpno]$), ($EPRP.EPRPSET[eprpno]$), ($EPRP.EPRPGET[eprpno]$) },$NL$
    425421                $END$
    426 $               // ó‘ÔƒAƒiƒEƒ“ƒXƒvƒƒpƒeƒBƒ}ƒbƒv
     422$               // 状態アナウンスプロパティマップ
    427423                $TAB${ (0x9D), (EPC_RULE_GET), $FORMAT("0x%1$x" , +anno_len)$, (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_anno_prpmap, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$
    428 $               // SetƒvƒƒpƒeƒBƒ}ƒbƒv
     424$               // Setプロパティマップ
    429425                $TAB${ (0x9E), (EPC_RULE_GET), $FORMAT("0x%1$x" , +set_len)$, (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_set_prpmap, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$
    430 $               // GetƒvƒƒpƒeƒBƒ}ƒbƒv
     426$               // Getプロパティマップ
    431427                $TAB${ (0x9F), (EPC_RULE_GET), $FORMAT("0x%1$x" , +get_len)$, (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_get_prpmap, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) }
    432 $               // ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚̏ꍇ
     428$               // ノードプロファイルの場合
    433429                $IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$
    434430                        ,$NL$
    435 $                       // ƒCƒ“ƒXƒ^ƒ“ƒX”
     431$                       // インスタンス数
    436432                        $TAB${ (0xD3), (EPC_RULE_GET), (3), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_inst_count, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$
    437 $                       // ƒNƒ‰ƒX”
     433$                       // クラス数
    438434                        $TAB${ (0xD4), (EPC_RULE_GET), (2), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_class_count, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$
    439 $                       // ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg’Ê’m
     435$                       // インスタンスリスト通知
    440436                        $TAB${ (0xD5), (EPC_RULE_ANNO), sizeof(_echonet_$EOBJ.EOBJID[eobjid]$_inst_list), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_inst_list, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$
    441 $                       // ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒgS
     437$                       // インスタンスリストS
    442438                        $TAB${ (0xD6), (EPC_RULE_GET), sizeof(_echonet_$EOBJ.EOBJID[eobjid]$_inst_list), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_inst_list, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$
    443 $                       // ƒNƒ‰ƒXƒŠƒXƒgS
     439$                       // クラスリストS
    444440                        $TAB${ (0xD7), (EPC_RULE_GET), sizeof(_echonet_$EOBJ.EOBJID[eobjid]$_class_list), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_class_list, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) }$NL$
    445441                $ELSE$
     
    455451
    456452$
    457 $  ECHONET LiteƒIƒuƒWƒFƒNƒg
     453$  ECHONET Liteオブジェクト
    458454$
    459455/*$NL$
     
    462458$NL$
    463459
    464 $ ECHONET LiteƒIƒuƒWƒFƒNƒgID”ԍ†‚̍őå’l
     460$ ECHONET LiteオブジェクトID番号の最大値
    465461const ID _echonet_tmax_eobjid = (TMIN_EOBJID + TNUM_EOBJID - 1);$NL$
    466462$NL$
    467463
    468 $ ECHONET LiteƒIƒuƒWƒFƒNƒg‰Šú‰»ƒuƒƒbƒN‚̐¶¬
     464$ ECHONET Liteオブジェクト初期化ブロックの生成
    469465$IF LENGTH(EOBJ.ID_LIST)$
    470466        const EOBJINIB _echonet_eobjinib_table[TNUM_EOBJID] = {$NL$
    471467        $JOINEACH eobjid EOBJ.ID_LIST ",\n"$
    472 $               // eobjatr‚ªimEOBJ_LOCAL_NODE] | [EOBJ_SYNC_REMOTE_NODE] | [EOBJ_ASYNC_REMOTE_NODE] | [EOBJ_DEVICEnj‚Å‚È‚¢ê‡iE_RSATRj
     468$               // eobjatrが([EOBJ_LOCAL_NODE] | [EOBJ_SYNC_REMOTE_NODE] | [EOBJ_ASYNC_REMOTE_NODE] | [EOBJ_DEVICE])でない場合(E_RSATR)
    473469                $IF (EOBJ.EOBJATR[eobjid] & ~(EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE|EOBJ_DEVICE)) != 0$
    474470                        $ERROR EOBJ.TEXT_LINE[eobjid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eobjatr", EOBJ.EOBJATR[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
    475471                $END$
    476472
    477 $               // ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚̏ꍇ
     473$               // ノードプロファイルオブジェクトの場合
    478474                $IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$
    479 $                       // (enodid == EOBJ_NULL)‚Å‚È‚¢ê‡iE_PARj
     475$                       // (enodid == EOBJ_NULL)でない場合(E_PAR)
    480476                        $IF !EQ(EOBJ.ENODID[eobjid], EOBJ_NULL)$
    481477                                $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "enodid", EOBJ.ENODID[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
    482478                        $END$
    483479
    484 $                       // (eojx1 == EOJ_X1_PROFILE)‚Å‚È‚¢ê‡iE_PARj
     480$                       // (eojx1 == EOJ_X1_PROFILE)でない場合(E_PAR)
    485481                        $IF EOBJ.EOJX1[eobjid] != EOJ_X1_PROFILE$
    486482                                $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx1", EOBJ.EOJX1[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
    487483                        $END$
    488484
    489 $                       // (eojx2 == EOJ_X2_NODE_PROFILE)‚Å‚È‚¢ê‡iE_PARj
     485$                       // (eojx2 == EOJ_X2_NODE_PROFILE)でない場合(E_PAR)
    490486                        $IF EOBJ.EOJX2[eobjid] != EOJ_X2_NODE_PROFILE$
    491487                                $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx2", EOBJ.EOJX2[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
    492488                        $END$
    493489
    494 $                       // (1 <= eojx3 && eojx3 <= 2)‚Å‚È‚¢ê‡iE_PARj
     490$                       // (1 <= eojx3 && eojx3 <= 2)でない場合(E_PAR)
    495491                        $IF !(1 <= EOBJ.EOJX3[eobjid] && EOBJ.EOJX3[eobjid] <= 2)$
    496492                                $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx3", EOBJ.EOJX3[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
    497493                        $END$
    498 $               // ‹@ŠíƒIƒuƒWƒFƒNƒg‚̏ꍇ
    499                 $ELSE$
    500 $                       // (enodid != EOBJ_NULL)‚Å‚È‚¢ê‡iE_PARj
     494$               // 機器オブジェクトの場合
     495                $ELSE$
     496$                       // (enodid != EOBJ_NULL)でない場合(E_PAR)
    501497                        $IF EQ(EOBJ.ENODID[eobjid], EOBJ_NULL)$
    502498                                $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "enodid", EOBJ.ENODID[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
    503499                        $END$
    504500
    505 $                       // (0 <= eojx1 && eojx1 <= 255)‚Å‚È‚¢ê‡iE_PARj
     501$                       // (0 <= eojx1 && eojx1 <= 255)でない場合(E_PAR)
    506502                        $IF !(0 <= EOBJ.EOJX1[eobjid] && EOBJ.EOJX1[eobjid] <= 255)$
    507503                                $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx1", EOBJ.EOJX1[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
    508504                        $END$
    509505
    510 $                       // (0 <= eojx2 && eojx2 <= 255)‚Å‚È‚¢ê‡iE_PARj
     506$                       // (0 <= eojx2 && eojx2 <= 255)でない場合(E_PAR)
    511507                        $IF !(0 <= EOBJ.EOJX2[eobjid] && EOBJ.EOJX2[eobjid] <= 255)$
    512508                                $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx2", EOBJ.EOJX2[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
    513509                        $END$
    514510
    515 $                       // (0 <= eojx3 && eojx3 <= 255)‚Å‚È‚¢ê‡iE_PARj
     511$                       // (0 <= eojx3 && eojx3 <= 255)でない場合(E_PAR)
    516512                        $IF !(0 <= EOBJ.EOJX3[eobjid] && EOBJ.EOJX3[eobjid] <= 255)$
    517513                                $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx3", EOBJ.EOJX3[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$
     
    519515                $END$
    520516
    521 $               // ECHONET LiteƒIƒuƒWƒFƒNƒg‰Šú‰»ƒuƒƒbƒN
     517$               // ECHONET Liteオブジェクト初期化ブロック
    522518                $TAB${ ($EOBJ.EOBJATR[eobjid]$), ($EOBJ.ENODID[eobjid]$), ($EOBJ.EXINF[eobjid]$), ($EOBJ.EOJX1[eobjid]$), ($EOBJ.EOJX2[eobjid]$), ($EOBJ.EOJX3[eobjid]$), _echonet_$EOBJ.EOBJID[eobjid]$_eprpinib_table, TNUM_$EOBJ.EOBJID[eobjid]$_EPRPNO }
    523519        $END$$NL$
     
    529525$NL$
    530526
    531 $ ECHONET Liteƒm[ƒhŠÇ—ƒuƒƒbƒN‚̐”
     527$ ECHONET Liteノード管理ブロックの数
    532528const int _echonet_tnum_enodid = TNUM_ENODID;$NL$
    533529$NL$
    534530
    535531$
    536 $  ECHONET Liteƒm[ƒhŠÇ—ƒuƒƒbƒN
     532$  ECHONET Liteノード管理ブロック
    537533$
    538534/*$NL$
     
    540536$SPC$*/$NL$
    541537$NL$
    542 $ ECHONET Liteƒm[ƒh‚ÆIPƒAƒhƒŒƒX‚̑Ήžî•ñƒuƒƒbƒN‚̐¶¬
     538$ ECHONET LiteノードとIPアドレスの対応情報ブロックの生成
    543539$FOREACH enodid ENOD.LIST$
    544540        $eobj_list = {}$
     
    549545        $END$
    550546        /*$NL$
    551         $SPC$* ƒm[ƒh‚ɏŠ‘®‚·‚é‹@ŠíƒIƒuƒWƒFƒNƒg‚̈ꗗ$NL$
     547        $SPC$* ノードに所属する機器オブジェクトの一覧$NL$
    552548        $SPC$*/$NL$
    553549        const EOBJINIB *_echonet_$EOBJ.EOBJID[enodid]$_eobjinib_table[TNUM_$EOBJ.EOBJID[enodid]$_EOBJNO] = {$NL$
     
    560556$IF LENGTH(ENOD.LIST)$
    561557        /*$NL$
    562         $SPC$* ECHONET Liteƒm[ƒhŠÇ—ƒuƒƒbƒN$NL$
     558        $SPC$* ECHONET Liteノード管理ブロック$NL$
    563559        $SPC$*/$NL$
    564560        EOBJCB _echonet_eobjcb_table[TNUM_ENODID] = {$NL$
     
    572568$NL$
    573569
    574 $ ECHONET Liteƒm[ƒh‚ÆIPƒAƒhƒŒƒX‚̑Ήžî•ñ‚̐”
     570$ ECHONET LiteノードとIPアドレスの対応情報の数
    575571const int _echonet_tnum_enodadr = TNUM_ENODADR;$NL$
    576572$NL$
    577573
    578574$
    579 $  ECHONET Liteƒm[ƒh‚ÆIPƒAƒhƒŒƒX‚̑Ήžî•ñ
     575$  ECHONET LiteノードとIPアドレスの対応情報
    580576$
    581577/*$NL$
     
    583579$SPC$*/$NL$
    584580$NL$
    585 $ ECHONET Liteƒm[ƒh‚ÆIPƒAƒhƒŒƒX‚̑Ήžî•ñƒuƒƒbƒN‚̐¶¬
     581$ ECHONET LiteノードとIPアドレスの対応情報ブロックの生成
    586582$IF LENGTH(EOBJ.ID_LIST)$
    587583        ENODADRB _echonet_enodadrb_table[TNUM_ENODADR] = {$NL$
     
    601597$NL$
    602598
    603 $ ECHONET Liteƒm[ƒh‚²‚Ƃ̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚ª—v‹‚µ‚½“d•¶‚̃V[ƒPƒ“ƒX”ԍ†
     599$ ECHONET Liteノードごとのアプリケーションが要求した電文のシーケンス番号
    604600uint16_t _echonet_apitid_table[TNUM_ENODADR];$NL$
    605601$NL$
     
    610606
    611607$
    612 $ ECHONET Lite ƒJ[ƒlƒ‹ƒIƒuƒWƒFƒNƒgID
     608$ ECHONET Lite カーネルオブジェクトID
    613609$
    614610const ID _echonet_ecn_svc_taskid = ECHONET_SVC_TASK;$NL$
  • uKadecot/trunk/ecnl_ssp/echonet_agent.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2015 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *              ECHONET Lite “®“I¶¬ƒm[ƒh
     39 *              ECHONET Lite 動的生成ノード
    4440 */
    4541
     
    183179
    184180/*
    185  *  ƒLƒ
    186 [‚̏‰Šú‰»
     181 *  キューの初期化
    187182 *
    188  *  p_queue‚ɂ̓Lƒ
    189 [ƒwƒbƒ_‚ðŽw’è‚·‚éD
     183 *  p_queueにはキューヘッダを指定する.
    190184 */
    191185Inline void
     
    200194
    201195/*
    202  *  ƒLƒ
    203 [‚Ì‘OƒGƒ“ƒgƒŠ‚Ö‚Ì‘}“ü
     196 *  キューの前エントリへの挿入
    204197 *
    205  *  p_queue‚Ì‘O‚Ép_entry‚ð‘}“ü‚·‚éDp_queue‚ɃLƒ
    206 [ƒwƒbƒ_‚ðŽw’肵‚½ê
    207  *  ‡‚ɂ́CƒLƒ
    208 [‚Ì––”ö‚Ép_entry‚ð‘}“ü‚·‚邱‚Æ‚É‚È‚éD
     198 *  p_queueの前にp_entryを挿入する.p_queueにキューヘッダを指定した場
     199 *  合には,キューの末尾にp_entryを挿入することになる.
    209200 */
    210201Inline void
     
    222213
    223214/*
    224  *  ƒGƒ“ƒgƒŠ‚̍폜
     215 *  エントリの削除
    225216 *
    226  *  p_entry‚ðƒLƒ
    227 [‚©‚çíœ‚·‚éD
     217 *  p_entryをキューから削除する.
    228218 */
    229219Inline void
     
    338328        int i = eobjid;
    339329
    340         /* ƒIƒuƒWƒFƒNƒgID‚©‚çŽÀ‘Ì‚ðŽæ“¾ */
     330        /* オブジェクトIDから実体を取得 */
    341331        i -= (tmax_eobjid + 1);
    342332        if ((i < 0)
     
    349339                return false;
    350340
    351         /* ƒIƒuƒWƒFƒNƒg‚ÌEOJ‚ðƒRƒs[ */
     341        /* オブジェクトのEOJをコピー */
    352342        memcpy(eoj, &buf->obj.inib.eojx1, sizeof(*eoj));
    353343
    354         /* Š‘®‚·‚éƒm[ƒh‚̃IƒuƒWƒFƒNƒgID‚ðŽæ“¾ */
     344        /* 所属するノードのオブジェクトIDを取得 */
    355345        if(buf->obj.inib.enodid == 0)
    356346                i = buf->obj.eobjId;
     
    364354        }
    365355
    366         /* ƒm[ƒhID‚ðŽæ“¾ */
     356        /* ノードIDを取得 */
    367357        buf = &agent->blockes[i];
    368358        *enodid = buf->node.enodId;
     
    405395        T_ECN_EOJ *eoj, *end;
    406396
    407         // ƒvƒƒpƒeƒB’Ê’m‚©Žæ“¾‰ž“š‚ŁA
     397        // プロパティ通知か取得応答で、
    408398        switch (esv->hdr.edata.esv) {
    409399        case ESV_GET_RES:
     
    415405        }
    416406
    417         // ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ˆ¶‚̏ꍇ
     407        // ノードプロファイル宛の場合
    418408        eoj = &esv->hdr.edata.seoj;
    419409        if ((eoj->eojx1 != EOJ_X1_PROFILE) || (eoj->eojx2 != EOJ_X2_NODE_PROFILE)
     
    428418        while (ecn_itr_nxt(&enm, &epc, &pdc, &edt) == E_OK) {
    429419                switch (epc) {
    430                 // ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg’Ê’m‚̏ꍇ
     420                // インスタンスリスト通知の場合
    431421                case 0xD5:
    432                 // Ž©ƒm[ƒhƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg‚r’Ê’m‚̏ꍇ
     422                // 自ノードインスタンスリストS通知の場合
    433423                case 0xD6:
    434                         // ƒTƒCƒY‚ª‡‚í‚È‚¢ê‡
     424                        // サイズが合わない場合
    435425                        if (pdc != (1 + edt[0] * sizeof(T_ECN_EOJ)))
    436426                                return NULL;
     
    773763        ecn_obj_t *sobj;
    774764
    775         /* Ã“I‚É’è‹`‚³‚ꂽ‘—MŒ³‚̏ꍇ */
     765        /* 静的に定義された送信元の場合 */
    776766        if ((*ppk_snod != NULL) && (*ppk_snod)->eobjs != NULL) {
    777                 /* ˆ—‚µ‚È‚¢ */
     767                /* 処理しない */
    778768                return;
    779769        }
     
    781771        snod = ecn_agent_find_node2(*ppk_snod);
    782772
    783         /* ‘—MŒ³‚ð’m‚ç‚È‚©‚Á‚½‚ç */
     773        /* 送信元を知らなかったら */
    784774        if (snod == NULL) {
    785                 /* ‘—MŒ³‚̃m[ƒhî•ñ‚ðV‹K‚ɍ쐬 */
     775                /* 送信元のノード情報を新規に作成 */
    786776                snod = ecn_agent_create_node(agent, esv);
    787777                if (snod == NULL)
     
    791781        sobj = ecn_agent_find_obj2(snod, *ppk_sobj);
    792782
    793         /* ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚̏ꍇ */
     783        /* ノードプロファイルの場合 */
    794784        if ((esv->hdr.edata.seoj.eojx1 == EOJ_X1_PROFILE)
    795785                && (esv->hdr.edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
    796786                sobj = &snod->base;
    797787        }
    798         /* ‹@ŠíƒIƒuƒWƒFƒNƒg‚̏ꍇ */
     788        /* 機器オブジェクトの場合 */
    799789        else {
    800790                sobj = ecn_agent_find_eobj(&snod->eobj, esv->hdr.edata.seoj);
     
    841831        ecn_obj_t *obj = node->current;
    842832
    843         // ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹
     833        // プロパティ値読み出し要求
    844834        ecn_esv_get(&esv, obj->eobjId, 0x9E);
    845835        ecn_snd_esv(esv);
     
    854844        ecn_obj_t *obj = node->current;
    855845
    856         // ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹
     846        // プロパティ値読み出し要求
    857847        ecn_esv_get(&esv, obj->eobjId, 0x9F);
    858848        ecn_snd_esv(esv);
     
    867857        ecn_obj_t *obj = node->current;
    868858
    869         // ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹
     859        // プロパティ値読み出し要求
    870860        ecn_esv_get(&esv, obj->eobjId, 0x9D);
    871861        ecn_snd_esv(esv);
     
    881871        ecn_device_t *device;
    882872
    883         /* obj‚ªŽw’肳‚ê‚Ä‚¢‚È‚¢ê‡ */
     873        /* objが指定されていない場合 */
    884874        if(obj == NULL){
    885                 /* ‚±‚̃m[ƒh‚ð•Ô‚· */
     875                /* このノードを返す */
    886876                node->current = &node->base;
    887877                return;
    888878        }
    889         /* ƒm[ƒh‚̏ꍇ */
     879        /* ノードの場合 */
    890880        else if((obj->inib.eojx1 == EOJ_X1_PROFILE) && (obj->inib.eojx2 == EOJ_X2_NODE_PROFILE)){
    891881                node = (ecn_node_t *)obj;
    892882
    893                 /* ”z‰º‚Ì‹@Ší‚ð•Ô‚· */
     883                /* 配下の機器を返す */
    894884                queue = node->devices.p_next;
    895885                device = (ecn_device_t *)cast_obj(queue);
    896886        }
    897         /* ‹@Ší‚̏ꍇ */
     887        /* 機器の場合 */
    898888        else{
    899                 /* ŽŸ‚Ì‹@Ší‚ð•Ô‚· */
     889                /* 次の機器を返す */
    900890                node = ((ecn_device_t *)obj)->node;
    901891                queue = cast_queue(obj)->p_next;
     
    903893        }
    904894
    905         /* ‚»‚Ì‹@Ší‚ª––”ö‚¾‚Á‚½ê‡ */
     895        /* その機器が末尾だった場合 */
    906896        if(&node->devices == queue){
    907897                node->current = NULL;
     
    10401030        bool_t has = false;
    10411031
    1042         /* ƒm[ƒh‚̏ꍇ‚̓Cƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg’Ê’m‚ÆŽ©ƒm[ƒhƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg‚r’Ê’m‚ð•K{‚Ŏ󂯎æ‚é */
     1032        /* ノードの場合はインスタンスリスト通知と自ノードインスタンスリストS通知を必須で受け取る */
    10431033        if ((fp_obj->enodid == 0) && ((fa_epc == 0xD5) || (fa_epc == 0xD6)))
    10441034                has = true;
     
    10741064
    10751065        switch (item->eprpcd) {
    1076         /* ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg’Ê’m‚̏ꍇ */
     1066        /* インスタンスリスト通知の場合 */
    10771067        case 0xD5:
    1078         /* Ž©ƒm[ƒhƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg‚r’Ê’m‚̏ꍇ */
     1068        /* 自ノードインスタンスリストS通知の場合 */
    10791069        case 0xD6:
    10801070                if ((node != NULL) && (node->state == ecn_node_state_idle)) {
     
    10941084                }
    10951085                break;
    1096         /* ’Ê’mƒvƒƒpƒeƒBƒ}ƒbƒv‚̏ꍇ */
     1086        /* 通知プロパティマップの場合 */
    10971087        case 0x9D:
    10981088                eprpcnt = edt[0];
    10991089
    11001090                if (eprpcnt < 16) {
    1101                         /* ƒTƒCƒYƒ`ƒFƒbƒN */
     1091                        /* サイズチェック */
    11021092                        if (eprpcnt + 1 != size)
    11031093                                return 0;
     
    11071097                }
    11081098                else {
    1109                         /* ƒTƒCƒYƒ`ƒFƒbƒN */
     1099                        /* サイズチェック */
    11101100                        if (size != 17)
    11111101                                return 0;
     
    11161106                sobj->pmapFlag |= PMAP_FLAG_ANNO;
    11171107                break;
    1118         /* SETƒvƒƒpƒeƒBƒ}ƒbƒv‚̏ꍇ */
     1108        /* SETプロパティマップの場合 */
    11191109        case 0x9E:
    11201110                eprpcnt = edt[0];
    11211111
    11221112                if (eprpcnt < 16) {
    1123                         /* ƒTƒCƒYƒ`ƒFƒbƒN */
     1113                        /* サイズチェック */
    11241114                        if (eprpcnt + 1 != size)
    11251115                                return 0;
     
    11291119                }
    11301120                else {
    1131                         /* ƒTƒCƒYƒ`ƒFƒbƒN */
     1121                        /* サイズチェック */
    11321122                        if (size != 17)
    11331123                                return 0;
     
    11381128                sobj->pmapFlag |= PMAP_FLAG_SET;
    11391129                break;
    1140         /* GETƒvƒƒpƒeƒBƒ}ƒbƒv‚̏ꍇ */
     1130        /* GETプロパティマップの場合 */
    11411131        case 0x9F:
    11421132                eprpcnt = edt[0];
    11431133
    11441134                if (eprpcnt < 16) {
    1145                         /* ƒTƒCƒYƒ`ƒFƒbƒN */
     1135                        /* サイズチェック */
    11461136                        if (eprpcnt + 1 != size)
    11471137                                return 0;
     
    11511141                }
    11521142                else {
    1153                         /* ƒTƒCƒYƒ`ƒFƒbƒN */
     1143                        /* サイズチェック */
    11541144                        if (size != 17)
    11551145                                return 0;
  • uKadecot/trunk/ecnl_ssp/echonet_agent.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2015 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *              ECHONET Lite “®“I¶¬ƒm[ƒh
     39 *              ECHONET Lite 動的生成ノード
    4440 */
    4541
     
    5652
    5753/*
    58  *  ƒLƒ
    59 [‚̃f[ƒ^\‘¢‚Ì’è‹`
     54 *  キューのデータ構造の定義
    6055 */
    6156typedef struct ecn_agent_queue {
    6257#ifdef _DEBUG
    63         struct ecn_agent_queue *p_parent;       /* eƒLƒ
    64 [‚ւ̃|ƒCƒ“ƒ^ */
     58        struct ecn_agent_queue *p_parent;       /* 親キューへのポインタ */
    6559#endif
    66         struct ecn_agent_queue *p_next;         /* ŽŸƒGƒ“ƒgƒŠ‚ւ̃|ƒCƒ“ƒ^ */
    67         struct ecn_agent_queue *p_prev;         /* ‘OƒGƒ“ƒgƒŠ‚ւ̃|ƒCƒ“ƒ^ */
     60        struct ecn_agent_queue *p_next;         /* 次エントリへのポインタ */
     61        struct ecn_agent_queue *p_prev;         /* 前エントリへのポインタ */
    6862} ecn_agent_queue_t;
    6963
     
    7771        EOBJINIB inib;
    7872        uint8_t pmapFlag;
    79         uint8_t pmapSet[16];            /* SETƒvƒƒpƒeƒBƒ}ƒbƒv */
    80         uint8_t pmapGet[16];            /* GETƒvƒƒpƒeƒBƒ}ƒbƒv */
    81         uint8_t pmapAnno[16];           /* ó‘ԕω»Žž’Ê’mƒvƒƒpƒeƒBƒ}ƒbƒv */
    82         uint_t eprpcnt;                         /* ECHONET Lite ƒvƒƒpƒeƒB” */
     73        uint8_t pmapSet[16];            /* SETプロパティマップ */
     74        uint8_t pmapGet[16];            /* GETプロパティマップ */
     75        uint8_t pmapAnno[16];           /* 状態変化時通知プロパティマップ */
     76        uint_t eprpcnt;                         /* ECHONET Lite プロパティ数 */
    8377} ecn_obj_t;
    8478
     
    118112typedef struct ecn_inm_get_device_item
    119113{
    120         ID                      eobjid;                 /* ECHONET Lite ƒIƒuƒWƒFƒNƒgID */
    121         ID                      enodid;                 /* ECHONET Lite ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ƒIƒuƒWƒFƒNƒgID */
    122         uint8_t         state;                  /* î•ñŽûWó‘Ô */
    123         uint8_t         eojx1;                  /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‚̃Nƒ‰ƒXƒOƒ‹[ƒvƒR[ƒh */
    124         uint8_t         eojx2;                  /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‚̃Nƒ‰ƒXƒR[ƒh */
    125         uint8_t         eojx3;                  /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‚̃Cƒ“ƒXƒ^ƒ“ƒXƒR[ƒh */
    126         ECN_ENOD_ID     addrid;                 /* IPƒAƒhƒŒƒXŽæ“¾—pID */
     114        ID                      eobjid;                 /* ECHONET Lite オブジェクトID */
     115        ID                      enodid;                 /* ECHONET Lite ノードプロファイルオブジェクトID */
     116        uint8_t         state;                  /* 情報収集状態 */
     117        uint8_t         eojx1;                  /* ECHONET Lite オブジェクトのクラスグループコード */
     118        uint8_t         eojx2;                  /* ECHONET Lite オブジェクトのクラスコード */
     119        uint8_t         eojx3;                  /* ECHONET Lite オブジェクトのインスタンスコード */
     120        ECN_ENOD_ID     addrid;                 /* IPアドレス取得用ID */
    127121} ecn_inm_get_device_item_t;
    128122
     
    149143} ecn_inm_get_device_info_res_t;
    150144
    151 /* ‰Šú‰» */
     145/* 初期化 */
    152146void ecn_agent_init(void);
    153 /* ƒm[ƒh‚ðŒŸõ */
     147/* ノードを検索 */
    154148ecn_node_t *ecn_agent_find_node(ECN_ENOD_ID enodid);
    155 /* ‹@Ší‚ðŒŸõ */
     149/* 機器を検索 */
    156150ecn_obj_t *ecn_agent_find_eobj(const EOBJCB *pk_nod, T_ECN_EOJ eoj);
    157 /* ƒIƒuƒWƒFƒNƒgID‚ðŽæ“¾ */
     151/* オブジェクトIDを取得 */
    158152ID ecn_agent_get_eobj(const EOBJINIB *pk_obj);
    159 /* ŽŸ‚Ì‹@Ší‚ðŽæ“¾ */
     153/* 次の機器を取得 */
    160154const EOBJINIB *ecn_agent_next_eobj(const EOBJCB *pk_nod, const EOBJINIB *pk_obj);
    161 /* ƒIƒuƒWƒFƒNƒgID‚©‚çEOJ‚ƃm[ƒhID‚ðŽæ“¾ */
     155/* オブジェクトIDからEOJとノードIDを取得 */
    162156bool_t ecn_agent_get_eoj_enodid(ID eobjid, T_ECN_EOJ *eoj, ECN_ENOD_ID *enodid);
    163 /* ƒ^ƒCƒ€ƒAƒEƒg’l‚ð•Ô‚· */
     157/* タイムアウト値を返す */
    164158TMO ecn_agent_get_timer();
    165 /* ƒ^ƒCƒ}[‚ÌŽžŠÔ‚ði‚ß‚é */
     159/* タイマーの時間を進める */
    166160void ecn_agent_progress(TMO interval);
    167 /* ƒ^ƒCƒ€ƒAƒEƒgˆ—i‚Ì‚½‚߂̌Ăяo‚µj */
     161/* タイムアウト処理(のための呼び出し) */
    168162void ecn_agent_timeout();
    169 /* “à•”ƒƒbƒZ[ƒWˆ— */
     163/* 内部メッセージ処理 */
    170164bool_t ecn_agent_proc_int_msg(ECN_FBS_ID fbs, uint8_t cmd);
    171 /* ECHONET“d•¶ŽóMˆ— */
     165/* ECHONET電文受信処理 */
    172166void ecn_agent_proc_ecn_msg(const EOBJCB **snod, const EOBJINIB **sobj, T_EDATA *esv);
    173 /* ECHONET“d•¶ŽóMˆ—I—¹ */
     167/* ECHONET電文受信処理終了 */
    174168void ecn_agent_proc_ecn_msg_end();
    175 /* ƒvƒƒpƒeƒB‚ðŽæ“¾ */
     169/* プロパティを取得 */
    176170const EPRPINIB *ecn_agent_get_property(const EOBJINIB *fp_obj, uint8_t fa_epc, const EPRPINIB *item);
    177171
  • uKadecot/trunk/ecnl_ssp/echonet_chk.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55$  Copyright (C) 2014 Cores Co., Ltd. Japan
    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‰ü
    9 $  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12 $      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14 $      —p‚Å‚«‚éŒ`‚ōĔ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
    20 $      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21 $      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29 $      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30 $      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31 $      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32 $      –Ɛӂ·‚邱‚ƁD
     7$  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8$  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9$  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10$  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11$      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12$      スコード中に含まれていること.
     13$  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14$      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15$      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16$      の無保証規定を掲載すること.
     17$  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18$      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19$      と.
     20$    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21$        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22$    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23$        報告すること.
     24$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25$      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26$      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27$      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28$      免責すること.
    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
    37 ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38 ‚̐ӔC‚𕉂í‚È‚¢D
     30本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34の責任を負わない.
    3935$
    4036$  @(#) $Id$
     
    4339
    4440$ =====================================================================
    45 $ •K{ƒvƒƒpƒeƒB‚̃`ƒFƒbƒN
     41$ 必須プロパティのチェック
    4642$ =====================================================================
    4743
     
    5046$END$
    5147
    52 $ ƒvƒƒtƒ@ƒCƒ‹ƒIƒuƒWƒFƒNƒgƒX[ƒp[ƒNƒ‰ƒX
     48$ プロファイルオブジェクトスーパークラス
    5349$ProfileObjectSuperClass.EPC = { 0x88, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x9D, 0x9E, 0x9F }$
    5450$ProfileObjectSuperClass.MUST = { EPC_NONE, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_GET }$
    5551
    56 $ ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ƒNƒ‰ƒX
     52$ ノードプロファイルクラス
    5753$NodeProfileClass.EPC = { 0x80, 0x82, 0x83, 0x89, 0xBF, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7 }$
    5854$NodeProfileClass.MUST = { EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_ANNO, EPC_RULE_GET, EPC_RULE_GET }$
    5955
    60 $ ‹@ŠíƒIƒuƒWƒFƒNƒgƒX[ƒp[ƒNƒ‰ƒX
     56$ 機器オブジェクトスーパークラス
    6157$DeviceSuperClass.EPC = { 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x93, 0x97, 0x98, 0x99, 0x9A, 0x9D, 0x9E, 0x9F }$
    6258$DeviceSuperClass.MUST = { EPC_RULE_GET, EPC_RULE_SET|EPC_RULE_GET, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_NONE, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_GET }$
  • uKadecot/trunk/ecnl_ssp/echonet_class.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4339#define ECHONET_CLASS_H
    4440
    45 /* ƒZƒ“ƒT[ŠÖ˜A‹@Ší */
     41/* センサー関連機器 */
    4642#define EOJ_X1_SENSOR 0x00
    4743
    48 /* ‹ó’²ŠÖ˜A‹@Ší */
     44/* 空調関連機器 */
    4945#define EOJ_X1_AIR_CONDITIONER 0x01
    5046
    51 /* Z‘îEÝ”õŠÖ˜A‹@Ší */
     47/* 住宅・設備関連機器 */
    5248#define EOJ_X1_AMENITY 0x02
    5349
    54 /* ’²—E‰ÆŽ–ŠÖ˜A‹@Ší */
     50/* 調理・家事関連機器 */
    5551#define EOJ_X1_HOUSEWORK 0x03
    5652
    57 /* Œ’NŠÖ˜A‹@Ší */
     53/* 健康関連機器 */
    5854#define EOJ_X1_WELLNESS 0x04
    5955
    60 /* ŠÇ—E‘€ìŠÖ˜A‹@Ší */
     56/* 管理・操作関連機器 */
    6157#define EOJ_X1_CONTROLLER 0x05
    6258
    63 /* AVŠÖ˜A‹@Ší */
     59/* AV関連機器 */
    6460#define EOJ_X1_AUDIO_VISUAL 0x06
    6561
    66 /* ƒvƒƒtƒ@ƒCƒ‹ */
     62/* プロファイル */
    6763#define EOJ_X1_PROFILE 0x0E
    6864
    69 /* ƒ†[ƒU[’è‹` */
     65/* ユーザー定義 */
    7066#define EOJ_X1_USER_DEFINED 0x0F
    7167
    7268/*
    73  * ƒZƒ“ƒTŠÖ˜A‹@ŠíƒNƒ‰ƒXƒOƒ‹[ƒv *
    74  */
    75 /* ƒKƒX˜R‚êƒZƒ“ƒT */
     69 * センサ関連機器クラスグループ *
     70 */
     71/* ガス漏れセンサ */
    7672#define EOJ_X2_GAS_LEAK_SENSOR 0x01
    7773
    78 /* –h”ƃZƒ“ƒT */
     74/* 防犯センサ */
    7975#define EOJ_X2_CRIME_PREVENTION_SENSOR 0x02
    8076
    81 /* ”ñíƒ{ƒ^ƒ“ */
     77/* 非常ボタン */
    8278#define EOJ_X2_EMERGENCY_BUTTON 0x03
    8379
    84 /* ‹~‹}—pƒZƒ“ƒT */
     80/* 救急用センサ */
    8581#define EOJ_X2_FIRST_AID_SENSOR 0x04
    8682
    87 /* ’nkƒZƒ“ƒT */
     83/* 地震センサ */
    8884#define EOJ_X2_EARTHQUAKE_SENSOR 0x05
    8985
    90 /* ˜R“dƒZƒ“ƒT */
     86/* 漏電センサ */
    9187#define EOJ_X2_ELECTRIC_LEAK_SENSOR 0x06
    9288
    93 /* l‘ÌŒŸ’mƒZƒ“ƒT */
     89/* 人体検知センサ */
    9490#define EOJ_X2_HUMAN_DETECTION_SENSOR 0x07
    9591
    96 /* —ˆ‹qƒZƒ“ƒT */
     92/* 来客センサ */
    9793#define EOJ_X2_VISITOR_SENSOR 0x08
    9894
    99 /* ŒÄ‚яo‚µƒZƒ“ƒT */
     95/* 呼び出しセンサ */
    10096#define EOJ_X2_CALL_SENSOR 0x09
    10197
    102 /* Œ‹˜IƒZƒ“ƒT */
     98/* 結露センサ */
    10399#define EOJ_X2_CONDENSATION_SENSOR 0x0A
    104100
    105 /* ‹ó‹C‰˜õƒZƒ“ƒT */
     101/* 空気汚染センサ */
    106102#define EOJ_X2_AIR_POLLUTION_SENSOR 0x0B
    107103
    108 /* Ž_‘fƒZƒ“ƒT */
     104/* 酸素センサ */
    109105#define EOJ_X2_OXYGEN_SENSOR 0x0C
    110106
    111 /* Æ“xƒZƒ“ƒT */
     107/* 照度センサ */
    112108#define EOJ_X2_ILLUMINANCE_SENSOR 0x0D
    113109
    114 /* ‰¹ƒZƒ“ƒT */
     110/* 音センサ */
    115111#define EOJ_X2_SOUND_SENSOR 0x0E
    116112
    117 /* “Š”ŸƒZƒ“ƒT */
     113/* 投函センサ */
    118114#define EOJ_X2_MAILING_SENSOR 0x0F
    119115
    120 /* d‰×ƒZƒ“ƒT */
     116/* 重荷センサ */
    121117#define EOJ_X2_WEIGHT_SENSOR 0x10
    122118
    123 /* ‰·“xƒZƒ“ƒT */
     119/* 温度センサ */
    124120#define EOJ_X2_TEMPERATURE_SENSOR 0x11
    125121
    126 /* Ž¼“xƒZƒ“ƒT */
     122/* 湿度センサ */
    127123#define EOJ_X2_HUMIDITY_SENSOR 0x12
    128124
    129 /* ‰JƒZƒ“ƒT */
     125/* 雨センサ */
    130126#define EOJ_X2_RAIN_SENSOR 0x13
    131127
    132 /* 
    133 ˆÊƒZƒ“ƒT */
     128/* 水位センサ */
    134129#define EOJ_X2_WATER_LEVEL_SENSOR 0x14
    135130
    136 /* •—˜C
    137 ˆÊƒZƒ“ƒT */
     131/* 風呂水位センサ */
    138132#define EOJ_X2_BATH_WATER_LEVEL_SENSOR 0x15
    139133
    140 /* •—˜C•¦‚«ã‚ª‚èƒZƒ“ƒT */
     134/* 風呂沸き上がりセンサ */
    141135#define EOJ_X2_BATH_HEATING_STATUS_SENSOR 0x16
    142136
    143 /* 
    144 ˜R‚êƒZƒ“ƒT */
     137/* 水漏れセンサ */
    145138#define EOJ_X2_WATER_LEAK_SENSOR 0x17
    146139
    147 /* 
    148 ‚ ‚Ó‚êƒZƒ“ƒT */
     140/* 水あふれセンサ */
    149141#define EOJ_X2_WATER_OVERFLOW_SENSOR 0x18
    150142
    151 /* ‰ÎÐƒZƒ“ƒT */
     143/* 火災センサ */
    152144#define EOJ_X2_FIRE_SENSOR 0x19
    153145
    154 /* ƒ^ƒoƒR‰ŒƒZƒ“ƒT */
     146/* タバコ煙センサ */
    155147#define EOJ_X2_CIGARETTE_SMOKE_SENSOR 0x1A
    156148
    157 /* ‚b‚n‚QƒZƒ“ƒT */
     149/* CO2センサ */
    158150#define EOJ_X2_CO2_SENSOR 0x1B
    159151
    160 /* ƒKƒXƒZƒ“ƒT */
     152/* ガスセンサ */
    161153#define EOJ_X2_GAS_SENSOR 0x1C
    162154
    163 /* ‚u‚n‚bƒZƒ“ƒT */
     155/* VOCセンサ */
    164156#define EOJ_X2_VOC_SENSOR 0x1D
    165157
    166 /* ·ˆ³ƒZƒ“ƒT */
     158/* 差圧センサ */
    167159#define EOJ_X2_DIFFERENTIAL_PRESSURE_SENSOR 0x1E
    168160
    169 /* •—‘¬ƒZƒ“ƒT */
     161/* 風速センサ */
    170162#define EOJ_X2_AIR_SPEED_SENSOR 0x1F
    171163
    172 /* L‚¢ƒZƒ“ƒT */
     164/* 臭いセンサ */
    173165#define EOJ_X2_ODOR_SENSOR 0x20
    174166
    175 /* ‰ŠƒZƒ“ƒT */
     167/* 炎センサ */
    176168#define EOJ_X2_FLAME_SENSOR 0x21
    177169
    178 /* “d—͗ʃZƒ“ƒT */
     170/* 電力量センサ */
    179171#define EOJ_X2_ELECTRIC_ENERGY_SENSOR 0x22
    180172
    181 /* “d—¬—ʃZƒ“ƒT */
     173/* 電流量センサ */
    182174#define EOJ_X2_CURRENT_VALUE_SENSOR 0x23
    183175
    184 /* ’‹ŒõƒZƒ“ƒT */
     176/* 昼光センサ */
    185177#define EOJ_X2_DAYLIGHT_SENSOR 0x24
    186178
    187 /* 
    188 —¬—ʃZƒ“ƒT */
     179/* 水流量センサ */
    189180#define EOJ_X2_WATER_FLOW_RATE_SENSOR 0x25
    190181
    191 /* ”÷“®ƒZƒ“ƒT */
     182/* 微動センサ */
    192183#define EOJ_X2_MICROMOTION_SENSOR 0x26
    193184
    194 /* ’ʉ߃Zƒ“ƒT */
     185/* 通過センサ */
    195186#define EOJ_X2_PASSAGE_SENSOR 0x27
    196187
    197 /* Ý°ƒZƒ“ƒT */
     188/* 在床センサ */
    198189#define EOJ_X2_BED_PRESENCE_SENSOR 0x28
    199190
    200 /* ŠJ•ÂƒZƒ“ƒT */
     191/* 開閉センサ */
    201192#define EOJ_X2_OPEN_CLOSE_SENSOR 0x29
    202193
    203 /* Šˆ“®—ʃZƒ“ƒT */
     194/* 活動量センサ */
    204195#define EOJ_X2_ACTIVITY_AMOUNT_SENSOR 0x2A
    205196
    206 /* l‘̈ʒuƒZƒ“ƒT */
     197/* 人体位置センサ */
    207198#define EOJ_X2_HUMAN_BODY_LOCATION_SENSOR 0x2B
    208199
    209 /* áƒZƒ“ƒT */
     200/* 雪センサ */
    210201#define EOJ_X2_SNOW_SENSOR 0x2C
    211202
    212203/*
    213  * ‹ó’²ŠÖ˜A‹@ŠíƒNƒ‰ƒXƒOƒ‹[ƒv *
    214  */
    215 /* ‰Æ’ë—pƒGƒAƒRƒ“ */
     204 * 空調関連機器クラスグループ *
     205 */
     206/* 家庭用エアコン */
    216207#define EOJ_X2_HOME_AIR_CONDITIONER 0x30
    217208
    218 /* —â•—‹@ */
     209/* 冷風機 */
    219210#define EOJ_X2_COLD_BLASTER 0x31
    220211
    221 /* î•—‹@ */
     212/* 扇風機 */
    222213#define EOJ_X2_ELECTRIC_FAN 0x32
    223214
    224 /* Š·‹Cî */
     215/* 換気扇 */
    225216#define EOJ_X2_VENTILATION_FAN 0x33
    226217
    227 /* ‹ó’²Š·‹Cî */
     218/* 空調換気扇 */
    228219#define EOJ_X2_AIR_CONDITIONING_VENTILATION_FAN 0x34
    229220
    230 /* ‹ó‹C´òŠí */
     221/* 空気清浄器 */
    231222#define EOJ_X2_AIR_CLEANER 0x35
    232223
    233 /* —â•—î */
     224/* 冷風扇 */
    234225#define EOJ_X2_COLD_BLAST_FAN 0x36
    235226
    236 /* ƒT[ƒLƒ
    237 ƒŒ[ƒ^ */
     227/* サーキュレータ */
    238228#define EOJ_X2_CIRCULATOR 0x37
    239229
    240 /* œŽ¼‹@ */
     230/* 除湿機 */
    241231#define EOJ_X2_DEHUMIDIFIER 0x38
    242232
    243 /* ‰ÁŽ¼Ší */
     233/* 加湿器 */
    244234#define EOJ_X2_HUMIDIFIER 0x39
    245235
    246 /* “Vˆäî */
     236/* 天井扇 */
    247237#define EOJ_X2_CEILING_FAN 0x3A
    248238
    249 /* “d‹C‚±‚½‚ */
     239/* 電気こたつ */
    250240#define EOJ_X2_ELECTRIC_KOTATSU 0x3B
    251241
    252 /* “d‹C‚ ‚ñ‚© */
     242/* 電気あんか */
    253243#define EOJ_X2_ELECTRIC_HEATING_PAD 0x3C
    254244
    255 /* “d‹C–Ñ•z */
     245/* 電気毛布 */
    256246#define EOJ_X2_ELECTRIC_BLANKET 0x3D
    257247
    258 /* ƒXƒg[ƒu */
     248/* ストーブ */
    259249#define EOJ_X2_SPACE_HEATER 0x3E
    260250
    261 /* ƒpƒlƒ‹ƒq[ƒ^ */
     251/* パネルヒータ */
    262252#define EOJ_X2_PANEL_HEATER 0x3F
    263253
    264 /* “d‹CƒJ[ƒyƒbƒg */
     254/* 電気カーペット */
    265255#define EOJ_X2_ELECTRIC_CARPET 0x40
    266256
    267 /* ƒtƒƒAƒq[ƒ^ */
     257/* フロアヒータ */
    268258#define EOJ_X2_FLOOR_HEATER 0x41
    269259
    270 /* “d‹C’g–[Ší */
     260/* 電気暖房器 */
    271261#define EOJ_X2_ELECTRIC_HEATER 0x42
    272262
    273 /* ƒtƒ@ƒ“ƒq[ƒ^ */
     263/* ファンヒータ */
    274264#define EOJ_X2_FAN_HEATER 0x43
    275265
    276 /* [“dŠí */
     266/* 充電器 */
    277267#define EOJ_X2_BATTERY_CHARGER 0x44
    278268
    279 /* ‹Æ–±—pƒpƒbƒP[ƒWƒGƒAƒRƒ“Žº“à‹@ */
     269/* 業務用パッケージエアコン室内機 */
    280270#define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_INDOOR_UNIT 0x45
    281271
    282 /* ‹Æ–±—pƒpƒbƒP[ƒWƒGƒAƒRƒ“ŽºŠO‹@ */
     272/* 業務用パッケージエアコン室外機 */
    283273#define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_OUTDOOR_UNIT 0x46
    284274
    285 /* ‹Æ–±—pƒpƒbƒP[ƒWƒGƒAƒRƒ“’~”Mƒ†ƒjƒbƒg */
     275/* 業務用パッケージエアコン蓄熱ユニット */
    286276#define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_THERMAL_STORAGE_UNIT 0x47
    287277
    288 /* ‹Æ–±—pƒtƒ@ƒ“ƒRƒCƒ‹ƒ†ƒjƒbƒg */
     278/* 業務用ファンコイルユニット */
    289279#define EOJ_X2_COMMERCIAL_FAN_COIL_UNIT 0x48
    290280
    291 /* ‹Æ–±—p‹ó’²—â”MŒ¹(ƒ`ƒ‰[) */
     281/* 業務用空調冷熱源(チラー) */
    292282#define EOJ_X2_COMMERCIAL_AIR_CONDITIONING_COLD_SOURCE_CHILLER 0x49
    293283
    294 /* ‹Æ–±—p‹ó’²‰·”MŒ¹(ƒ{ƒCƒ‰[) */
     284/* 業務用空調温熱源(ボイラー) */
    295285#define EOJ_X2_COMMERCIAL_AIR_CONDITIONING_HEAT_SOURCE_BOILER 0x50
    296286
    297 /* ‹Æ–±—p‹ó’²VAV */
     287/* 業務用空調VAV */
    298288#define EOJ_X2_AIR_CONDITIONING_VAV_FOR_COMMERCIAL_APPLICATION 0x51
    299289
    300 /* ‹Æ–±—p‹ó’²ƒGƒAƒnƒ“ƒhƒŠƒ“ƒOƒ†ƒjƒbƒg */
     290/* 業務用空調エアハンドリングユニット */
    301291#define EOJ_X2_AIR_HANDLING_UNIT_AIR_CONDITIONING_FOR_COMMERCIAL_APPLICATION 0x52
    302292
    303 /* ƒ†ƒjƒbƒgƒN[ƒ‰[ */
     293/* ユニットクーラー */
    304294#define EOJ_X2_UNIT_COOLER 0x53
    305295
    306 /* ‹Æ–±—pƒRƒ“ƒfƒ“ƒVƒ“ƒOƒ†ƒjƒbƒg */
     296/* 業務用コンデンシングユニット */
    307297#define EOJ_X2_CONDENSING_UNIT_FOR_COMMERCIAL_APPLICATION 0x54
    308298
    309299/*
    310  * Z‘îEÝ”õŠÖ˜A‹@ŠíƒNƒ‰ƒXƒOƒ‹[ƒv *
    311  */
    312 /* “d“®ƒuƒ‰ƒCƒ“ƒh */
     300 * 住宅・設備関連機器クラスグループ *
     301 */
     302/* 電動ブラインド */
    313303#define EOJ_X2_ELECTRICALLY_OPERATED_SHADE 0x60
    314304
    315 /* “d“®ƒVƒƒƒbƒ^[ */
     305/* 電動シャッター */
    316306#define EOJ_X2_ELECTRICALLY_OPERATED_SHUTTER 0x61
    317307
    318 /* “d“®ƒJ[ƒeƒ“ */
     308/* 電動カーテン */
    319309#define EOJ_X2_ELECTRICALLY_OPERATED_CURTAIN 0x62
    320310
    321 /* “d“®‰JŒË */
     311/* 電動雨戸 */
    322312#define EOJ_X2_ELECTRICALLY_OPERATED_STORM_WINDOW 0x63
    323313
    324 /* “d“®ƒKƒŒ[ƒW */
     314/* 電動ガレージ */
    325315#define EOJ_X2_ELECTRICALLY_OPERATED_DOOR 0x64
    326316
    327 /* “d“®“V‘‹ */
     317/* 電動天窓 */
    328318#define EOJ_X2_ELECTRICALLY_OPERATED_SKYLIGHT 0x65
    329319
    330 /* ƒI[ƒjƒ“ƒOi“ú‚悯j */
     320/* オーニング(日よけ) */
    331321#define EOJ_X2_AWNING 0x66
    332322
    333 /* ŽU
    334 Šíi’ë—pj */
     323/* 散水器(庭用) */
    335324#define EOJ_X2_GARDEN_SPRINKLER 0x67
    336325
    337 /* ŽU
    338 Šíi‰ÎÐ—pj */
     326/* 散水器(火災用) */
    339327#define EOJ_X2_FIRE_SPRINKLER 0x68
    340328
    341 /* •¬
    342  */
     329/* 噴水 */
    343330#define EOJ_X2_FOUNTAIN 0x69
    344331
    345 /* uŠÔ“’•¦Ší */
     332/* 瞬間湯沸器 */
    346333#define EOJ_X2_INSTANTANEOUS_WATER_HEATERS 0x6A
    347334
    348 /* “d‹C‰·
    349 Ší */
     335/* 電気温水器 */
    350336#define EOJ_X2_ELECTRIC_WATER_HEATER 0x6B
    351337
    352 /* ‘¾—z”M‰·
    353 Ší */
     338/* 太陽熱温水器 */
    354339#define EOJ_X2_SOLAR_WATER_HEATER 0x6C
    355340
    356 /* zŠÂƒ|ƒ“ƒv */
     341/* 循環ポンプ */
    357342#define EOJ_X2_CIRCULATION_PUMP 0x6D
    358343
    359 /* “d‹C•ÖÀi‰·
    360 ôò•ÖÀA’g–[•ÖÀ‚Ȃǁj */
     344/* 電気便座(温水洗浄便座、暖房便座など) */
    361345#define EOJ_X2_BIDET_EQUIPPED_TOILET 0x6E
    362346
    363 /* “d‹Cù */
     347/* 電気錠 */
    364348#define EOJ_X2_ELECTRIC_KEY 0x6F
    365349
    366 /* ƒKƒXŒ³•Ù */
     350/* ガス元弁 */
    367351#define EOJ_X2_GAS_LINE_VALVE 0x70
    368352
    369 /* ƒz[ƒ€ƒTƒEƒi */
     353/* ホームサウナ */
    370354#define EOJ_X2_HOME_SAUNA 0x71
    371355
    372 /* uŠÔŽ®‹‹“’Ší */
     356/* 瞬間式給湯器 */
    373357#define EOJ_X2_HOT_WATER_GENERATOR 0x72
    374358
    375 /* —Žº’g–[Š£‘‡‹@ */
     359/* 浴室暖房乾燥機 */
    376360#define EOJ_X2_BATHROOM_DRYER 0x73
    377361
    378 /* ƒz[ƒ€ƒGƒŒƒx[ƒ^ */
     362/* ホームエレベータ */
    379363#define EOJ_X2_HOME_ELEVATOR 0x74
    380364
    381 /* “d“®ŠÔŽdØ‚è */
     365/* 電動間仕切り */
    382366#define EOJ_X2_ELECTRICALLY_OPERATED_ROOM_DIVIDER 0x75
    383367
    384 /* 
    385 •½ƒgƒ‰ƒ“ƒXƒtƒ@ */
     368/* 水平トランスファ */
    386369#define EOJ_X2_HORIZONTAL_TRANSFER 0x76
    387370
    388 /* “d“®•¨Š±‚µ */
     371/* 電動物干し */
    389372#define EOJ_X2_ELECTRICALLY_OPERATED_CLOTHES_DRYING_POLE 0x77
    390373
    391 /* ò‰»‘
    392  */
     374/* 浄化槽 */
    393375#define EOJ_X2_SEPTIC_TANK 0x78
    394376
    395 /* Z‘î—p‘¾—zŒõ”­“d */
     377/* 住宅用太陽光発電 */
    396378#define EOJ_X2_HOME_SOLAR_POWER_GENERATION 0x79
    397379
    398 /* —≷
    399 ”MŒ¹‹@ */
     380/* 冷温水熱源機 */
    400381#define EOJ_X2_COLD_AND_HOT_WATER_HEAT_SOURCE_EQUIPMENT 0x7A
    401382
    402 /* °’g–[ */
     383/* 床暖房 */
    403384#define EOJ_X2_FLOOR_HEATING 0x7B
    404385
    405 /* ”R—¿“d’r */
     386/* 燃料電池 */
    406387#define EOJ_X2_FUEL_CELL 0x7C
    407388
    408 /* ’~“d’r */
     389/* 蓄電池 */
    409390#define EOJ_X2_STORAGE_BATTERY 0x7D
    410391
    411 /* “d‹CŽ©“®ŽÔ[•ú“dƒVƒXƒeƒ€ */
     392/* 電気自動車充放電システム */
    412393#define EOJ_X2_ELECTRIC_VEHICLE 0x7E
    413394
    414 /* “d—͗ʃ[ƒ^ */
     395/* 電力量メータ */
    415396#define EOJ_X2_ELECTRIC_ENERGY_METER 0x80
    416397
    417 /* 
    418 —¬—ʃ[ƒ^ */
     398/* 水流量メータ */
    419399#define EOJ_X2_WATER_FLOW_METER 0x81
    420400
    421 /* ƒKƒXƒ[ƒ^ */
     401/* ガスメータ */
    422402#define EOJ_X2_GAS_METER 0x82
    423403
    424 /* LPƒKƒXƒ[ƒ^ */
     404/* LPガスメータ */
    425405#define EOJ_X2_LP_GAS_METERS 0x83
    426406
    427 /* ŽžŒv */
     407/* 時計 */
    428408#define EOJ_X2_CLOCK 0x84
    429409
    430 /* Ž©“®ƒhƒA */
     410/* 自動ドア */
    431411#define EOJ_X2_AUTOMATIC_DOOR 0x85
    432412
    433 /* ‹Æ–±—pƒGƒŒƒx[ƒ^ */
     413/* 業務用エレベータ */
    434414#define EOJ_X2_COMMERCIAL_ELEVATOR 0x86
    435415
    436 /* •ª“d”Õƒ[ƒ^ƒŠƒ“ƒO */
     416/* 分電盤メータリング */
    437417#define EOJ_X2_DISTRIBUTION_PANEL_METERING 0x87
    438418
    439 /* ƒXƒ}[ƒg“d—͗ʃ[ƒ^ */
     419/* スマート電力量メータ */
    440420#define EOJ_X2_SMART_ELECTRIC_ENERGY_METER 0x88
    441421
    442 /* ƒXƒ}[ƒgƒKƒXƒ[ƒ^ */
     422/* スマートガスメータ */
    443423#define EOJ_X2_SMART_GAS_METER 0x89
    444424
    445 /* ˆê”ʏƖ¾ */
     425/* 一般照明 */
    446426#define EOJ_X2_GENERAL_LIGHTING_CLASS 0x90
    447427
    448 /* ”ñíÆ–¾ */
     428/* 非常照明 */
    449429#define EOJ_X2_EMERGENCY_LIGHTING 0x99
    450430
    451 /* Ý”õÆ–¾ */
     431/* 設備照明 */
    452432#define EOJ_X2_EQUIPMENT_LIGHT 0x9D
    453433
    454 /* ƒuƒU[ */
     434/* ブザー */
    455435#define EOJ_X2_BUZZER 0xA0
    456436
    457437/*
    458  * ’²—E‰ÆŽ–ŠÖ˜A‹@ŠíƒNƒ‰ƒXƒOƒ‹[ƒv *
    459  */
    460 /* ƒR[ƒq[ƒ[ƒJ */
     438 * 調理・家事関連機器クラスグループ *
     439 */
     440/* コーヒーメーカ */
    461441#define EOJ_X2_COFFEE_MACHINE 0xB0
    462442
    463 /* ƒR[ƒq[ƒ~ƒ‹ */
     443/* コーヒーミル */
    464444#define EOJ_X2_COFFEE_MILL 0xB1
    465445
    466 /* “d‹Cƒ|ƒbƒg */
     446/* 電気ポット */
    467447#define EOJ_X2_ELECTRIC_HOT_WATER_POT 0xB2
    468448
    469 /* “d‹C‚±‚ñ‚ë */
     449/* 電気こんろ */
    470450#define EOJ_X2_ELECTRIC_STOVE 0xB3
    471451
    472 /* ƒg[ƒXƒ^ */
     452/* トースタ */
    473453#define EOJ_X2_TOASTER 0xB4
    474454
    475 /* ƒWƒ
    476 [ƒTEƒ~ƒLƒT */
     455/* ジューサ・ミキサ */
    477456#define EOJ_X2_JUICER_FOOD_MIXER 0xB5
    478457
    479 /* ƒt[ƒhƒvƒƒZƒbƒT */
     458/* フードプロセッサ */
    480459#define EOJ_X2_FOOD_PROCESSOR 0xB6
    481460
    482 /* —â“€—â‘ ŒÉ */
     461/* 冷凍冷蔵庫 */
    483462#define EOJ_X2_REFRIGERATOR_FREEZER 0xB7
    484463
    485 /* ƒI[ƒuƒ“ƒŒƒ“ƒW */
     464/* オーブンレンジ */
    486465#define EOJ_X2_COMBINATION_MICROWAVE_OVEN 0xB8
    487466
    488 /* ƒNƒbƒLƒ“ƒOƒq[ƒ^ */
     467/* クッキングヒータ */
    489468#define EOJ_X2_COOKING_HEATER 0xB9
    490469
    491 /* ƒI[ƒuƒ“ */
     470/* オーブン */
    492471#define EOJ_X2_OVEN 0xBA
    493472
    494 /* †”ÑŠí */
     473/* 炊飯器 */
    495474#define EOJ_X2_RICE_COOKER 0xBB
    496475
    497 /* “dŽqƒWƒƒ[ */
     476/* 電子ジャー */
    498477#define EOJ_X2_ELECTRONIC_JAR 0xBC
    499478
    500 /* HŠíô‚¢‹@ */
     479/* 食器洗い機 */
    501480#define EOJ_X2_DISH_WASHER 0xBD
    502481
    503 /* HŠíŠ£‘‡‹@ */
     482/* 食器乾燥機 */
    504483#define EOJ_X2_DISH_DRYER 0xBE
    505484
    506 /* “d‹C‚à‚¿‚‚«‹@ */
     485/* 電気もちつき機 */
    507486#define EOJ_X2_ELECTRIC_RICE_CAKE_COOKER 0xBF
    508487
    509 /* •Û‰·‹@ */
     488/* 保温機 */
    510489#define EOJ_X2_KEEP_WARM_MACHINE 0xC0
    511490
    512 /* ¸•Ä‹@ */
     491/* 精米機 */
    513492#define EOJ_X2_RICE_MILL 0xC1
    514493
    515 /* Ž©“®»ƒpƒ“‹@ */
     494/* 自動製パン機 */
    516495#define EOJ_X2_AUTOMATIC_BREAD_COOKER 0xC2
    517496
    518 /* ƒXƒ[ƒNƒbƒJ[ */
     497/* スロークッカー */
    519498#define EOJ_X2_SLOW_COOKER 0xC3
    520499
    521 /* “d‹C’Е¨‹@ */
     500/* 電気漬物機 */
    522501#define EOJ_X2_ELECTRIC_PICKLES_COOKER 0xC4
    523502
    524 /* ô‘ó‹@ */
     503/* 洗濯機 */
    525504#define EOJ_X2_WASHING_MACHINE 0xC5
    526505
    527 /* ˆß—ÞŠ£‘‡‹@ */
     506/* 衣類乾燥機 */
    528507#define EOJ_X2_CLOTH_DRYER 0xC6
    529508
    530 /* “d‹CƒAƒCƒƒ“ */
     509/* 電気アイロン */
    531510#define EOJ_X2_ELECTRIC_IRON 0xC7
    532511
    533 /* ƒYƒ{ƒ“ƒvƒŒƒbƒT */
     512/* ズボンプレッサ */
    534513#define EOJ_X2_TROUSER_PRESS 0xC8
    535514
    536 /* ‚Ó‚Æ‚ñŠ£‘‡‹@ */
     515/* ふとん乾燥機 */
    537516#define EOJ_X2_FUTON_DRYER 0xC9
    538517
    539 /* ¬•¨E‚­‚Š£‘‡‹@ */
     518/* 小物・くつ乾燥機 */
    540519#define EOJ_X2_SMALL_ARTICLE_SHOES_DRYER 0xCA
    541520
    542 /* “d‹C‘|œ‹@iƒZƒ“ƒgƒ‰ƒ‹ƒNƒŠ[ƒiŠÜ‚ށj */
     521/* 電気掃除機(セントラルクリーナ含む) */
    543522#define EOJ_X2_ELECTRIC_VACUUM_CLEANER 0xCB
    544523
    545 /* ƒfƒBƒXƒ|[ƒU */
     524/* ディスポーザ */
    546525#define EOJ_X2_DISPOSER 0xCC
    547526
    548 /* “d‹C‰áŽæ‚è‹@ */
     527/* 電気蚊取り機 */
    549528#define EOJ_X2_ELECTRIC_MOSQUITO_CATCHER 0xCD
    550529
    551 /* ‹Æ–±—pƒVƒ‡[ƒP[ƒX */
     530/* 業務用ショーケース */
    552531#define EOJ_X2_COMMERCIAL_SHOW_CASE 0xCE
    553532
    554 /* ‹Æ–±—p—â‘ ŒÉ */
     533/* 業務用冷蔵庫 */
    555534#define EOJ_X2_COMMERCIAL_REFRIGERATOR 0xCF
    556535
    557 /* ‹Æ–±—pƒzƒbƒgƒP[ƒX */
     536/* 業務用ホットケース */
    558537#define EOJ_X2_COMMERCIAL_HOT_CASE 0xD0
    559538
    560 /* ‹Æ–±—pƒtƒ‰ƒCƒ„[ */
     539/* 業務用フライヤー */
    561540#define EOJ_X2_COMMERCIAL_FRYER 0xD1
    562541
    563 /* ‹Æ–±—p“dŽqƒŒƒ“ƒW */
     542/* 業務用電子レンジ */
    564543#define EOJ_X2_COMMERCIAL_MICROWAVE_OVEN 0xD2
    565544
    566 /* ô‘󊣑‡‹@ */
     545/* 洗濯乾燥機 */
    567546#define EOJ_X2_WASHER_AND_DRYER 0xD3
    568547
    569548/*
    570  * Œ’NŠÖ˜A‹@ŠíƒNƒ‰ƒXƒOƒ‹[ƒv *
    571  */
    572 /* ‘̏dŒv */
     549 * 健康関連機器クラスグループ *
     550 */
     551/* 体重計 */
    573552#define EOJ_X2_WEIGHING_MACHINE 0x01
    574553
    575 /* ‘̉·Œv */
     554/* 体温計 */
    576555#define EOJ_X2_CLINICAL_THERMOMETER 0x02
    577556
    578 /* ŒŒˆ³Œv */
     557/* 血圧計 */
    579558#define EOJ_X2_BLOOD_PRESSURE_METER 0x03
    580559
    581 /* ŒŒ“œ’lŒv */
     560/* 血糖値計 */
    582561#define EOJ_X2_BLOOD_SUGAR_METER 0x04
    583562
    584 /* ‘ÌŽ‰–bŒv */
     563/* 体脂肪計 */
    585564#define EOJ_X2_BODY_FAT_METER 0x05
    586565
    587566/*
    588  * ŠÇ—E‘€ìŠÖ˜A‹@ŠíƒNƒ‰ƒXƒOƒ‹[ƒv *
    589  */
    590 /* ƒZƒLƒ
    591 ƒA’ʐM—p‹¤—LŒ®Ý’èƒm[ƒh */
     567 * 管理・操作関連機器クラスグループ *
     568 */
     569/* セキュア通信用共有鍵設定ノード */
    592570#define EOJ_X2_SECURE_COMMUNICATION_SHARED_KEY_SETUP_NODE 0xFC
    593571
    594 /* ƒXƒCƒbƒ`iJEMA/HA’[Žq‘Ήžj */
     572/* スイッチ(JEMA/HA端子対応) */
    595573#define EOJ_X2_SWITCH 0xFD
    596574
    597 /* Œg‘Ñ’[–– */
     575/* 携帯端末 */
    598576#define EOJ_X2_PORTABLE_TERMINAL 0xFE
    599577
    600 /* ƒRƒ“ƒgƒ[ƒ‰ */
     578/* コントローラ */
    601579#define EOJ_X2_CONTROLLER 0xFF
    602580
    603581/*
    604  * ‚`‚uŠÖ˜A‹@ŠíƒNƒ‰ƒXƒOƒ‹[ƒv *
    605  */
    606 /* ƒfƒBƒXƒvƒŒ[ */
     582 * AV関連機器クラスグループ *
     583 */
     584/* ディスプレー */
    607585#define EOJ_X2_DISPLAY 0x01
    608586
    609 /* ƒeƒŒƒr */
     587/* テレビ */
    610588#define EOJ_X2_TELEVISION 0x02
    611589
    612590/*
    613  * ƒvƒƒtƒ@ƒCƒ‹ƒNƒ‰ƒXƒOƒ‹[ƒv *
    614  */
    615 /* ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ */
     591 * プロファイルクラスグループ *
     592 */
     593/* ノードプロファイル */
    616594#define EOJ_X2_NODE_PROFILE 0xF0
    617595
  • uKadecot/trunk/ecnl_ssp/echonet_dbg.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *              ECHONET Lite ƒ^ƒXƒN ƒfƒoƒbƒOo—Í
     39 *              ECHONET Lite タスク デバッグ出力
    4440 */
    4541
     
    7167static ER _ecn_dbg_wai_syslog(void);
    7268/*
    73  *  syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â
     69 *  syslog()バッファに余裕ができるまで待つ
    7470 */
    7571static ER _ecn_dbg_wai_syslog(void)
     
    112108
    113109/*
    114  * ƒfƒoƒbƒOo—Í
    115  * —áF         ECN_DBG_PUT "task start" ECN_DBG_END;
     110 * デバッグ出力
     111 * 例:           ECN_DBG_PUT "task start" ECN_DBG_END;
    116112 */
    117113int _ecn_dbg_dbgput(const char *fp_srcloc, const char *fp_form, ...)
     
    122118#ifdef ECN_DBG_PUT_USE_STATIC
    123119 #ifndef SEM_ECN_DBG_PUT
    124         /* 256byteƒoƒbƒtƒ@8–{ƒ[ƒe[ƒVƒ‡ƒ“ */
     120        /* 256byteバッファ8本ローテーション */
    125121        static char                             a_buf[8][256];
    126122        static volatile uint_t  a_buf_idx = 0;
    127123        uint_t                                  a_buf_idx_a;
    128124 #else
    129         /* ƒZƒ}ƒtƒH‚ð—p‚¢‚āA1–{‚̃oƒbƒtƒ@ã‚É•¶Žš—ñ‚ð•À‚ׂĎg‚¤ */
     125        /* セマフォを用いて、1本のバッファ上に文字列を並べて使う */
    130126        static char                             a_buf[1024];
    131127        static volatile uint_t  a_buf_pos = 0;
     
    152148        p_buf = a_buf[a_buf_idx_a & 0x07];
    153149 #else
    154         if (sizeof(a_buf) - a_buf_pos < 80)     /* Žc‚肪80byte–¢–ž‚É‚È‚Á‚½‚çAæ“ª‚É–ß‚é */
     150        if (sizeof(a_buf) - a_buf_pos < 80)     /* 残りが80byte未満になったら、先頭に戻る */
    155151                a_buf_pos = 0;
    156152        p_buf = a_buf + a_buf_pos;
    157153        a_buf_len = sizeof(a_buf) - a_buf_pos - 1;
    158         if (80 * 2 <= a_buf_len)        /* 80byte*2ˆÈã‚Ì—]”’‚ª‚ ‚邤‚¿‚́A––”ö80byte‚ðŽc‚· */
     154        if (80 * 2 <= a_buf_len)        /* 80byte*2以上の余白があるうちは、末尾80byteを残す */
    159155                a_buf_len -= 80;
    160156 #endif /* #ifdef SEM_ECN_DBG_PUT */
     
    180176 #ifdef SEM_ECN_DBG_PUT
    181177        a_buf_len = strlen(p_buf) + 1;
    182         /* Žc‚肪80byte–¢–ž‚É‚È‚Á‚½‚ç */
     178        /* 残りが80byte未満になったら */
    183179        if (sizeof(a_buf) - a_buf_pos - a_buf_len < 80) {
    184                 /* æ“ª‚É–ß‚é */
     180                /* 先頭に戻る */
    185181                a_buf_pos = 0;
    186182        } else {
     
    190186#endif
    191187
    192         _ECN_DBG_WAI_SYSLOG; /* syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â */
     188        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    193189
    194190#ifdef SEM_ECN_DBG_PUT
     
    206202}
    207203
    208 /* ECN_ENOD_ID‚Ì•¶Žš—ñ•ÏŠ· */
     204/* ECN_ENOD_IDの文字列変換 */
    209205const char *_ecn_dbg_enod2str(ECN_ENOD_ID fa_enod_id)
    210206{
     
    254250
    255251/*
    256  * ƒoƒCƒiƒŠƒ_ƒ“ƒvo—Í
     252 * バイナリダンプ出力
    257253 */
    258254void _ecn_dbg_bindmp(const uint8_t *buffer, size_t len)
    259255{
    260         /* static—̈æ‚̃oƒbƒtƒ@‚ðØ‚è‘Ö‚¦‚éŒÂ”(2^n) */
     256        /* static領域のバッファを切り替える個数(2^n) */
    261257        #define _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT (4)
    262258/*      */
     
    264260 #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
    265261  #undef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
    266   /* ƒZƒ}ƒtƒH(SEM_ECN_DBG_BINDMP)‚ª’è‹`‚³‚ê‚Ä‚¢‚éê‡Aƒoƒbƒtƒ@Ø‚è‘Ö‚¦‚Í•s—v‚È‚Ì‚Åundef */
     262  /* セマフォ(SEM_ECN_DBG_BINDMP)が定義されている場合、バッファ切り替えは不要なのでundef */
    267263 #endif
    268264#endif
    269265#ifndef _ECN_FBS_DBG_BINDMP_BUFLEN
    270  /* ƒoƒbƒtƒ@ƒTƒCƒY(bindmp’†‚Ì1s‚ªŽû‚Ü‚éƒTƒCƒY) */
     266 /* バッファサイズ(bindmp中の1行が収まるサイズ) */
    271267 #define _ECN_FBS_DBG_BINDMP_BUFLEN (80)
    272268#endif
    273269#ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
    274         /* static—̈æ‚̃oƒbƒtƒ@‚ðØ‚è‘Ö‚¦‚邽‚ß‚ÌŠÇ——p•Ï” */
     270        /* static領域のバッファを切り替えるための管理用変数 */
    275271        static volatile uint8_t a_idx_vol = 0;
    276         /* static—̈æ‚̃oƒbƒtƒ@Ø‚è‘Ö‚¦—̈æ */
     272        /* static領域のバッファ切り替え領域 */
    277273        static char a_buf_area[1 << _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT][_ECN_FBS_DBG_BINDMP_BUFLEN];
    278274        uint8_t a_idx;
    279275        char *a_buf;
    280276#else
    281         /* static—̈æ‚̃oƒbƒtƒ@—̈æ */
     277        /* static領域のバッファ領域 */
    282278        static char a_buf[_ECN_FBS_DBG_BINDMP_BUFLEN];
    283279#endif
    284         const uint8_t *p = buffer;                      /* “Ç‚ÝŽæ‚èƒ|ƒCƒ“ƒ^ */
     280        const uint8_t *p = buffer;                      /* 読み取りポインタ */
    285281        int i, a_blk, a_blk_max, a_pos = 0;
    286282        const T_ECN_EDT_HDR *p_req_esv;
     
    300296        }
    301297        #ifndef ECN_DBG_BINDMP_MAXLEN
    302          /* bindmpo—͂̍őåƒTƒCƒY */
     298         /* bindmp出力の最大サイズ */
    303299         #define ECN_DBG_BINDMP_MAXLEN 1600
    304300        #endif
     
    315311        for (a_blk = 0; p && a_blk < a_blk_max; p = ((T_ECN_FST_BLK *)buffer)->lnk.p_sub[a_blk++]->dat) {
    316312                if (0 < a_blk) {
    317                         _ECN_DBG_WAI_SYSLOG; /* syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â */
     313                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    318314                        syslog(LOG_NOTICE, "p_sub[%d] (0x%08X)", a_blk - 1, p);
    319315                }
     
    322318                        if (i % 16 == 0) {
    323319                                if (a_buf[0]) {
    324                                         _ECN_DBG_WAI_SYSLOG; /* syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â */
     320                                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    325321                                        syslog(LOG_NOTICE, "%s", a_buf);
    326322                                }
     
    342338                }
    343339                if (a_buf[0]) {
    344                         _ECN_DBG_WAI_SYSLOG; /* syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â */
     340                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    345341                        syslog(LOG_NOTICE, "%s", a_buf);
    346342                }
     
    353349                case ECN_MSG_ECHONET:
    354350                        p_req_esv = &((const T_ECN_FST_BLK *)buffer)->d.t_esv;
    355                         _ECN_DBG_WAI_SYSLOG; /* syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â */
     351                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    356352                        syslog(LOG_NOTICE, " sender: %d %s, target: %d %s",
    357353                                ((T_ECN_FST_BLK *)buffer)->hdr.sender, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.sender),
    358354                                ((T_ECN_FST_BLK *)buffer)->hdr.target, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.target));
    359                         _ECN_DBG_WAI_SYSLOG; /* syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â */
     355                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    360356                        syslog(LOG_NOTICE, " ecn_hdr: 0x%02X 0x%02X 0x%04X", p_req_esv->ecn_hdr.ehd1, p_req_esv->ecn_hdr.ehd2, p_req_esv->ecn_hdr.tid);
    361                         _ECN_DBG_WAI_SYSLOG; /* syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â */
     357                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    362358                        syslog(LOG_NOTICE, " edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)",
    363359                                p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3,
    364360                                p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3,
    365361                                p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv));
    366                         _ECN_DBG_WAI_SYSLOG; /* syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â */
     362                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    367363                        syslog(LOG_NOTICE, " ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc);
    368                         _ECN_DBG_WAI_SYSLOG; /* syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â */
     364                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    369365                        syslog(LOG_NOTICE, " cur(blk/pos): wr %d/%d, rd %d/%d",
    370366                                (int)((T_ECN_FST_BLK *)buffer)->hdr.wr.blk,
     
    403399        && ((const T_ECN_FST_BLK *)buffer)->bin[1] == 0x81) {
    404400                p_req_esv = (const T_ECN_EDT_HDR *)&((const T_ECN_FST_BLK *)buffer)->bin[0];
    405                 _ECN_DBG_WAI_SYSLOG; /* syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â */
     401                _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    406402                syslog(LOG_NOTICE, " ecn_hdr: 0x%02X 0x%02X 0x%04X", p_req_esv->ecn_hdr.ehd1, p_req_esv->ecn_hdr.ehd2, p_req_esv->ecn_hdr.tid);
    407                 _ECN_DBG_WAI_SYSLOG; /* syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â */
     403                _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    408404                syslog(LOG_NOTICE, " edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)",
    409405                        p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3,
    410406                        p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3,
    411407                        p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv));
    412                 _ECN_DBG_WAI_SYSLOG; /* syslog()ƒoƒbƒtƒ@‚É—]—T‚ª‚Å‚«‚é‚Ü‚Å‘Ò‚Â */
     408                _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    413409                syslog(LOG_NOTICE, " ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc);
    414410        }
     
    419415
    420416/*
    421  * ECHONET LiteƒT[ƒrƒXƒR[ƒh•¶Žš—ñ•ÏŠ·
     417 * ECHONET Liteサービスコード文字列変換
    422418 */
    423419const char *_ecn_dbg_esv2str(uint8_t fa_esv)
    424420{
    425421        switch (fa_esv) {
    426         case ESV_SET_I_SNA:             return "ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹•s‰Â‰ž“š";                      /* 0x50 */
    427         case ESV_SET_C_SNA:             return "ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹•s‰Â‰ž“š";                      /* 0x51 */
    428         case ESV_GET_SNA:               return "ƒvƒƒpƒeƒB’l“ǂݏo‚µ•s‰Â‰ž“š";                          /* 0x52 */
    429         case ESV_INF_SNA:               return "ƒvƒƒpƒeƒB’l’Ê’m•s‰Â‰ž“š";                                      /* 0x53 */
    430         case ESV_SET_GET_SNA:   return "ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ•s‰Â‰ž“š";        /* 0x5E */
    431         case ESV_SET_I:                 return "ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj";          /* 0x60 */
    432         case ESV_SET_C:                 return "ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj";            /* 0x61 */
    433         case ESV_GET:                   return "ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹";                                      /* 0x62 */
    434         case ESV_INF_REQ:               return "ƒvƒƒpƒeƒB’l’Ê’m—v‹";                                          /* 0x63 */
    435         case ESV_SET_GET:               return "ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹";            /* 0x6E */
    436         case ESV_SET_RES:               return "ƒvƒƒpƒeƒB’l‘‚«ž‚݉ž“š";                                      /* 0x71 */
    437         case ESV_GET_RES:               return "ƒvƒƒpƒeƒB’l“ǂݏo‚µ‰ž“š";                                      /* 0x72 */
    438         case ESV_INF:                   return "ƒvƒƒpƒeƒB’l’Ê’m";                                                      /* 0x73 */
    439         case ESV_INFC:                  return "ƒvƒƒpƒeƒB’l’Ê’mi‰ž“š—vj";                            /* 0x74 */
    440         case ESV_SET_GET_RES:   return "ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ‰ž“š";            /* 0x7E */
    441         case ESV_INFC_RES:              return "ƒvƒƒpƒeƒB’l’Ê’m‰ž“š";                                          /* 0x7A */
     422        case ESV_SET_I_SNA:             return "プロパティ値書き込み要求不可応答";                      /* 0x50 */
     423        case ESV_SET_C_SNA:             return "プロパティ値書き込み要求不可応答";                      /* 0x51 */
     424        case ESV_GET_SNA:               return "プロパティ値読み出し不可応答";                                /* 0x52 */
     425        case ESV_INF_SNA:               return "プロパティ値通知不可応答";                                  /* 0x53 */
     426        case ESV_SET_GET_SNA:   return "プロパティ値書き込み・読み出し不可応答";   /* 0x5E */
     427        case ESV_SET_I:                 return "プロパティ値書き込み要求(応答不要)";            /* 0x60 */
     428        case ESV_SET_C:                 return "プロパティ値書き込み要求(応答要)";             /* 0x61 */
     429        case ESV_GET:                   return "プロパティ値読み出し要求";                                  /* 0x62 */
     430        case ESV_INF_REQ:               return "プロパティ値通知要求";                                            /* 0x63 */
     431        case ESV_SET_GET:               return "プロパティ値書き込み・読み出し要求";             /* 0x6E */
     432        case ESV_SET_RES:               return "プロパティ値書き込み応答";                                  /* 0x71 */
     433        case ESV_GET_RES:               return "プロパティ値読み出し応答";                                  /* 0x72 */
     434        case ESV_INF:                   return "プロパティ値通知";                                                      /* 0x73 */
     435        case ESV_INFC:                  return "プロパティ値通知(応答要)";                         /* 0x74 */
     436        case ESV_SET_GET_RES:   return "プロパティ値書き込み・読み出し応答";             /* 0x7E */
     437        case ESV_INFC_RES:              return "プロパティ値通知応答";                                            /* 0x7A */
    442438        default:
    443439                return "(unknown)";
  • uKadecot/trunk/ecnl_ssp/echonet_dbg.cfg

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *  ƒlƒbƒgƒ[ƒN‘ΉžƒTƒ“ƒvƒ‹ƒvƒƒOƒ‰ƒ€(1)‚Ì
    44  *  ƒVƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ
    45 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     39 *  ネットワーク対応サンプルプログラム(1)の
     40 *  システムコンフィギュレーションファイル
    4641 */
    4742
     
    5550/* INCLUDE("tinet/tinet_asp.cfg"); // */
    5651
    57 /* ƒZƒ}ƒtƒH */
     52/* セマフォ */
    5853
    5954CRE_SEM(SEM_ECN_DBG_PUT, { TA_TPRI, 1, 1 });
  • uKadecot/trunk/ecnl_ssp/echonet_dbg.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *              ECHONET Lite ƒ^ƒXƒN ƒfƒoƒbƒOo—Í
     39 *              ECHONET Lite タスク デバッグ出力
    4440 */
    4541
     
    5652#define ECN_DBG_PUT syslog(LOG_WARNING,
    5753#define ECN_DBG_END )
    58 /* —áF         ECN_DBG_PUT "task start" ECN_DBG_END; */
     54/* 例:           ECN_DBG_PUT "task start" ECN_DBG_END; */
    5955#else
    6056#define ECN_DBG_PUT for (;0;
     
    6258#endif
    6359
    64 /* ƒfƒoƒbƒOo—Í(CARP) */
     60/* デバッグ出力(CARP) */
    6561#ifdef ECN_CAP_PUT_ENA
    6662#define ECN_CAP_PUT syslog(LOG_DEBUG,
    6763#define ECN_CAP_END )
    68 /* —áF         ECN_CAP_PUT "task start" ECN_CAP_END; */
     64/* 例:           ECN_CAP_PUT "task start" ECN_CAP_END; */
    6965#else
    7066#define ECN_CAP_PUT for (;0;
  • uKadecot/trunk/ecnl_ssp/echonet_fbs.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  * ŒÅ’è’·ƒoƒbƒtƒ@‰Â•Ï’·ƒXƒgƒŠ[ƒ€
     39 * 固定長バッファ可変長ストリーム
    4440 */
    4541
     
    353349}
    354350
    355 /* ƒƒ‚ƒŠƒuƒƒbƒNŽæ“¾ ok:ƒ|ƒCƒ“ƒ^ NG:NULL */
     351/* メモリブロック取得 ok:ポインタ NG:NULL */
    356352void *_ecn_fbs_mbx_get(ECN_FBS_SIZE_T fa_req_size)
    357353{
     
    363359}
    364360
    365 /* ƒƒ‚ƒŠƒuƒƒbƒN‰ð•ú */
     361/* メモリブロック解放 */
    366362ER _ecn_fbs_mbx_rel(void *p)
    367363{
     
    369365}
    370366
    371 /* —̈æŠm•Û */
     367/* 領域確保 */
    372368ER _ecn_fbs_cre(ECN_FBS_SIZE_T fa_req_size, ECN_FBS_ID *fp_id)
    373369{
     
    375371}
    376372
    377 /* —̈æ‰ð•ú */
     373/* 領域解放 */
    378374ER _ecn_fbs_del(ECN_FBS_ID fa_id)
    379375{
     
    381377}
    382378
    383 /* •ÛŽƒf[ƒ^‚Ì—L–³ */
     379/* 保持データの有無 */
    384380bool_t _ecn_fbs_exist_data(ECN_FBS_ID fa_id)
    385381{
     
    387383}
    388384
    389 /* •ÛŽƒf[ƒ^’·‚̎擾 */
     385/* 保持データ長の取得 */
    390386ECN_FBS_SSIZE_T _ecn_fbs_get_datalen(ECN_FBS_ID fa_id)
    391387{
     
    393389}
    394390
    395 /* “Ç‚ÝŽæ‚èƒJ[ƒ\ƒ‹‚̈ʒuŽæ“¾ */
     391/* 読み取りカーソルの位置取得 */
    396392ECN_FBS_SSIZE_T _ecn_fbs_get_rpos(ECN_FBS_ID fa_id)
    397393{
     
    399395}
    400396
    401 /* “Ç‚ÝŽæ‚èƒJ[ƒ\ƒ‹‚̈ʒuÝ’è */
     397/* 読み取りカーソルの位置設定 */
    402398ER _ecn_fbs_set_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_pos)
    403399{
    404         if (fa_id.ptr->hdr.length <= (unsigned int)fa_pos)      /* ˆÊ’uŽw’肪‘å‚«‚·‚¬‚é */
     400        if (fa_id.ptr->hdr.length <= (unsigned int)fa_pos)      /* 位置指定が大きすぎる */
    405401                return E_PAR;
    406402
     
    410406}
    411407
    412 /* “Ç‚ÝŽæ‚èƒJ[ƒ\ƒ‹‚̈ʒuˆÚ“® */
     408/* 読み取りカーソルの位置移動 */
    413409ER _ecn_fbs_seek_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek)
    414410{
     
    420416}
    421417
    422 /* ”CˆÓŽw’èˆÊ’u‚Ì1byte“Ç‚ÝŽæ‚è */
     418/* 任意指定位置の1byte読み取り */
    423419int _ecn_fbs_peek(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek)
    424420{
     
    431427}
    432428
    433 /* ”CˆÓŽw’èˆÊ’u‚Ì1byte‘‚«ž‚Ý */
     429/* 任意指定位置の1byte書き込み */
    434430ER _ecn_fbs_poke(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek, int fa_val)
    435431{
     
    442438}
    443439
    444 /* ƒf[ƒ^’ljÁ */
     440/* データ追加 */
    445441ER _ecn_fbs_add_data(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len)
    446442{
     
    452448}
    453449
    454 /* ƒf[ƒ^’ljÁ(—̈æ‚ðŽ©“®“I‚ÉŠg’£‚·‚é) */
     450/* データ追加(領域を自動的に拡張する) */
    455451ER _ecn_fbs_add_data_ex(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len)
    456452{
     
    459455}
    460456
    461 /* ƒf[ƒ^Žæ“¾ */
     457/* データ取得 */
    462458ER _ecn_fbs_get_data(ECN_FBS_ID fa_id, void *fa_buf, ECN_FBS_SSIZE_T fa_maxlen, ECN_FBS_SSIZE_T *p_len)
    463459{
  • uKadecot/trunk/ecnl_ssp/echonet_fbs.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
    32  *
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
     28 *
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  * ŒÅ’è’·ƒoƒbƒtƒ@‰Â•Ï’·ƒXƒgƒŠ[ƒ€
     39 * 固定長バッファ可変長ストリーム
    4440 */
    4541
     
    5551
    5652#ifndef NUM_ECHONET_MEMPOOL_BLOCK
    57 #define NUM_ECHONET_MEMPOOL_BLOCK (60)          /* “d•¶—pƒƒ‚ƒŠƒuƒƒbƒN‚̐” */
     53#define NUM_ECHONET_MEMPOOL_BLOCK (60)          /* 電文用メモリブロックの数 */
    5854#endif /* NUM_ECHONET_MEMPOOL_BLOCK */
    5955
    6056#ifndef ECHONET_MEMPOOL_BLOCK_SIZE
    61 #define ECHONET_MEMPOOL_BLOCK_SIZE (256)        /* “d•¶—pƒƒ‚ƒŠƒuƒƒbƒN‚̃TƒCƒY */
     57#define ECHONET_MEMPOOL_BLOCK_SIZE (256)        /* 電文用メモリブロックのサイズ */
    6258#endif /* ECHONET_MEMPOOL_BLOCK_SIZE */
    6359
    64 typedef unsigned int ECN_FBS_SIZE_T;    /* size_t‘Š“–  */
    65 typedef int ECN_FBS_SSIZE_T;                    /* ssize_t‘Š“– */
    66 
    67 /* T_EDATAŠÇ——̈æƒTƒCƒY */
     60typedef unsigned int ECN_FBS_SIZE_T;    /* size_t相当  */
     61typedef int ECN_FBS_SSIZE_T;                    /* ssize_t相当 */
     62
     63/* T_EDATA管理領域サイズ */
    6864#ifdef TARGET_KERNEL_ASP
    6965#define DEF_ECN_EDT_HDR_LEN (sizeof(T_MSG))
     
    7268#endif
    7369
    74 /* ŠÇ——̈æƒTƒCƒY(64byte - sizeof(T_MSG)) */
     70/* 管理領域サイズ(64byte - sizeof(T_MSG)) */
    7571/* #define DEF_ECN_FBS_LIB_HDR_LEN ((ECHONET_MEMPOOL_BLOCK_SIZE + sizeof(int) - 1)>> 2) // */
    7672#define DEF_ECN_FBS_LIB_HDR_LEN (64 - DEF_ECN_EDT_HDR_LEN)
    7773
    78 /* ŠÇ——̈æ‚ðŠÜ‚ÞƒuƒƒbƒN‚É•ÛŽ‚·‚éƒf[ƒ^ƒTƒCƒY */
     74/* 管理領域を含むブロックに保持するデータサイズ */
    7975#define DEF_ECN_FBS_FST_DAT_LEN (64)
    8076
    81 /* ƒŠƒ“ƒNƒ|ƒCƒ“ƒ^”z—ñ‚̃TƒCƒY(byte) */
     77/* リンクポインタ配列のサイズ(byte) */
    8278#define DEF_ECN_FBS_LNK_LEN (ECHONET_MEMPOOL_BLOCK_SIZE - DEF_ECN_EDT_HDR_LEN - DEF_ECN_FBS_LIB_HDR_LEN - DEF_ECN_FBS_FST_DAT_LEN)
    8379
    84 /* ŒÅ’è’·ƒoƒbƒtƒ@Å‘åƒTƒCƒY */
     80/* 固定長バッファ最大サイズ */
    8581#define DEF_ECN_FBS_BUF_MAXLEN ((DEF_ECN_FBS_LNK_LEN / sizeof(void *)) * ECHONET_MEMPOOL_BLOCK_SIZE + DEF_ECN_FBS_FST_DAT_LEN)
    8682
    87 /* Žq—v‘fƒoƒbƒtƒ@‚̃TƒCƒY */
     83/* 子要素バッファのサイズ */
    8884#define DEF_ECN_FBS_SUB_BUF_LEN ECHONET_MEMPOOL_BLOCK_SIZE
    8985
    90 /* “d•¶‚ÌŽí•Ê(“à—e‚͉¼) */
     86/* 電文の種別(内容は仮) */
    9187typedef enum
    9288{
    93         ECN_FBS_TYPE_BLANK              =       0,              /* –¢Žg—pƒXƒgƒŠ[ƒ€ */
    94         ECN_FBS_TYPE_INTERNAL   =       1,              /* “à•”ƒƒbƒZ[ƒW */
    95         ECN_FBS_TYPE_ECHONET    =       2               /* ECHONET“d•¶ */
     89        ECN_FBS_TYPE_BLANK              =       0,              /* 未使用ストリーム */
     90        ECN_FBS_TYPE_INTERNAL   =       1,              /* 内部メッセージ */
     91        ECN_FBS_TYPE_ECHONET    =       2               /* ECHONET電文 */
    9692} TA_ECN_MSG_TYPE;
    9793
    98 /* ƒŠƒ“ƒNƒ|ƒCƒ“ƒ^”z—ñ‚É—ñ‹“‚³‚ê‚éAŽq—v‘fƒoƒbƒtƒ@ */
     94/* リンクポインタ配列に列挙される、子要素バッファ */
    9995typedef struct
    10096{
     
    10298} T_ECN_SUB_BLK;
    10399
    104 /* ƒŠƒ“ƒNƒ|ƒCƒ“ƒ^”z—ñ */
     100/* リンクポインタ配列 */
    105101typedef union
    106102{
     
    109105} T_ECN_FBS_LNK;
    110106
    111 /* ŠÇ——̈æ(64byte - sizeof(T_MSG)) */
     107/* 管理領域(64byte - sizeof(T_MSG)) */
    112108typedef struct
    113109{
    114         uint16_t        length;                 /* ƒƒbƒZ[ƒW’· */
    115         uint16_t        type;                   /* ƒƒbƒZ[ƒWƒ^ƒCƒv */
     110        uint16_t        length;                 /* メッセージ長 */
     111        uint16_t        type;                   /* メッセージタイプ */
    116112        union{
    117                 ECN_ENOD_ID sender;             /* ‘—MŒ³ƒm[ƒhIDiECHONET“d•¶j */
    118                 ID sender_mbxid;                /* ‘—MŒ³ƒ[ƒ‹ƒ{ƒbƒNƒXIDi“à•”ƒƒbƒZ[ƒWj */
     113                ECN_ENOD_ID sender;             /* 送信元ノードID(ECHONET電文) */
     114                ID sender_mbxid;                /* 送信元メールボックスID(内部メッセージ) */
    119115        };
    120116        union{
    121                 ECN_ENOD_ID target;             /* ‘—Mæƒm[ƒhIDiECHONET“d•¶j */
    122                 ID target_mbxid;                /* ‘—Mæƒ[ƒ‹ƒ{ƒbƒNƒXIDi“à•”ƒƒbƒZ[ƒWj */
     117                ECN_ENOD_ID target;             /* 送信先ノードID(ECHONET電文) */
     118                ID target_mbxid;                /* 送信先メールボックスID(内部メッセージ) */
    123119        };
    124120        union{
    125                 ECN_ENOD_ID reply;              /* •ÔMæƒm[ƒhIDiECHONET“d•¶j */
    126                 ID reply_mbxid;                 /* •ÔMæƒ[ƒ‹ƒ{ƒbƒNƒXIDi“à•”ƒƒbƒZ[ƒWj */
     121                ECN_ENOD_ID reply;              /* 返信先ノードID(ECHONET電文) */
     122                ID reply_mbxid;                 /* 返信先メールボックスID(内部メッセージ) */
    127123        };
    128124
    129         int                     rd;                             /*      “Ç‚ÝŽæ‚èƒwƒbƒhî•ñ      */
    130         int                     wr;                             /*      ‘‚«ž‚݃wƒbƒhî•ñ      */
     125        int                     rd;                             /*      読み取りヘッド情報       */
     126        int                     wr;                             /*      書き込みヘッド情報       */
    131127} T_ECN_FBS_HDR;
    132128
    133 /* ŠÇ——̈æ‚ðŠÜ‚ÞƒuƒƒbƒN‚̍\‘¢ */
     129/* 管理領域を含むブロックの構造 */
    134130typedef struct
    135131{
    136132        uint8_t _msg[DEF_ECN_EDT_HDR_LEN];      /* T_MSG */
    137         T_ECN_FBS_HDR   hdr;    /*      ŠÇ——Ìˆæ  64byte  - sizeof(T_MSG)       */
     133        T_ECN_FBS_HDR   hdr;    /*      管理領域  64byte  - sizeof(T_MSG)   */
    138134        uint8_t                 _gap[DEF_ECN_FBS_LIB_HDR_LEN - sizeof(T_ECN_FBS_HDR)];
    139         T_ECN_FBS_LNK   lnk;    /*      ƒŠƒ“ƒNƒ|ƒCƒ“ƒ^”z—ñ      128byte                 */
     135        T_ECN_FBS_LNK   lnk;    /*      リンクポインタ配列       128byte                 */
    140136        uint8_t                 payload[DEF_ECN_FBS_FST_DAT_LEN];
    141137} T_ECN_FST_BLK;
     
    147143} ECN_FBS_ID;
    148144
    149 /* ƒƒbƒZ[ƒWƒLƒ
    150 [ */
     145/* メッセージキュー */
    151146typedef struct ecn_fbs_queue
    152147{
    153         T_ECN_FST_BLK   *pk_head;               /* æ“ª‚̃ƒbƒZ[ƒW */
    154         T_ECN_FST_BLK   *pk_last;               /* ––”ö‚̃ƒbƒZ[ƒW */
     148        T_ECN_FST_BLK   *pk_head;               /* 先頭のメッセージ */
     149        T_ECN_FST_BLK   *pk_last;               /* 末尾のメッセージ */
    155150} T_ECN_FBS_QUEUE;
    156151
    157 /* ƒƒ‚ƒŠƒuƒƒbƒNŽæ“¾ ok:ƒ|ƒCƒ“ƒ^ NG:NULL */
     152/* メモリブロック取得 ok:ポインタ NG:NULL */
    158153void *_ecn_fbs_mbx_get(ECN_FBS_SIZE_T fa_req_size);
    159154
    160 /* ƒƒ‚ƒŠƒuƒƒbƒN‰ð•ú ok:0 NG:”ñ0 */
     155/* メモリブロック解放 ok:0 NG:非0 */
    161156ER _ecn_fbs_mbx_rel(void *p);
    162157
    163158/*
    164  * —̈æŠm•Û
    165  *      ˆø”
    166  *              ECN_FBS_SIZE_T  fa_req_size             —v‹ƒoƒbƒtƒ@ƒTƒCƒY(byte)
     159 * 領域確保
     160 *      引数
     161 *              ECN_FBS_SIZE_T  fa_req_size             要求バッファサイズ(byte)
    167162 *                                                                              max: DEF_ECN_FBS_BUF_MAXLEN
    168  *              ECN_FBS_ID              *fp_id                  Šm•Û‚µ‚½FBS-ID‚ÌŠi”[æ
    169  *      –ß‚è’l
    170  *              ER                              0:ok ”ñ0:NG
     163 *              ECN_FBS_ID              *fp_id                  確保したFBS-IDの格納先
     164 *      戻り値
     165 *              ER                              0:ok 0:NG
    171166 */
    172167ER _ecn_fbs_cre(ECN_FBS_SIZE_T fa_req_size, ECN_FBS_ID *fp_id);
    173168
    174169/*
    175  * —̈æ‰ð•ú
    176  *      ˆø”
    177  *              ecn_fbs_idŒ^    Šm•Û‚µ‚½FBS-ID
    178  *      –ß‚è’l
    179  *              ER                              0:ok, ”ñ0:NG
     170 * 領域解放
     171 *      引数
     172 *              ecn_fbs_id型     確保したFBS-ID
     173 *      戻り値
     174 *              ER                              0:ok, 0:NG
    180175 */
    181176ER _ecn_fbs_del(ECN_FBS_ID fa_id);
    182177
    183178/*
    184  * •ÛŽƒf[ƒ^‚Ì—L–³
    185  *      ˆø”
    186  *              ecn_fbs_idŒ^    Šm•Û‚µ‚½FBS-ID
    187  *      –ß‚è’l
    188  *              bool_t                  0:–³‚µ, 1:‚ ‚è
     179 * 保持データの有無
     180 *      引数
     181 *              ecn_fbs_id型     確保したFBS-ID
     182 *      戻り値
     183 *              bool_t                  0:無し, 1:あり
    189184 */
    190185bool_t _ecn_fbs_exist_data(ECN_FBS_ID fa_id);
    191186
    192187/*
    193  * •ÛŽƒf[ƒ^’·‚̎擾
    194  *      ˆø”
    195  *              ecn_fbs_idŒ^    Šm•Û‚µ‚½FBS-ID
    196  *      –ß‚è’l
    197  *              ECN_FBS_SSIZE_T •ÛŽ‚µ‚Ä‚¢‚éƒf[ƒ^‚Ì’·‚³(byte) -1:NG
     188 * 保持データ長の取得
     189 *      引数
     190 *              ecn_fbs_id型     確保したFBS-ID
     191 *      戻り値
     192 *              ECN_FBS_SSIZE_T 保持しているデータの長さ(byte) -1:NG
    198193 */
    199194ECN_FBS_SSIZE_T _ecn_fbs_get_datalen(ECN_FBS_ID fa_id);
    200195
    201196/*
    202  * “Ç‚ÝŽæ‚èƒJ[ƒ\ƒ‹‚̈ʒuŽæ“¾
    203  *      ˆø”
    204  *              ecn_fbs_idŒ^    Šm•Û‚µ‚½FBS-ID
    205  *      –ß‚è’l
    206  *              ECN_FBS_SIZE_T  æ“ª‚©‚ç‚̐â‘Έʒu -1:NG
     197 * 読み取りカーソルの位置取得
     198 *      引数
     199 *              ecn_fbs_id型     確保したFBS-ID
     200 *      戻り値
     201 *              ECN_FBS_SIZE_T  先頭からの絶対位置 -1:NG
    207202 */
    208203ECN_FBS_SSIZE_T _ecn_fbs_get_rpos(ECN_FBS_ID fa_id);
    209204
    210205/*
    211  * “Ç‚ÝŽæ‚èƒJ[ƒ\ƒ‹‚̈ʒuÝ’è
    212  *      ˆø”
    213  *              ecn_fbs_idŒ^    Šm•Û‚µ‚½FBS-ID
    214  *              ECN_FBS_SIZE_T  fa_pos  Ý’è‚·‚éˆÊ’u(æ“ª‚©‚ç‚̐â‘Έʒu)
    215  *      –ß‚è’l
    216  *              ER                              0:ok, ”ñ0:NG
     206 * 読み取りカーソルの位置設定
     207 *      引数
     208 *              ecn_fbs_id型     確保したFBS-ID
     209 *              ECN_FBS_SIZE_T  fa_pos  設定する位置(先頭からの絶対位置)
     210 *      戻り値
     211 *              ER                              0:ok, 0:NG
    217212 */
    218213ER _ecn_fbs_set_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_pos);
    219214
    220215/*
    221  * “Ç‚ÝŽæ‚èƒJ[ƒ\ƒ‹‚̈ʒuˆÚ“®
    222  *      ˆø”
    223  *              ecn_fbs_idŒ^    Šm•Û‚µ‚½FBS-ID
    224  *              ECN_FBS_SIZE_T  fa_seek ˆÚ“®—Ê(Œ»óA‘Oi‚Ì‚Ý)
    225  *      –ß‚è’l
    226  *              ER                              0:ok, ”ñ0:NG
     216 * 読み取りカーソルの位置移動
     217 *      引数
     218 *              ecn_fbs_id型     確保したFBS-ID
     219 *              ECN_FBS_SIZE_T  fa_seek 移動量(現状、前進のみ)
     220 *      戻り値
     221 *              ER                              0:ok, 0:NG
    227222 */
    228223ER _ecn_fbs_seek_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek);
    229224
    230225/*
    231  * ”CˆÓŽw’èˆÊ’u‚Ì1byte“Ç‚ÝŽæ‚è
     226 * 任意指定位置の1byte読み取り
    232227 */
    233228int _ecn_fbs_peek(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek);
    234229
    235230/*
    236  * ”CˆÓŽw’èˆÊ’u‚Ì1byte‘‚«ž‚Ý
     231 * 任意指定位置の1byte書き込み
    237232 */
    238233ER _ecn_fbs_poke(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek, int fa_val);
    239234
    240235/*
    241  * ƒf[ƒ^’ljÁ
    242  *      ˆø”
    243  *              ecn_fbs_idŒ^    Šm•Û‚µ‚½FBS-ID
    244  *              const void *    fa_dat  ’ljÁ‚·‚éƒf[ƒ^
    245  *              ECN_FBS_SSIZE_T fa_len  ’ljÁ‚·‚é’·‚³(byte)
    246  *      –ß‚è’l
    247  *              ER                              0:ok, ”ñ0:NG
     236 * データ追加
     237 *      引数
     238 *              ecn_fbs_id型     確保したFBS-ID
     239 *              const void *    fa_dat  追加するデータ
     240 *              ECN_FBS_SSIZE_T fa_len  追加する長さ(byte)
     241 *      戻り値
     242 *              ER                              0:ok, 0:NG
    248243 */
    249244ER _ecn_fbs_add_data(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len);
    250245
    251246/*
    252  * ƒf[ƒ^’ljÁ(—̈æ‚ðŽ©“®“I‚ÉŠg’£‚·‚é)
    253  *      ˆø”
    254  *              ecn_fbs_idŒ^    Šm•Û‚µ‚½FBS-ID
    255  *              const void *    fa_dat  ’ljÁ‚·‚éƒf[ƒ^
    256  *              ECN_FBS_SSIZE_T fa_len  ’ljÁ‚·‚é’·‚³(byte)
    257  *      –ß‚è’l
    258  *              ER                              0:ok, ”ñ0:NG
     247 * データ追加(領域を自動的に拡張する)
     248 *      引数
     249 *              ecn_fbs_id型     確保したFBS-ID
     250 *              const void *    fa_dat  追加するデータ
     251 *              ECN_FBS_SSIZE_T fa_len  追加する長さ(byte)
     252 *      戻り値
     253 *              ER                              0:ok, 0:NG
    259254 */
    260255ER _ecn_fbs_add_data_ex(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len);
    261256
    262257/*
    263  * ƒf[ƒ^Žæ“¾
    264  *      ˆø”
    265  *              ecn_fbs_idŒ^    Šm•Û‚µ‚½FBS-ID
    266  *              void *                  fa_buf          Žæ“¾‚·‚éƒoƒbƒtƒ@
    267  *              ECN_FBS_SSIZE_T fa_maxlen       Žæ“¾‚·‚é’·‚³(byte)
    268  *              ECN_FBS_SSIZE_T *p_len          Žæ“¾‚µ‚½’·‚³(byte)
    269  *      –ß‚è’l
    270  *              ER                              0:ok, ”ñ0:NG
     258 * データ取得
     259 *      引数
     260 *              ecn_fbs_id型     確保したFBS-ID
     261 *              void *                  fa_buf          取得するバッファ
     262 *              ECN_FBS_SSIZE_T fa_maxlen       取得する長さ(byte)
     263 *              ECN_FBS_SSIZE_T *p_len          取得した長さ(byte)
     264 *      戻り値
     265 *              ER                              0:ok, 0:NG
    271266 */
    272267ER _ecn_fbs_get_data(ECN_FBS_ID fa_id, void *fa_buf, ECN_FBS_SSIZE_T fa_maxlen,
  • uKadecot/trunk/ecnl_ssp/echonet_lcl_task.h

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

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

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *  ECHONET Lite ƒRƒ“ƒtƒBƒMƒ
    44 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     39 *  ECHONET Lite コンフィギュレーションファイル
    4540 */
    4641
     
    5045
    5146/*
    52  * ECHONET Lite “d•¶—pƒƒ‚ƒŠ
     47 * ECHONET Lite 電文用メモリ
    5348 */
    5449/*CRE_MPF(ECHONET_MEMPOOL, { TA_TFIFO, 60, 256, NULL, NULL });*/
    5550
    5651/*
    57  * ECHONET Lite API—pƒ[ƒ‹ƒ{ƒbƒNƒX
     52 * ECHONET Lite API用メールボックス
    5853 */
    5954CRE_DTQ(ECHONET_API_MAILBOX, { TA_TFIFO, NUM_ECHONET_API_MAILBOX, NULL });
    6055
    6156/*
    62  * ECHONET Lite ƒT[ƒrƒXˆ—ƒ^ƒXƒN—pƒ[ƒ‹ƒ{ƒbƒNƒX
     57 * ECHONET Lite サービス処理タスク用メールボックス
    6358 */
    6459CRE_DTQ(ECHONET_SVC_MAILBOX, { TA_TFIFO, NUM_ECHONET_MAILBOX, NULL });
    6560
    6661/*
    67  * ECHONET Lite ƒT[ƒrƒXˆ—ƒ^ƒXƒN
     62 * ECHONET Lite サービス処理タスク
    6863 */
    6964CRE_TSK(ECHONET_SVC_TASK, { TA_HLNG, 0, echonet_task, ECHONET_TASK_PRIORITY, ECHONET_TASK_STACK_SIZE, NULL });
    7065
    7166/*
    72  * ECHONET Lite ƒ^ƒXƒN‹N“®—pŽüŠúƒnƒ“ƒhƒ‰[
     67 * ECHONET Lite タスク起動用周期ハンドラー
    7368 */
    7469CRE_CYC(ECHONET_SVC_CYCHDR, { TA_NULL, ECHONET_SVC_TASK, echonet_cychdr, 1, 0 });
    7570
    7671/*
    77  * ECHONET Lite UDP’ʐMˆ——pƒ[ƒ‹ƒ{ƒbƒNƒX
     72 * ECHONET Lite UDP通信処理用メールボックス
    7873 */
    7974CRE_DTQ(ECHONET_UDP_MAILBOX, { TA_TFIFO, NUM_ECHONET_UDP_MAILBOX, NULL });
    8075
    8176/*
    82  * ECHONET Lite UDP’ʐMˆ—ƒ^ƒXƒN
     77 * ECHONET Lite UDP通信処理タスク
    8378 */
    8479CRE_TSK(ECHONET_UDP_TASK, { TA_HLNG, 0, echonet_udp_task, ECHONET_UDP_TASK_PRIORITY, ECHONET_UDP_TASK_STACK_SIZE, NULL });
    8580
    8681/*
    87  * ECHONET Lite ƒ^ƒXƒN‹N“®—pŽüŠúƒnƒ“ƒhƒ‰[
     82 * ECHONET Lite タスク起動用周期ハンドラー
    8883 */
    8984CRE_CYC(ECHONET_UDP_CYCHDR, { TA_NULL, ECHONET_UDP_TASK, echonet_udp_cychdr, 1, 0 });
  • uKadecot/trunk/ecnl_ssp/echonet_task.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *              ECHONET Lite ƒ^ƒXƒN
     39 *              ECHONET Lite タスク
    4440 */
    4541
     
    7874static struct ecnl_state s;
    7975
    80 /* ŽóMƒƒbƒZ[ƒW‚ðŠJ•ú‚·‚é‚©”Û‚© */
     76/* 受信メッセージを開放するか否か */
    8177static bool_t g_release_esv;
    8278
    83 /* ŽóMƒƒbƒZ[ƒW‚ð“]‘—‚·‚é‚©”Û‚© */
     79/* 受信メッセージを転送するか否か */
    8480bool_t g_forward_esv;
    8581
     
    126122                        target += - ENOD_REMOTE_ID + 1;
    127123                        if (from_app && (target < tnum_enodid)) {
    128                                 /* ”ñ“¯Šú‚̃Šƒ‚[ƒgƒm[ƒh‚̓T[ƒrƒXˆ—ƒ^ƒXƒN‚ŏˆ—‚·‚é */
     124                                /* 非同期のリモートノードはサービス処理タスクで処理する */
    129125                                switch (eobjcb_table[target].profile->eobjatr) {
    130126                                case EOBJ_SYNC_REMOTE_NODE:
     
    174170        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID *fa_fbs_anno);
    175171
    176 /* ƒ‚ƒWƒ
    177 [ƒ‹‰Šú‰»ƒtƒ‰ƒO */
     172/* モジュール初期化フラグ */
    178173static uint8_t          m_eobjlist_need_init = 1;
    179174
    180 /* ƒV[ƒPƒ“ƒX”ԍ† */
     175/* シーケンス番号 */
    181176static uint16_t         g_current_tid = 1;
    182177
    183178/*
    184  *  ECHONET Lite ƒ^ƒXƒN‚̏‰Šú‰»iƒRƒ“ƒXƒgƒ‰ƒNƒ^‘Š“–j
     179 *  ECHONET Lite タスクの初期化(コンストラクタ相当)
    185180 */
    186181void echonet_task_init(intptr_t exinf)
     
    191186
    192187/*
    193  * ƒ‚ƒWƒ
    194 [ƒ‹‰Šú‰»
     188 * モジュール初期化
    195189 */
    196190static void _ecn_tsk_int_module_init(intptr_t exinf)
     
    210204
    211205/*
    212  *  ECHONET Lite ƒ^ƒXƒN‚Ì–{‘Ì
     206 *  ECHONET Lite タスクの本体
    213207 */
    214208static
     
    243237        }
    244238
    245         /* ƒƒbƒZ[ƒWƒ‹[ƒv */
     239        /* メッセージループ */
    246240        for (;;) {
    247241                a_prev = a_now;
     
    283277
    284278                        switch (a_mdt.fbs_id.ptr->hdr.type) {
    285                         /* “à•”Žg—pƒƒbƒZ[ƒW */
     279                        /* 内部使用メッセージ */
    286280                        case ECN_MSG_INTERNAL:
    287281                                _ecn_tsk_int_msg(fa_exinf, a_mdt.fbs_id);
    288282                                break;
    289283
    290                         /* ECHONET—pƒƒbƒZ[ƒW */
     284                        /* ECHONET用メッセージ */
    291285                        case ECN_MSG_ECHONET:
    292286                                _ecn_tsk_ecn_msg(fa_exinf, a_mdt.fbs_id);
     
    297291                        }
    298292
    299                         /* —̈æ‰ð•ú */
     293                        /* 領域解放 */
    300294                        if (g_release_esv)
    301295                                _ecn_fbs_del(a_mdt.fbs_id);
     
    312306
    313307/*
    314  *  ECHONET Lite ƒvƒƒgƒXƒŒƒbƒh‹N“®ƒ^ƒXƒN
     308 *  ECHONET Lite プロトスレッド起動タスク
    315309 */
    316310void echonet_task(intptr_t fa_exinf)
     
    320314
    321315/*
    322  *  ECHONET Lite ƒ^ƒXƒN‹N“®—pŽüŠúƒnƒ“ƒhƒ‰[
     316 *  ECHONET Lite タスク起動用周期ハンドラー
    323317 */
    324318void echonet_cychdr(intptr_t exinf)
     
    328322
    329323/*
    330  * ƒV[ƒPƒ“ƒX”ԍ†¶¬
     324 * シーケンス番号生成
    331325 */
    332326static uint16_t _ecn_tsk_new_tid(void)
     
    336330
    337331/*
    338  * —v‹“d•¶ì¬
    339  * ˆø”
    340  * ECN_FBS_ID           *fp_fbs_id              Žæ“¾‚µ‚½FBS_ID‚ÌŠi”[æ
    341  * ID                           fa_seoj                 ‘—MŒ³‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    342  * ID                           fa_deoj                 ˆ¶æ‚ÌECHONETƒIƒuƒWƒFƒNƒgID
    343  * uint8_t                      fa_epc                  ƒvƒƒpƒeƒBƒR[ƒh
    344  * uint8_t                      fa_pdc                  ƒvƒƒpƒeƒB’lƒf[ƒ^ƒTƒCƒY
    345  * const void           *p_edt                  ƒvƒƒpƒeƒB’lƒf[ƒ^
    346  * ECN_SRV_CODE         fa_esv                  ECHONET Light ƒT[ƒrƒXƒR[ƒh
     332 * 要求電文作成
     333 * 引数
     334 * ECN_FBS_ID           *fp_fbs_id              取得したFBS_IDの格納先
     335 * ID                           fa_seoj                 送信元のECHONETオブジェクトID
     336 * ID                           fa_deoj                 宛先のECHONETオブジェクトID
     337 * uint8_t                      fa_epc                  プロパティコード
     338 * uint8_t                      fa_pdc                  プロパティ値データサイズ
     339 * const void           *p_edt                  プロパティ値データ
     340 * ECN_SRV_CODE         fa_esv                  ECHONET Light サービスコード
    347341 */
    348342ER _ecn_tsk_mk_esv(ECN_FBS_ID *fp_fbs_id, ID fa_seoj, ID fa_deoj,
     
    351345        ER                              a_ret;
    352346        int                             a_size, i;
    353         ECN_FBS_ID              a_fbs_id = { 0 };       /* —v‹“d•¶—pƒƒ‚ƒŠ                             */
     347        ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ                             */
    354348        T_ECN_EDT_HDR   a_ecn_hdp;                      /* ecn_hdr+edata+ecn_prp 14byte */
    355349        ID                              a_enodid;
     
    358352
    359353        if (!fp_fbs_id)
    360                 return E_PAR; /* Žæ“¾‚µ‚½FBS_ID‚ÌŠi”[æ‚ªNULL */
     354                return E_PAR; /* 取得したFBS_IDの格納先がNULL */
    361355        if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc)
    362                 return E_PAR; /* ƒvƒƒpƒeƒB’lƒTƒCƒY‚ª‘å‚«‚·‚¬‚é */
     356                return E_PAR; /* プロパティ値サイズが大きすぎる */
    363357        if (!p_edt && 0 < fa_pdc)
    364                 return E_PAR; /* ƒvƒƒpƒeƒB’lƒTƒCƒY‚ª1ˆÈã‚Ȃ̂Ƀf[ƒ^ƒ|ƒCƒ“ƒ^‚ªNULL */
     358                return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */
    365359
    366360        if (fa_seoj <= EOBJ_NULL || tmax_eobjid < fa_seoj)
    367                 return E_NOEXS; /* ECHONETƒIƒuƒWƒFƒNƒgID‚ª–¢’è‹` */
     361                return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
    368362#ifndef ECHONET_CONTROLLER_EXTENTION
    369363        if (fa_deoj < EOBJ_NULL || tmax_eobjid < fa_deoj)
    370                 return E_NOEXS; /* ECHONETƒIƒuƒWƒFƒNƒgID‚ª–¢’è‹` */
     364                return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
    371365#else
    372366        if (fa_deoj < EOBJ_NULL || (tmax_eobjid + TNUM_AEOBJID) < fa_deoj)
    373                 return E_NOEXS; /* ECHONETƒIƒuƒWƒFƒNƒgID‚ª–¢’è‹` */
     367                return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
    374368#endif
    375369        if (fa_deoj == EOBJ_NULL && fa_esv == ESV_INFC)
    376                 return E_NOEXS; /* ECHONETƒIƒuƒWƒFƒNƒgID‚ª–¢’è‹` */
    377 
    378         /* —v‹Å¬ƒTƒCƒY‚̎擾 */
     370                return E_NOEXS; /* ECHONETオブジェクトIDが未定義 */
     371
     372        /* 要求最小サイズの取得 */
    379373        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    380374
    381         /* —v‹“d•¶—pƒƒ‚ƒŠ‚̎擾 */
     375        /* 要求電文用メモリの取得 */
    382376        a_ret = _ecn_fbs_cre(a_size, &a_fbs_id);
    383         if (a_ret != E_OK || !a_fbs_id.ptr) { /* Šm•ÛŽ¸”s */
     377        if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
    384378                ECN_DBG_PUT "_ecn_fbs_cre(%d) result = %d:%s",
    385379                        a_size,
     
    388382        }
    389383
    390         /* —v‹“d•¶Ý’è                                         */
     384        /* 要求電文設定                                               */
    391385        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    392386        a_ecn_hdp.ecn_hdr.ehd1 = ECN_EDH1_ECHONET_LITE;
     
    395389        memcpy(&a_ecn_hdp.edata.seoj, &eobjinib_table[fa_seoj - 1].eojx1, sizeof(a_ecn_hdp.edata.seoj));
    396390        a_ecn_hdp.edata.esv = fa_esv;
    397         a_ecn_hdp.edata.opc = 1;                /* ˆ—ƒvƒƒpƒeƒB” */
    398         a_ecn_hdp.ecn_prp.epc = fa_epc; /* ƒvƒƒpƒeƒBƒR[ƒh */
    399         a_ecn_hdp.ecn_prp.pdc = fa_pdc; /* •tƒf[ƒ^ƒTƒCƒY */
    400 
    401         /* —v‹“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ */
     391        a_ecn_hdp.edata.opc = 1;                /* 処理プロパティ数 */
     392        a_ecn_hdp.ecn_prp.epc = fa_epc; /* プロパティコード */
     393        a_ecn_hdp.ecn_prp.pdc = fa_pdc; /* 付随データサイズ */
     394
     395        /* 要求電文用メモリにデータ追加 */
    402396        a_ret = _ecn_fbs_add_data_ex(a_fbs_id, &a_ecn_hdp, a_size);
    403397        if (a_ret) {
     
    408402        }
    409403        if (0 < fa_pdc) {
    410                 /* •tƒf[ƒ^’ljÁ */
     404                /* 付随データ追加 */
    411405                a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_edt, fa_pdc);
    412406                if (a_ret) {
     
    418412        }
    419413        if (fa_deoj == 0) {
    420                 ECN_DBG_PUT "%s", "ƒ}ƒ‹ƒ`ƒLƒƒƒXƒg" ECN_DBG_END;
    421                 /* fa_deoj == 0 : ƒ}ƒ‹ƒ`ƒLƒƒƒXƒg */
     414                ECN_DBG_PUT "%s", "マルチキャスト" ECN_DBG_END;
     415                /* fa_deoj == 0 : マルチキャスト */
    422416                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx1 = EOJ_X1_PROFILE;
    423417                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx2 = EOJ_X2_NODE_PROFILE;
     
    427421        else if (fa_deoj <= tmax_eobjid) {
    428422                ECN_DBG_PUT "fa_deoj = %d", fa_deoj ECN_DBG_END;
    429                 /* if (fa_deoj < 1 || tmax_eobjid < fa_deoj) c‚ُ̈íŒn‚͊֐”–`“ª‚ŏœŠOÏ‚Ý‚Æ‚·‚é */
     423                /* if (fa_deoj < 1 || tmax_eobjid < fa_deoj) …の異常系は関数冒頭で除外済みとする */
    430424                a_eobj = &eobjinib_table[fa_deoj - 1];
    431425                memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &a_eobj->eojx1,
    432426                        sizeof(((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj));
    433427
    434                 /* ƒe[ƒuƒ‹‚©‚猟õ */
     428                /* テーブルから検索 */
    435429                a_fbs_id.ptr->hdr.target = ENOD_NOT_MATCH_ID;
    436430                a_enodid = (a_eobj->enodid == 0) ? fa_deoj : a_eobj->enodid;
     
    472466                ECN_ENOD_ID enodid;
    473467                ECN_DBG_PUT "fa_deoj = %d", fa_deoj ECN_DBG_END;
    474                 /* ƒIƒuƒWƒFƒNƒgID‚©‚çEOJ‚ƃm[ƒhID‚ðŽæ“¾ */
     468                /* オブジェクトIDからEOJとノードIDを取得 */
    475469                if(ecn_agent_get_eoj_enodid(fa_deoj, &eoj, &enodid)){
    476470                        memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &eoj,
     
    505499                a_fbs_id.ptr->hdr.reply = ENOD_API_ID;
    506500
    507         /* ³íI—¹ */
     501        /* 正常終了 */
    508502        *fp_fbs_id = a_fbs_id;
    509503        return E_OK;
    510504
    511505lb_except:
    512         /* ƒf[ƒ^ì¬Ž¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     506        /* データ作成失敗したら領域解放 */
    513507        if (a_fbs_id.ptr)
    514508                _ecn_fbs_del(a_fbs_id);
     
    518512
    519513/*
    520  * “à•”Žg—pƒƒbƒZ[ƒW
     514 * 内部使用メッセージ
    521515 */
    522516static void _ecn_tsk_int_msg(intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id)
     
    549543
    550544/*
    551  * ƒ^ƒXƒN‰Šú‰»
     545 * タスク初期化
    552546 */
    553547static void _ecn_tsk_int_startup(intptr_t fa_exinf)
     
    558552                _ecn_tsk_int_module_init(fa_exinf);
    559553
    560         /* ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg’Ê’m‚Ì‘—M */
     554        /* インスタンスリスト通知の送信 */
    561555        a_ret = _ecn_tsk_ntf_inl(fa_exinf);
    562556        if (a_ret) {
     
    566560
    567561/*
    568  * ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg’Ê’m‚Ì‘—M
    569  * ECHONET-Lite_Ver.1.10_02.pdf p.43 }4-1-4
     562 * インスタンスリスト通知の送信
     563 * ECHONET-Lite_Ver.1.10_02.pdf p.43 4-1-4
    570564 */
    571565ER _ecn_tsk_ntf_inl(intptr_t fa_exinf)
    572566{
    573         const T_ECN_EOJ a_seoj =        /* 0x01 : ˆê”ʃm[ƒhA0x02F‘—Mê—pƒm[ƒh */
     567        const T_ECN_EOJ a_seoj =        /* 0x01 : 一般ノード、0x02:送信専用ノード */
    574568                { EOJ_X1_PROFILE, EOJ_X2_NODE_PROFILE, 0x01 };
    575569        const T_ECN_EOJ a_deoj =
     
    581575        int                     i;
    582576        uint8_t         a_count;
    583         const EOBJCB    *enod = &eobjcb_table[0];       /* ƒ[ƒJƒ‹ƒm[ƒh */
     577        const EOBJCB    *enod = &eobjcb_table[0];       /* ローカルノード */
    584578        const EOBJINIB *eobj;
    585579
     
    599593
    600594                if (!a_eoj_ct) {
    601                         /* ƒƒ‚ƒŠŠm•ÛEƒwƒbƒ_Ši”[ */
    602                         a_hdr.ecn_hdr.tid = (uint8_t)_ecn_tsk_new_tid(); /* ƒV[ƒPƒ“ƒX”ԍ†¶¬ */
     595                        /* メモリ確保・ヘッダ格納 */
     596                        a_hdr.ecn_hdr.tid = (uint8_t)_ecn_tsk_new_tid(); /* シーケンス番号生成 */
    603597                        a_ret = _ecn_fbs_cre(sizeof(a_hdr), &a_fbs);
    604                         if (a_ret != E_OK) /* Šm•ÛŽ¸”s */
     598                        if (a_ret != E_OK) /* 確保失敗 */
    605599                                goto lb_except;
    606600                        a_ret = _ecn_fbs_add_data(a_fbs, &a_hdr, sizeof(a_hdr));
    607                         if (a_ret != E_OK) /* ƒf[ƒ^’ljÁŽ¸”s */
     601                        if (a_ret != E_OK) /* データ追加失敗 */
    608602                                goto lb_except;
    609603
     
    612606                        a_fbs.ptr->hdr.target = ENOD_MULTICAST_ID;
    613607                        a_fbs.ptr->hdr.reply = ENOD_LOCAL_ID;
    614                         ((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc = 1;    /* Œ” */
    615                         /* Œ”‚ðŠi”[ */
     608                        ((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc = 1;    /* 件数 */
     609                        /* 件数を格納 */
    616610                        a_count = (uint8_t)(enod->eobjcnt - i);
    617611                        if (a_count >= ECN_IST_LST_EOJ_MAX_CT)
    618612                                a_count = ECN_IST_LST_EOJ_MAX_CT;
    619613                        a_ret = _ecn_fbs_add_data_ex(a_fbs, &a_count, sizeof(a_count));
    620                         if (a_ret != E_OK) /* ƒf[ƒ^’ljÁŽ¸”s */
     614                        if (a_ret != E_OK) /* データ追加失敗 */
    621615                                goto lb_except;
    622616                }
    623                 /* ECHONETƒIƒuƒWƒFƒNƒgID(3byte)‚ðŠi”[ */
     617                /* ECHONETオブジェクトID(3byte)を格納 */
    624618                a_ret = _ecn_fbs_add_data_ex(a_fbs, &eobj->eojx1, sizeof(T_ECN_EOJ));
    625                 if (a_ret != E_OK) /* ƒf[ƒ^’ljÁŽ¸”s */
     619                if (a_ret != E_OK) /* データ追加失敗 */
    626620                        goto lb_except;
    627621
    628                 /* Œ”EedtƒTƒCƒY‰ÁŽZ */
     622                /* 件数・edtサイズ加算 */
    629623                ((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc += sizeof(T_ECN_EOJ);
    630624                if (++a_eoj_ct < ECN_IST_LST_EOJ_MAX_CT)
    631625                        continue;
    632626
    633                 /* 1ƒAƒiƒEƒ“ƒX‚ł̏ãŒÀ‚É’B‚µ‚½‚çAˆê’U‘—M */
     627                /* 1アナウンスでの上限に達したら、一旦送信 */
    634628                a_ret = _ecn_tsk_snd_mbx(a_fbs, false);
    635                 if (a_ret != E_OK) /* ƒf[ƒ^‘—MŽ¸”s */
     629                if (a_ret != E_OK) /* データ送信失敗 */
    636630                        goto lb_except;
    637631                a_eoj_ct = 0;
     
    639633        }
    640634        if (a_eoj_ct) {
    641                 /* –¢‘—Mƒf[ƒ^‚ª‚ ‚Á‚½‚çA‘—M */
     635                /* 未送信データがあったら、送信 */
    642636                a_ret = _ecn_tsk_snd_mbx(a_fbs, false);
    643                 if (a_ret != E_OK) /* ƒf[ƒ^‘—MŽ¸”s */
     637                if (a_ret != E_OK) /* データ送信失敗 */
    644638                        goto lb_except;
    645639                a_fbs.ptr = 0;
     
    685679
    686680/*
    687  * 3byte‚Ìeobjid‚Å”z—ñ’†‚ðŒŸõ‚·‚é
     681 * 3byteのeobjidで配列中を検索する
    688682 */
    689683const EOBJINIB *_ecn_eoj_fnd(const EOBJCB *fp_nod, const T_ECN_EOJ *fp_eoj)
     
    721715
    722716/*
    723  * ECHONET—pƒƒbƒZ[ƒW
     717 * ECHONET用メッセージ
    724718 */
    725719static void _ecn_tsk_ecn_msg(intptr_t fa_exinf, ECN_FBS_ID fa_fbs_id)
     
    749743        }
    750744
    751         /* ‘—Mˆ¶‚©‚çƒm[ƒh‚ðŒŸõ */
     745        /* 送信宛からノードを検索 */
    752746        p_nod = _ecn_eno_fnd(fa_fbs_id.ptr->hdr.target);
    753         /* ‘—MŒ³‚©‚çƒm[ƒh‚ðŒŸõ */
     747        /* 送信元からノードを検索 */
    754748        sender = fa_fbs_id.ptr->hdr.sender;
    755749        p_snod = _ecn_eno_fnd(sender);
    756750        if (p_snod != NULL) {
    757751                sobjatr = p_snod->profile->eobjatr;
    758                 /* ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚̏ꍇ */
     752                /* ノードプロファイルの場合 */
    759753                if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE)
    760754                        && (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
    761755                        p_sobj = p_snod->profile;
    762756                }
    763                 /* ‹@ŠíƒIƒuƒWƒFƒNƒg‚̏ꍇ */
     757                /* 機器オブジェクトの場合 */
    764758                else {
    765759                        p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj);
     
    771765#endif
    772766
    773         /* ƒm[ƒh“à‚Ì‹@ŠíƒIƒuƒWƒFƒNƒg‚ðŒŸõ */
     767        /* ノード内の機器オブジェクトを検索 */
    774768        a_prc = false;
    775769        a_fwd = false;
     
    778772                eobjatr = p_nod->profile->eobjatr;
    779773                p_eoj = &p_esv->edata.deoj;
    780                 /* ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚̏ꍇ */
     774                /* ノードプロファイルの場合 */
    781775                if ((p_eoj->eojx1 == EOJ_X1_PROFILE)
    782776                        && (p_eoj->eojx2 == EOJ_X2_NODE_PROFILE)) {
    783                         /* “d•¶ˆ—ŽÀs */
     777                        /* 電文処理実行 */
    784778                        if (_ecn_tsk_ecn_msg_main(fa_fbs_id, p_nod->profile, eobjatr, p_sobj, sobjatr) == 1)
    785779                                a_fwd = true;
    786780                        a_prc = true;
    787781                }
    788                 /* ‹@ŠíƒIƒuƒWƒFƒNƒg‚̏ꍇ */
     782                /* 機器オブジェクトの場合 */
    789783                else {
    790784                        count = p_nod->eobjcnt;
     
    805799                                if (p_obj->eojx2 != p_eoj->eojx2)
    806800                                        continue;
    807                                 /* ƒCƒ“ƒXƒ^ƒ“ƒXƒR[ƒh‚ª‚O‚̏ꍇA“¯‚¶ƒNƒ‰ƒX‚Ì‘S‚ẴCƒ“ƒXƒ^ƒ“ƒXˆ¶ */
     801                                /* インスタンスコードが0の場合、同じクラスの全てのインスタンス宛 */
    808802                                if ((p_obj->eojx3 != p_eoj->eojx3) && (p_eoj->eojx3 != 0))
    809803                                        continue;
    810804
    811                                 /* “d•¶ˆ—ŽÀs */
     805                                /* 電文処理実行 */
    812806                                if (_ecn_tsk_ecn_msg_main(fa_fbs_id, p_obj, eobjatr, p_sobj, sobjatr) == 1)
    813807                                        a_fwd = true;
     
    816810                }
    817811        }
    818         /* ‹@ŠíƒIƒuƒWƒFƒNƒg‚ªŒ©‚‚©‚ç‚È‚¢ê‡‚Å‚à */
     812        /* 機器オブジェクトが見つからない場合でも */
    819813        if (!a_prc) {
    820                 /* “d•¶ˆ—ŽÀsi‰ž“šŽóM—pj */
     814                /* 電文処理実行(応答受信用) */
    821815                if (_ecn_tsk_ecn_msg_main(fa_fbs_id, NULL, EPC_NONE, p_sobj, sobjatr) == 1)
    822816                        a_fwd = true;
    823817        }
    824818
    825         /* ‰ž“š‚̏ꍇƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚É“]‘—‚·‚é */
     819        /* 応答の場合アプリケーションに転送する */
    826820        if (a_fwd && ((p_esv->ecn_hdr.tid == apitid_table[sender])
    827821                || g_forward_esv))
     
    829823                g_release_esv = false;
    830824
    831                 ECN_CAP_PUT "redirect ecn_svc_mailboxid ¨ ecn_api_mailboxid (esv:0x%02X)",
     825                ECN_CAP_PUT "redirect ecn_svc_mailboxid ecn_api_mailboxid (esv:0x%02X)",
    832826                        p_esv->edata.esv ECN_CAP_END;
    833827                fa_fbs_id.ptr->hdr.target = ENOD_API_ID;
     
    853847
    854848        switch (p_esv->edata.esv) {
    855         /* 0x60 ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj */
     849        /* 0x60 プロパティ値書き込み要求(応答不要) */
    856850        case ESV_SET_I:
    857851                if (!p_obj) {
     
    865859                break;
    866860
    867         /* 0x61 ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj */
     861        /* 0x61 プロパティ値書き込み要求(応答要) */
    868862        case ESV_SET_C:
    869863                if (!p_obj) {
     
    877871                break;
    878872
    879         /* 0x62 ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹ */
     873        /* 0x62 プロパティ値読み出し要求 */
    880874        case ESV_GET:
    881875                if (!p_obj) {
     
    889883                break;
    890884
    891         /* 0x63 ƒvƒƒpƒeƒB’l’Ê’m—v‹ */
     885        /* 0x63 プロパティ値通知要求 */
    892886        case ESV_INF_REQ:
    893887                if (!p_obj) {
     
    902896                break;
    903897
    904         /* 0x6E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹ */
     898        /* 0x6E プロパティ値書き込み・読み出し要求 */
    905899        case ESV_SET_GET:
    906900                if (!p_obj) {
     
    914908                break;
    915909
    916         /* 0x74 ƒvƒƒpƒeƒB’l’Ê’mi‰ž“š—vj */
     910        /* 0x74 プロパティ値通知(応答要) */
    917911        case ESV_INFC:
    918912                if (!p_sobj)
     
    925919                break;
    926920
    927         /* 0x60 ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj */
    928         case ESV_SET_I_SNA:             /* 0x50 ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹•s‰Â‰ž“š */
     921        /* 0x60 プロパティ値書き込み要求(応答不要) */
     922        case ESV_SET_I_SNA:             /* 0x50 プロパティ値書き込み要求不可応答 */
    929923                result = 1;
    930924                break;
    931925
    932         /* 0x61 ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj */
    933         case ESV_SET_RES:               /* 0x71 ƒvƒƒpƒeƒB’l‘‚«ž‚݉ž“š */
    934         case ESV_SET_C_SNA:             /* 0x51 ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹•s‰Â‰ž“š */
     926        /* 0x61 プロパティ値書き込み要求(応答要) */
     927        case ESV_SET_RES:               /* 0x71 プロパティ値書き込み応答 */
     928        case ESV_SET_C_SNA:             /* 0x51 プロパティ値書き込み要求不可応答 */
    935929                result = 1;
    936930                break;
    937931
    938         /* 0x62 ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹ */
    939         case ESV_GET_RES:               /* 0x72 ƒvƒƒpƒeƒB’l“ǂݏo‚µ‰ž“š */
    940         case ESV_GET_SNA:               /* 0x52 ƒvƒƒpƒeƒB’l“ǂݏo‚µ•s‰Â‰ž“š */
     932        /* 0x62 プロパティ値読み出し要求 */
     933        case ESV_GET_RES:               /* 0x72 プロパティ値読み出し応答 */
     934        case ESV_GET_SNA:               /* 0x52 プロパティ値読み出し不可応答 */
    941935                if (!p_sobj) {
    942936                        ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     
    949943                break;
    950944
    951         /* 0x63 ƒvƒƒpƒeƒB’l’Ê’m—v‹ */
    952         case ESV_INF:                   /* 0x73 ƒvƒƒpƒeƒB’l’Ê’m */
    953         case ESV_INF_SNA:               /* 0x53 ƒvƒƒpƒeƒB’l’Ê’m•s‰Â‰ž“š */
     945        /* 0x63 プロパティ値通知要求 */
     946        case ESV_INF:                   /* 0x73 プロパティ値通知 */
     947        case ESV_INF_SNA:               /* 0x53 プロパティ値通知不可応答 */
    954948                if (!p_sobj) {
    955949                        ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     
    962956                break;
    963957
    964         /* 0x6E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹ */
    965         case ESV_SET_GET_RES:   /* 0x7E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ‰ž“š */
    966         case ESV_SET_GET_SNA:   /* 0x5E ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ•s‰Â‰ž“š */
     958        /* 0x6E プロパティ値書き込み・読み出し要求 */
     959        case ESV_SET_GET_RES:   /* 0x7E プロパティ値書き込み・読み出し応答 */
     960        case ESV_SET_GET_SNA:   /* 0x5E プロパティ値書き込み・読み出し不可応答 */
    967961                if (!p_sobj) {
    968962                        ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     
    975969                break;
    976970
    977         /* 0x74 ƒvƒƒpƒeƒB’l’Ê’mi‰ž“š—vj */
    978         case ESV_INFC_RES:              /* 0x7A ƒvƒƒpƒeƒB’l’Ê’m‰ž“š */
     971        /* 0x74 プロパティ値通知(応答要) */
     972        case ESV_INFC_RES:              /* 0x7A プロパティ値通知応答 */
    979973                result = 1;
    980974                break;
     
    986980        }
    987981
    988         /* ƒvƒƒpƒeƒB’Ê’m—v‹‚𑗐M */
     982        /* プロパティ通知要求を送信 */
    989983        if (a_fbs_anno.ptr != NULL) {
    990984                ER a_ret = _ecn_tsk_snd_mbx(a_fbs_anno, true);
     
    10661060
    10671061/*
    1068  * ECN_FBS_ID‚©‚çT_ECN_PRP1Œ‚Æ‚»‚Ì•tƒf[ƒ^(edt)‚𒊏o‚µAedt‚̃|ƒCƒ“ƒ^‚ð•Ô‚·
    1069  * ˆø”
    1070  * ECN_FBS_ID fa_fbs_id                                 “Ç‚ÝŽæ‚éFBS
    1071  * T_ECN_PRP *fp_prp                                    epc+pdc‚ÌŠi”[æ
    1072  * T_ECN_SUB_BLK * const fp_prev_blk    ‘O‰ñŽg‚Á‚½ƒƒ‚ƒŠ‚̃|ƒCƒ“ƒ^(–³‚¯‚ê‚Î0)
    1073  * ³íFƒ|ƒCƒ“ƒ^ NG:0
    1074  * ƒ|ƒCƒ“ƒ^‚Í_ecn_fbs_mbx_rel()‚ʼnð•ú‚·‚é•K—v‚ª‚ ‚é
     1062 * ECN_FBS_IDからT_ECN_PRP1件とその付随データ(edt)を抽出し、edtのポインタを返す
     1063 * 引数
     1064 * ECN_FBS_ID fa_fbs_id                                 読み取るFBS
     1065 * T_ECN_PRP *fp_prp                                    epc+pdcの格納先
     1066 * T_ECN_SUB_BLK * const fp_prev_blk    前回使ったメモリのポインタ(無ければ0)
     1067 * 正常:ポインタ NG:0
     1068 * ポインタは_ecn_fbs_mbx_rel()で解放する必要がある
    10751069 */
    10761070static T_ECN_SUB_BLK *_ecn_tsk_get_prp_pce(ECN_FBS_ID fa_fbs_id, T_ECN_PRP *fp_prp,
     
    10811075        ER              a_ret;
    10821076
    1083         /* ƒvƒƒpƒeƒB—pƒƒ‚ƒŠ‚̎擾 */
     1077        /* プロパティ用メモリの取得 */
    10841078        if (fp_prev_blk) {
    1085                 p_blk = fp_prev_blk; /* ‘O‰ñŽg‚Á‚½ƒƒ‚ƒŠ‚ª‚ ‚é‚È‚çAÄ—˜—p‚·‚é */
     1079                p_blk = fp_prev_blk; /* 前回使ったメモリがあるなら、再利用する */
    10861080        }
    10871081        else {
     
    10891083                if (!p_blk) {
    10901084                        ECN_DBG_PUT "_ecn_fbs_mbx_get() fault." ECN_DBG_END;
    1091                         return 0;       /* ƒƒ‚ƒŠ•s‘« */
     1085                        return 0;       /* メモリ不足 */
    10921086                }
    10931087        }
    10941088        memset(p_blk, 0, sizeof(*p_blk));
    10951089
    1096         /* T_ECN_PRP•”•ª(epc,pdc)‚ð“Ç‚ÝŽæ‚é */
     1090        /* T_ECN_PRP部分(epc,pdc)を読み取る */
    10971091        a_size = 0;
    10981092        a_ret = _ecn_fbs_get_data(fa_fbs_id, fp_prp, sizeof(*fp_prp), &a_size);
     
    11031097
    11041098        if (0 < fp_prp->pdc) {
    1105                 /* •tƒf[ƒ^•”•ª(edt)‚ð“Ç‚ÝŽæ‚é */
     1099                /* 付随データ部分(edt)を読み取る */
    11061100                a_size = 0;
    11071101                a_ret = _ecn_fbs_get_data(fa_fbs_id, p_blk, fp_prp->pdc, &a_size);
     
    11151109
    11161110lb_except:
    1117         /* ƒvƒƒpƒeƒB—pƒƒ‚ƒŠ‰ð•ú */
     1111        /* プロパティ用メモリ解放 */
    11181112        if (p_blk && !fp_prev_blk)
    11191113                _ecn_fbs_mbx_rel(p_blk);
     
    11251119        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, ECN_FBS_ID *fa_fbs_anno, int a_count,
    11261120        int *p_sw_ok);
    1127 /* ƒvƒƒpƒeƒB’l‘‚«ž‚ÝŽÀs */
     1121/* プロパティ値書き込み実行 */
    11281122static ER _ecn_tsk_eoj_set_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_update,
    11291123        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, ECN_FBS_ID *fa_fbs_anno, int a_count,
     
    11411135
    11421136        for (i = 0; i < a_count; i++) {
    1143                 /* ECN_FBS_ID‚©‚çT_ECN_PRP1Œ‚Æ‚»‚Ì•tƒf[ƒ^‚𒊏o‚µA‚»‚̃|ƒCƒ“ƒ^‚ð•Ô‚· */
     1137                /* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出し、そのポインタを返す */
    11441138                p_edt = _ecn_tsk_get_prp_pce(fa_fbs_id, &a_prp, p_edt);
    11451139                if (!p_edt) {
     
    11481142                }
    11491143
    1150                 /* ƒvƒƒpƒeƒB‚̐ݒè set_prp(obj, reqp, resp) */
     1144                /* プロパティの設定 set_prp(obj, reqp, resp) */
    11511145                a_size = a_prp.pdc;
    1152                 /* obj,epc‚ɑΉž‚·‚ésetŠÖ”‚ðŒÄ‚Ô */
     1146                /* obj,epcに対応するset関数を呼ぶ */
    11531147                a_eprp = _ecn_tsk_eoj_get_property(fp_obj, a_prp.epc);
    11541148                if ((a_eprp != NULL)
     
    11721166                                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3,
    11731167                                a_prp.epc, p_edt->payload[0], a_size ECN_DBG_END;
    1174                         *p_sw_ok = 0;   /* ƒvƒƒpƒeƒBÝ’莸”s */
    1175                         /* ‰ž“šˆ—‚̏ꍇEDT‚͐ݒ肵‚È‚¢ */
     1168                        *p_sw_ok = 0;   /* プロパティ設定失敗 */
     1169                        /* 応答処理の場合EDTは設定しない */
    11761170                        if (fa_update)
    11771171                                a_prp.pdc = 0;
    11781172                }
    11791173
    1180                 /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ(epc,pdc‚Ì2byte) */
     1174                /* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
    11811175                a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_prp, sizeof(a_prp));
    11821176                if (a_ret) {
     
    11861180
    11871181                if (0 < a_prp.pdc) {
    1188                         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ(edt n-byte) */
     1182                        /* 応答電文用メモリにデータ追加(edt n-byte) */
    11891183                        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, p_edt->payload, a_prp.pdc);
    11901184                        if (a_ret) {
     
    11951189                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc ++;
    11961190
    1197                 /* ƒvƒƒpƒeƒB’Ê’m‚ ‚è‚̏ꍇ */
     1191                /* プロパティ通知ありの場合 */
    11981192                if (a_anno && (a_ans == a_size)) {
    11991193                        if (fa_fbs_anno->ptr == NULL) {
     
    12131207
    12141208lb_finally:
    1215         /* ƒvƒƒpƒeƒB—pƒƒ‚ƒŠ‰ð•ú */
     1209        /* プロパティ用メモリ解放 */
    12161210        if (p_edt)
    12171211                _ecn_fbs_mbx_rel(p_edt);
     
    12221216static ER _ecn_tsk_eoj_get_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
    12231217        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok);
    1224 /* ƒvƒƒpƒeƒB’l“ǂݏo‚µŽÀs */
     1218/* プロパティ値読み出し実行 */
    12251219static ER _ecn_tsk_eoj_get_main(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
    12261220        ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok)
    12271221{
    12281222        T_ECN_SUB_BLK   *p_edt          =       0;
    1229         void                            *p_prp_buf      =       0;      /* ì‹Æ—̈æ */
     1223        void                            *p_prp_buf      =       0;      /* 作業領域 */
    12301224        const EPRPINIB          *a_eprp;
    12311225        ER                                      a_ret           =       E_SYS;
     
    12351229        ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
    12361230
    1237         /* ì‹Æ—̈æŠm•Û */
     1231        /* 作業領域確保 */
    12381232        p_prp_buf = _ecn_fbs_mbx_get(ECHONET_MEMPOOL_BLOCK_SIZE);
    12391233        if (!p_prp_buf) {
    12401234                ECN_DBG_PUT "_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
    1241                 goto lb_except; /* ƒƒ‚ƒŠ•s‘« */
     1235                goto lb_except; /* メモリ不足 */
    12421236        }
    12431237
    12441238        for (i = 0; i < a_count; i++) {
    1245                 /* ECN_FBS_ID‚©‚çT_ECN_PRP1Œ‚Æ‚»‚Ì•tƒf[ƒ^‚𒊏o */
     1239                /* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
    12461240                p_edt = _ecn_tsk_get_prp_pce(fa_fbs_id, &a_prp, p_edt);
    12471241                if (!p_edt) {
     
    12501244                }
    12511245
    1252                 /* ƒvƒƒpƒeƒB‚̎擾 get_eprp(obj, reqp, resp, size) */
     1246                /* プロパティの取得 get_eprp(obj, reqp, resp, size) */
    12531247                memset(p_prp_buf, 0, ECHONET_MEMPOOL_BLOCK_SIZE);
    1254                 /* obj,epc‚ɑΉž‚·‚égetŠÖ”‚ðŒÄ‚Ô */
     1248                /* obj,epcに対応するget関数を呼ぶ */
    12551249                a_eprp = _ecn_tsk_eoj_get_property(fp_obj, a_prp.epc);
    12561250                if ((a_eprp != NULL) && (((a_eprp->eprpatr & fa_access) != 0) && (fa_eobjatr == EOBJ_LOCAL_NODE) || fa_forward)) {
     
    12631257                        a_prp.pdc = (uint8_t)a_ans;
    12641258                } else {
    1265                         *p_sw_ok = 0;   /* ƒvƒƒpƒeƒBŽæ“¾Ž¸”s */
     1259                        *p_sw_ok = 0;   /* プロパティ取得失敗 */
    12661260                        a_ans = 0;
    12671261                        a_prp.pdc = 0;
    12681262                }
    12691263
    1270                 /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ(epc,pdc‚Ì2byte) */
     1264                /* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
    12711265                a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_prp, sizeof(a_prp));
    12721266                if (a_ret) {
     
    12751269                }
    12761270                if (0 < a_ans) {
    1277                         /* •tƒf[ƒ^’ljÁ */
     1271                        /* 付随データ追加 */
    12781272                        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, p_prp_buf, a_ans);
    12791273                        if (a_ret) {
     
    12911285
    12921286lb_finally:
    1293         /* ì‹Æ—̈æ‰ð•ú */
     1287        /* 作業領域解放 */
    12941288        if (p_prp_buf)
    12951289                _ecn_fbs_mbx_rel(p_prp_buf);
    12961290
    1297         /* ƒvƒƒpƒeƒB—pƒƒ‚ƒŠ‰ð•ú */
     1291        /* プロパティ用メモリ解放 */
    12981292        if (p_edt)
    12991293                _ecn_fbs_mbx_rel(p_edt);
     
    13031297
    13041298static ER _ecn_tsk_eoj_res_main(ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok);
    1305 /* ƒvƒƒpƒeƒB’l“ǂݏo‚µŽÀs */
     1299/* プロパティ値読み出し実行 */
    13061300static ER _ecn_tsk_eoj_res_main(ECN_FBS_ID fa_fbs_id, ECN_FBS_ID a_fbs_res, int a_count, int *p_sw_ok)
    13071301{
    13081302        T_ECN_SUB_BLK   *p_edt          =       0;
    1309         void                            *p_prp_buf      =       0;      /* ì‹Æ—̈æ */
     1303        void                            *p_prp_buf      =       0;      /* 作業領域 */
    13101304        ER                                      a_ret           =       E_SYS;
    13111305        T_ECN_PRP                       a_prp;                  /* epc+pdc */
     
    13141308        ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
    13151309
    1316         /* ì‹Æ—̈æŠm•Û */
     1310        /* 作業領域確保 */
    13171311        p_prp_buf = _ecn_fbs_mbx_get(ECHONET_MEMPOOL_BLOCK_SIZE);
    13181312        if (!p_prp_buf) {
    13191313                ECN_DBG_PUT "_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
    1320                 goto lb_except; /* ƒƒ‚ƒŠ•s‘« */
     1314                goto lb_except; /* メモリ不足 */
    13211315        }
    13221316
    13231317        for (i = 0; i < a_count; i++) {
    1324                 /* ECN_FBS_ID‚©‚çT_ECN_PRP1Œ‚Æ‚»‚Ì•tƒf[ƒ^‚𒊏o */
     1318                /* ECN_FBS_IDからT_ECN_PRP1件とその付随データを抽出 */
    13251319                p_edt = _ecn_tsk_get_prp_pce(fa_fbs_id, &a_prp, p_edt);
    13261320                if (!p_edt) {
     
    13311325                a_prp.pdc = 0;
    13321326
    1333                 /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ(epc,pdc‚Ì2byte) */
     1327                /* 応答電文用メモリにデータ追加(epc,pdcの2byte) */
    13341328                a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_prp, sizeof(a_prp));
    13351329                if (a_ret) {
     
    13461340
    13471341lb_finally:
    1348         /* ì‹Æ—̈æ‰ð•ú */
     1342        /* 作業領域解放 */
    13491343        if (p_prp_buf)
    13501344                _ecn_fbs_mbx_rel(p_prp_buf);
    13511345
    1352         /* ƒvƒƒpƒeƒB—pƒƒ‚ƒŠ‰ð•ú */
     1346        /* プロパティ用メモリ解放 */
    13531347        if (p_edt)
    13541348                _ecn_fbs_mbx_rel(p_edt);
     
    13571351}
    13581352
    1359 /* ƒvƒƒpƒeƒB’l“Ç‚Ý”ò‚΂µŽÀs */
     1353/* プロパティ値読み飛ばし実行 */
    13601354static ER _ecn_tsk_eoj_skip_main(const EOBJINIB *fp_obj, ECN_FBS_ID fa_fbs_id,
    13611355        int a_count);
     
    13681362
    13691363        for (i = 0; i < a_count; i++) {
    1370                 /* T_ECN_PRP•”•ª(epc,pdc)‚ð“Ç‚ÝŽæ‚é */
     1364                /* T_ECN_PRP部分(epc,pdc)を読み取る */
    13711365                a_size = 0;
    13721366                a_ret = _ecn_fbs_get_data(fa_fbs_id, &a_prp, sizeof(a_prp), &a_size);
     
    13761370                }
    13771371
    1378                 /* pdc•ª“Ç‚Ý”ò‚΂µ */
     1372                /* pdc分読み飛ばし */
    13791373                a_ret = _ecn_fbs_seek_rpos(fa_fbs_id, a_prp.pdc);
    13801374                if (a_ret) {
     
    13951389static void _ecn_tsk_mk_rsp_hdr(const EOBJINIB *fp_obj, T_ECN_EDT_HDR *fp_rsp_esv,
    13961390        T_ECN_EDT_HDR const *fp_req_esv);
    1397 /* ‰ž“š“d•¶Ý’è */
     1391/* 応答電文設定 */
    13981392static void _ecn_tsk_mk_rsp_hdr(const EOBJINIB *fp_obj, T_ECN_EDT_HDR *fp_rsp_esv,
    13991393        T_ECN_EDT_HDR const *fp_req_esv)
     
    14201414}
    14211415
    1422 /* ‰ž“š“d•¶—pfbsÝ’è */
     1416/* 応答電文用fbs設定 */
    14231417static void _ecn_tsk_set_rsp_fbs(ECN_FBS_ID fa_rsp_fbs, T_ECN_FST_BLK const *fp_req_ptr);
    1424 /* ‰ž“š“d•¶—pfbsÝ’è(sender/target‚̐ݒè) */
     1418/* 応答電文用fbs設定(sender/targetの設定) */
    14251419static void _ecn_tsk_set_rsp_fbs(ECN_FBS_ID fa_rsp_fbs, T_ECN_FST_BLK const *fp_req_ptr)
    14261420{
     
    14311425}
    14321426
    1433 /* ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹     */
     1427/* プロパティ値書き込み要求 */
    14341428static void _ecn_tsk_eoj_set(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_update,
    14351429        ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv,
     
    14461440        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    14471441
    1448         /* ‰ž“šÅ‘åƒTƒCƒY‚̎擾 */
     1442        /* 応答最大サイズの取得 */
    14491443        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    14501444
    1451         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚̎擾 */
     1445        /* 応答電文用メモリの取得 */
    14521446        a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
    1453         if (a_ret != E_OK || !a_fbs_res.ptr) /* Šm•ÛŽ¸”s */
     1447        if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
    14541448                return;
    14551449
    1456         /* ‰ž“š“d•¶Ý’è */
     1450        /* 応答電文設定 */
    14571451        if(p_req_esv->edata.deoj.eojx3 != 0)
    14581452                _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
     
    14601454                _ecn_tsk_mk_rsp_hdr(fp_obj, &a_ecn_hdp, p_req_esv);
    14611455
    1462         /* ³íŽž‚̉ž“š“d•¶‚ªƒvƒƒpƒeƒB’l’Ê’m‰ž“š‚̏ꍇ */
     1456        /* 正常時の応答電文がプロパティ値通知応答の場合 */
    14631457        if (fa_res_esv == ESV_INFC_RES) {
    1464                 /* ‘—MŒ³‚ƈ¶æ‚ð“ü‚ê‘Ö‚¦ */
     1458                /* 送信元と宛先を入れ替え */
    14651459                eoj = a_ecn_hdp.edata.seoj;
    14661460                a_ecn_hdp.edata.seoj = a_ecn_hdp.edata.deoj;
     
    14681462        }
    14691463
    1470         f_put_fbs_eoj("_ecn_tsk_eoj_set", "fa_fbs_id", fa_fbs_id); /* s/deoj ƒfƒoƒbƒOo—Í */
    1471 
    1472         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ */
     1464        f_put_fbs_eoj("_ecn_tsk_eoj_set", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
     1465
     1466        /* 応答電文用メモリにデータ追加 */
    14731467        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_ecn_hdp,
    14741468                                sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
     
    14761470                goto lb_except;
    14771471
    1478         /* payloadæ“ª‚ÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)‚ð“Ç‚Ý”ò‚΂· */
     1472        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    14791473        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    14801474        if (a_ret)
    14811475                goto lb_except;
    14821476
    1483         /* ‰ž“š“d•¶—pfbsÝ’è */
     1477        /* 応答電文用fbs設定 */
    14841478        _ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
    14851479
    1486         /* ƒvƒƒpƒeƒB’l‘‚«ž‚ÝŽÀs */
     1480        /* プロパティ値書き込み実行 */
    14871481        a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, fa_update, fa_fbs_id, a_fbs_res,
    14881482                fa_fbs_anno, p_req_esv->edata.opc, &a_sw_ok);
     
    14901484                goto lb_except;
    14911485
    1492         /* ‰ž“š—v‚̏ꍇ */
     1486        /* 応答要の場合 */
    14931487        if (a_sw_ok) {
    14941488                if (!fa_res_esv) {
    1495                         /* ‰ž“š•s—v‚̏ꍇ */
     1489                        /* 応答不要の場合 */
    14961490                        _ecn_fbs_del(a_fbs_res);
    14971491                        goto lb_finally;
    14981492                }
    1499                 /* Ý’菈—¬Œ÷ */
     1493                /* 設定処理成功 */
    15001494                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
    15011495        } else {
    15021496                if (!fa_sna_esv) {
    1503                         /* ‰ž“š•s—v‚̏ꍇ */
     1497                        /* 応答不要の場合 */
    15041498                        _ecn_fbs_del(a_fbs_res);
    15051499                        goto lb_finally;
    15061500                }
    1507                 /* Ý’菈—Ž¸”s */
     1501                /* 設定処理失敗 */
    15081502                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
    15091503        }
    1510         /* ‰ž“š‘—M */
     1504        /* 応答送信 */
    15111505        a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
    15121506        if (a_ret == E_OK)
     
    15141508
    15151509lb_except:
    1516         /* ƒf[ƒ^‘—MŽ¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     1510        /* データ送信失敗したら領域解放 */
    15171511        if (a_fbs_res.ptr)
    15181512                _ecn_fbs_del(a_fbs_res);
     
    15221516}
    15231517
    1524 /* ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹     */
     1518/* プロパティ値読み出し要求 */
    15251519static void _ecn_tsk_eoj_get(const EOBJINIB *fp_obj, ATR fa_eobjatr, bool_t fa_forward, ATR fa_access,
    15261520        ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv, ECN_SRV_CODE fa_sna_esv)
     
    15351529        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    15361530
    1537         /* ‰ŠúŽæ“¾ƒTƒCƒY */
     1531        /* 初期取得サイズ */
    15381532        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    15391533
    1540         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚̎擾 */
     1534        /* 応答電文用メモリの取得 */
    15411535        a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
    1542         if (a_ret != E_OK || !a_fbs_res.ptr) { /* Šm•ÛŽ¸”s */
     1536        if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
    15431537                ECN_DBG_PUT "_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
    15441538                goto lb_finally;
    15451539        }
    15461540
    1547         /* ‰ž“š“d•¶Ý’è */
     1541        /* 応答電文設定 */
    15481542        if(p_req_esv->edata.deoj.eojx3 != 0)
    15491543                _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
     
    15511545                _ecn_tsk_mk_rsp_hdr(fp_obj, &a_ecn_hdp, p_req_esv);
    15521546
    1553         f_put_fbs_eoj("_ecn_tsk_eoj_get", "fa_fbs_id", fa_fbs_id); /* s/deoj ƒfƒoƒbƒOo—Í */
    1554 
    1555         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ */
     1547        f_put_fbs_eoj("_ecn_tsk_eoj_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
     1548
     1549        /* 応答電文用メモリにデータ追加 */
    15561550        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_ecn_hdp,
    15571551                        sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
     
    15611555        }
    15621556
    1563         /* payloadæ“ª‚ÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)‚ð“Ç‚Ý”ò‚΂· */
     1557        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    15641558        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    15651559        if (a_ret) {
     
    15681562        }
    15691563
    1570         /* ‰ž“š“d•¶—pfbsÝ’è */
     1564        /* 応答電文用fbs設定 */
    15711565        _ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
    15721566
    1573         /* ƒvƒƒpƒeƒB’l“ǂݍž‚ÝŽÀs */
     1567        /* プロパティ値読み込み実行 */
    15741568        a_ret = _ecn_tsk_eoj_get_main(fp_obj, fa_eobjatr, fa_forward, fa_access, fa_fbs_id, a_fbs_res,
    15751569                ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
     
    15811575        if (a_sw_ok) {
    15821576                if (!fa_res_esv) {
    1583                         /* ‰ž“š•s—v‚̏ꍇ */
     1577                        /* 応答不要の場合 */
    15841578                        _ecn_fbs_del(a_fbs_res);
    15851579                        goto lb_finally;
    15861580                }
    1587                 /* Ý’菈—¬Œ÷ */
     1581                /* 設定処理成功 */
    15881582                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
    15891583        } else {
    15901584                if (!fa_sna_esv) {
    1591                         /* ‰ž“š•s—v‚̏ꍇ */
     1585                        /* 応答不要の場合 */
    15921586                        _ecn_fbs_del(a_fbs_res);
    15931587                        goto lb_finally;
    15941588                }
    1595                 /* Ý’菈—Ž¸”s */
     1589                /* 設定処理失敗 */
    15961590                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
    15971591        }
    1598         /* ‰ž“š‘—M */
     1592        /* 応答送信 */
    15991593        a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
    16001594        if (a_ret != E_OK) {
     
    16051599
    16061600lb_except:
    1607         /* ƒf[ƒ^‘—MŽ¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     1601        /* データ送信失敗したら領域解放 */
    16081602        if (a_fbs_res.ptr)
    16091603                _ecn_fbs_del(a_fbs_res);
     
    16131607}
    16141608
    1615 /* ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹     */
     1609/* プロパティ値読み出し要求 */
    16161610static void _ecn_tsk_eoj_res(ECN_FBS_ID fa_fbs_id, ECN_SRV_CODE fa_res_esv,
    16171611        ECN_SRV_CODE fa_sna_esv)
     
    16261620        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    16271621
    1628         /* ‰ŠúŽæ“¾ƒTƒCƒY */
     1622        /* 初期取得サイズ */
    16291623        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    16301624
    1631         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚̎擾 */
     1625        /* 応答電文用メモリの取得 */
    16321626        a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
    1633         if (a_ret != E_OK || !a_fbs_res.ptr) { /* Šm•ÛŽ¸”s */
     1627        if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
    16341628                ECN_DBG_PUT "_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
    16351629                goto lb_finally;
    16361630        }
    16371631
    1638         /* ‰ž“š“d•¶Ý’è                                         */
     1632        /* 応答電文設定                                               */
    16391633        _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
    16401634
    1641         f_put_fbs_eoj("_ecn_tsk_eoj_res", "fa_fbs_id", fa_fbs_id); /* s/deoj ƒfƒoƒbƒOo—Í */
    1642 
    1643         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ */
     1635        f_put_fbs_eoj("_ecn_tsk_eoj_res", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
     1636
     1637        /* 応答電文用メモリにデータ追加 */
    16441638        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_ecn_hdp,
    16451639                        sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
     
    16491643        }
    16501644
    1651         /* payloadæ“ª‚ÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)‚ð“Ç‚Ý”ò‚΂· */
     1645        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    16521646        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    16531647        if (a_ret) {
     
    16561650        }
    16571651
    1658         /* ‰ž“š“d•¶—pfbsÝ’è */
     1652        /* 応答電文用fbs設定 */
    16591653        _ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
    16601654
    1661         /* ƒvƒƒpƒeƒB’l“ǂݍž‚ÝŽÀs */
     1655        /* プロパティ値読み込み実行 */
    16621656        a_ret = _ecn_tsk_eoj_res_main(fa_fbs_id, a_fbs_res,
    16631657                ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
     
    16691663        if (a_sw_ok) {
    16701664                if (!fa_res_esv) {
    1671                         /* ‰ž“š•s—v‚̏ꍇ */
     1665                        /* 応答不要の場合 */
    16721666                        _ecn_fbs_del(a_fbs_res);
    16731667                        goto lb_finally;
    16741668                }
    1675                 /* Ý’菈—¬Œ÷ */
     1669                /* 設定処理成功 */
    16761670                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
    16771671        } else {
    16781672                if (!fa_sna_esv) {
    1679                         /* ‰ž“š•s—v‚̏ꍇ */
     1673                        /* 応答不要の場合 */
    16801674                        _ecn_fbs_del(a_fbs_res);
    16811675                        goto lb_finally;
    16821676                }
    1683                 /* Ý’菈—Ž¸”s */
     1677                /* 設定処理失敗 */
    16841678                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
    16851679        }
    1686         /* ‰ž“š‘—M */
     1680        /* 応答送信 */
    16871681        a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
    16881682        if (a_ret != E_OK) {
     
    16931687
    16941688lb_except:
    1695         /* ƒf[ƒ^‘—MŽ¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     1689        /* データ送信失敗したら領域解放 */
    16961690        if (a_fbs_res.ptr)
    16971691                _ecn_fbs_del(a_fbs_res);
     
    17081702        T_ECN_EDT_HDR   a_ecn_hdp;
    17091703        ECN_FBS_ID              a_fbs_res       = { 0 };
    1710         int                             a_rdprp_wrpos;  /*      ƒvƒƒpƒeƒB“ǂݍž‚ÝŒ”‘‚«ž‚ÝŽž‚̃wƒbƒhˆÊ’u    */
     1704        int                             a_rdprp_wrpos;  /*      プロパティ読み込み件数書き込み時のヘッド位置  */
    17111705        ER              a_ret;
    17121706        int             i, a_size, a_rdlen;
    17131707        int             a_sw_ok = 1;
    1714         int             a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;    /* ˆ—ƒvƒƒpƒeƒB” */
     1708        int             a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;    /* 処理プロパティ数 */
    17151709
    17161710        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
     
    17191713                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3 ECN_DBG_END;
    17201714
    1721         /* ‰ŠúŽæ“¾ƒTƒCƒY */
     1715        /* 初期取得サイズ */
    17221716        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    17231717
    1724         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚̎擾 */
     1718        /* 応答電文用メモリの取得 */
    17251719        a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
    1726         if (a_ret != E_OK || !a_fbs_res.ptr) /* Šm•ÛŽ¸”s */
     1720        if (a_ret != E_OK || !a_fbs_res.ptr) /* 確保失敗 */
    17271721                goto lb_finally;
    17281722
    1729         /* ‰ž“š“d•¶Ý’è */
     1723        /* 応答電文設定 */
    17301724        if(p_req_esv->edata.deoj.eojx3 != 0)
    17311725                _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
     
    17341728        a_size -= sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY);
    17351729
    1736         f_put_fbs_eoj("_ecn_tsk_eoj_set_get", "fa_fbs_id", fa_fbs_id); /* s/deoj ƒfƒoƒbƒOo—Í */
    1737 
    1738         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ */
     1730        f_put_fbs_eoj("_ecn_tsk_eoj_set_get", "fa_fbs_id", fa_fbs_id); /* s/deoj デバッグ出力 */
     1731
     1732        /* 応答電文用メモリにデータ追加 */
    17391733        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_ecn_hdp,
    17401734                                sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
     
    17421736                goto lb_except;
    17431737
    1744         /* payloadæ“ª‚ÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)‚ð“Ç‚Ý”ò‚΂· */
     1738        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    17451739        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    17461740        if (a_ret)
    17471741                goto lb_except;
    17481742
    1749         /* ‰ž“š“d•¶—pfbsÝ’è */
     1743        /* 応答電文用fbs設定 */
    17501744        _ecn_tsk_set_rsp_fbs(a_fbs_res, fa_fbs_id.ptr);
    17511745
    1752         /* ƒvƒƒpƒeƒB’l‘‚«ž‚ÝŽÀs */
     1746        /* プロパティ値書き込み実行 */
    17531747        a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, false, fa_fbs_id, a_fbs_res,
    17541748                fa_fbs_anno, a_count, &a_sw_ok);
     
    17631757                (a_sw_ok ? "true" : "false") ECN_DBG_END;
    17641758
    1765         /* ŽŸ‚ÌŒ”‚ð“Ç‚ÝŽæ‚é(1byte)                                            */
    1766         /* ¨ ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]        */
     1759        /* 次の件数を読み取る(1byte)                                             */
     1760        /* ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet] */
    17671761        a_rdlen = i = 0;
    17681762        a_ret = _ecn_fbs_get_data(fa_fbs_id, &i, 1, &a_rdlen);
     
    17711765        a_count = *(uint8_t *)&i;
    17721766
    1773         /* ƒvƒƒpƒeƒB“ǂݍž‚ÝŒ”‘‚«ž‚ÝŽž‚̃wƒbƒhî•ñ‚ð‹L˜^ */
     1767        /* プロパティ読み込み件数書き込み時のヘッド情報を記録 */
    17741768        a_rdprp_wrpos = _ecn_fbs_get_datalen(a_fbs_res);
    17751769
    1776         /* ‰ž“š“d•¶—pƒƒ‚ƒŠ‚Ƀf[ƒ^’ljÁ (OPCGet 1byte) */
     1770        /* 応答電文用メモリにデータ追加 (OPCGet 1byte) */
    17771771        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &i, 1);
    17781772        if (a_ret)
    17791773                goto lb_except;
    17801774
    1781         /* ‚±‚ÌŽž“_‚ł̉ž“š“d•¶’†ƒvƒƒpƒeƒBŒ”‚ð‹L˜^ */
     1775        /* この時点での応答電文中プロパティ件数を記録 */
    17821776        i = ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc;
    17831777        ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = 0;
    17841778
    1785         /* ƒvƒƒpƒeƒB’l“ǂݍž‚ÝŽÀs */
     1779        /* プロパティ値読み込み実行 */
    17861780        a_ret = _ecn_tsk_eoj_get_main(fp_obj, fa_eobjatr, false, EPC_RULE_GET, fa_fbs_id, a_fbs_res,
    17871781                a_count, &a_sw_ok);
     
    17961790                (a_sw_ok ? "true" : "false") ECN_DBG_END;
    17971791
    1798         /* ƒvƒƒpƒeƒB“ǂݍž‚ÝŒ”‘‚«ž‚ÝŽž‚̃wƒbƒhî•ñ‚ŁA“ǂݏo‚µŒ”‚ð‹L˜^ */
     1792        /* プロパティ読み込み件数書き込み時のヘッド情報で、読み出し件数を記録 */
    17991793        _ecn_fbs_poke(a_fbs_res, a_rdprp_wrpos, ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc);
    18001794
    1801         /* ‹L˜^‚µ‚Ä‚¨‚¢‚½ƒvƒƒpƒeƒBŒ”i‘‚«ž‚ÝŒ”j‚ð‘‚«–ß‚· */
     1795        /* 記録しておいたプロパティ件数(書き込み件数)を書き戻す */
    18021796        ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.opc = (uint8_t)i;
    18031797
    1804         /* ‰ž“š—v‚̏ꍇ */
     1798        /* 応答要の場合 */
    18051799        if (a_sw_ok) {
    1806                 /* Ý’菈—¬Œ÷ */
     1800                /* 設定処理成功 */
    18071801                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_res_esv;
    18081802        } else {
    1809                 /* Ý’菈—Ž¸”s */
     1803                /* 設定処理失敗 */
    18101804                ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv;
    18111805        }
    1812         /* ‰ž“š‘—M */
     1806        /* 応答送信 */
    18131807        a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
    18141808        if (a_ret == E_OK)
     
    18161810
    18171811lb_except:
    1818         /* ƒf[ƒ^‘—MŽ¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     1812        /* データ送信失敗したら領域解放 */
    18191813        if (a_fbs_res.ptr)
    18201814                _ecn_fbs_del(a_fbs_res);
     
    18331827        int             i, a_size, a_rdlen;
    18341828        int             a_sw_ok = 1;
    1835         int             a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;    /* ˆ—ƒvƒƒpƒeƒB” */
     1829        int             a_count = ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc;    /* 処理プロパティ数 */
    18361830
    18371831        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
     
    18401834                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3 ECN_DBG_END;
    18411835
    1842         /* ‰ŠúŽæ“¾ƒTƒCƒY */
     1836        /* 初期取得サイズ */
    18431837        a_size = sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY) + sizeof(T_ECN_PRP);
    18441838
    1845         /* ‰ž“š“d•¶—pƒƒ‚ƒŠiƒ_ƒ~[j‚̎擾 */
     1839        /* 応答電文用メモリ(ダミー)の取得 */
    18461840        a_ret = _ecn_fbs_cre(a_size, &a_fbs_dmy);
    1847         if (a_ret != E_OK || !a_fbs_dmy.ptr) /* Šm•ÛŽ¸”s */
     1841        if (a_ret != E_OK || !a_fbs_dmy.ptr) /* 確保失敗 */
    18481842                goto lb_finally;
    18491843
    1850         /* ‰ž“š“d•¶Ý’è                                         */
     1844        /* 応答電文設定                                               */
    18511845        _ecn_tsk_mk_rsp_hdr_res(&a_ecn_hdp, p_req_esv);
    18521846        a_size -= sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY);
    18531847
    1854         /* payloadæ“ª‚ÌT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)‚ð“Ç‚Ý”ò‚΂· */
     1848        /* payload先頭のT_ECN_HDR(ecn_hdr), T_ECN_EDATA_BODY(edata)を読み飛ばす */
    18551849        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    18561850        if (a_ret)
    18571851                goto lb_except;
    18581852
    1859         /* ƒvƒƒpƒeƒB’l‘‚«ž‚݉ž“š“Ç‚Ý”ò‚΂µŽÀs */
     1853        /* プロパティ値書き込み応答読み飛ばし実行 */
    18601854        a_ret = _ecn_tsk_eoj_skip_main(fp_obj, fa_fbs_id, a_count);
    18611855        if (a_ret) {
     
    18691863                (a_sw_ok ? "true" : "false") ECN_DBG_END;
    18701864
    1871         /* ŽŸ‚ÌŒ”‚ð“Ç‚ÝŽæ‚é(1byte)                                            */
    1872         /* ¨ ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet]        */
     1865        /* 次の件数を読み取る(1byte)                                             */
     1866        /* ECHONET-Lite_Ver.1.10_02.pdf p.40 [OPCGet] */
    18731867        a_rdlen = i = 0;
    18741868        a_ret = _ecn_fbs_get_data(fa_fbs_id, &i, 1, &a_rdlen);
     
    18771871        a_count = *(uint8_t *)&i;
    18781872
    1879         /* ƒvƒƒpƒeƒB’l“ǂݏo‚µ‰ž“š‚̏‘‚«ž‚ÝŽÀs */
     1873        /* プロパティ値読み出し応答の書き込み実行 */
    18801874        a_ret = _ecn_tsk_eoj_set_main(fp_obj, fa_eobjatr, true, fa_fbs_id, a_fbs_dmy,
    18811875                                                                  fa_fbs_anno, a_count, &a_sw_ok);
     
    18931887
    18941888lb_except:
    1895         /* ƒf[ƒ^‘—MŽ¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     1889        /* データ送信失敗したら領域解放 */
    18961890        if (a_fbs_dmy.ptr)
    18971891                _ecn_fbs_del(a_fbs_dmy);
     
    19021896
    19031897/*
    1904  * ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚Ý“d•¶ì¬
     1898 * 応答電文待ちの割り込み電文作成
    19051899 */
    19061900ER _ecn_mk_brk_wai(ECN_FBS_ID *pk_fbs_id, const void *p_dat, size_t fa_size)
    19071901{
    19081902        ER                              a_ret;
    1909         ECN_FBS_ID              a_fbs_id = { 0 };       /* —v‹“d•¶—pƒƒ‚ƒŠ     */
     1903        ECN_FBS_ID              a_fbs_id = { 0 };       /* 要求電文用メモリ     */
    19101904
    19111905        if (!pk_fbs_id)
     
    19131907        *pk_fbs_id = a_fbs_id;
    19141908        if (sizeof(a_fbs_id.ptr->payload) <= fa_size)
    1915                 return E_PAR; /* •tƒf[ƒ^‚ª‘å‚«‚·‚¬‚é */
     1909                return E_PAR; /* 付随データが大きすぎる */
    19161910        if (!p_dat && 0 < fa_size)
    1917                 return E_PAR; /* •tƒf[ƒ^ƒTƒCƒY‚ª1ˆÈã‚Ȃ̂Ƀf[ƒ^ƒ|ƒCƒ“ƒ^‚ªNULL */
    1918 
    1919         /* —v‹“d•¶—pƒƒ‚ƒŠ‚̎擾 */
     1911                return E_PAR; /* 付随データサイズが1以上なのにデータポインタがNULL */
     1912
     1913        /* 要求電文用メモリの取得 */
    19201914        a_ret = _ecn_fbs_cre((0 < fa_size ? fa_size : 1), &a_fbs_id);
    1921         if (a_ret != E_OK || !a_fbs_id.ptr) { /* Šm•ÛŽ¸”s */
     1915        if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
    19221916                syslog(LOG_WARNING, "_ecn_fbs_cre(%d) result = %d:%s", fa_size, a_ret, itron_strerror(a_ret));
    19231917                return a_ret;
    19241918        }
    19251919
    1926         /* —v‹“d•¶Ý’è */
     1920        /* 要求電文設定 */
    19271921        a_fbs_id.ptr->hdr.type = ECN_MSG_USER_BREAK;
    19281922        a_fbs_id.ptr->hdr.sender = ENOD_API_ID;
     
    19311925
    19321926        if (0 < fa_size && p_dat) {
    1933                 /* •tƒf[ƒ^’ljÁ */
     1927                /* 付随データ追加 */
    19341928                a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_dat, fa_size);
    19351929                if (a_ret) {
     
    19431937        *pk_fbs_id = a_fbs_id;
    19441938
    1945         /* ³íI—¹ */
     1939        /* 正常終了 */
    19461940        return a_ret;
    19471941
    19481942lb_except:
    1949         /* ƒf[ƒ^ì¬Ž¸”s‚µ‚½‚ç—̈æ‰ð•ú */
     1943        /* データ作成失敗したら領域解放 */
    19501944        if (a_fbs_id.ptr)
    19511945                _ecn_fbs_del(a_fbs_id);
     
    19541948}
    19551949
    1956 /* ‰ž“š“d•¶—pfbsÝ’è(sender/target‚̐ݒè) */
     1950/* 応答電文用fbs設定(sender/targetの設定) */
    19571951ER _ecn_tsk_cre_req_fbs(ID sender, uint8_t cmd, ECN_FBS_ID *pk_req)
    19581952{
     
    19831977}
    19841978
    1985 /* ‰ž“š“d•¶—pfbsÝ’è(sender/target‚̐ݒè) */
     1979/* 応答電文用fbs設定(sender/targetの設定) */
    19861980ER _ecn_tsk_cre_res_fbs(ECN_FBS_ID req, uint8_t cmd, ECN_FBS_ID *pk_res)
    19871981{
  • uKadecot/trunk/ecnl_ssp/echonet_task.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *              ECHONET Lite ƒ^ƒXƒN
     39 *              ECHONET Lite タスク
    4440 */
    4541
     
    5854
    5955/*
    60  *  ECHONET Lite ƒ^ƒXƒNŠÖ˜A‚̒萔‚̃fƒtƒHƒ‹ƒg’l‚Ì’è‹`
     56 *  ECHONET Lite タスク関連の定数のデフォルト値の定義
    6157 */
    6258#ifndef ECHONET_TASK_PRIORITY
    63 #define ECHONET_TASK_PRIORITY   6               /* ‰Šú—Dæ“x */
     59#define ECHONET_TASK_PRIORITY   6               /* 初期優先度 */
    6460#endif /* ECHONET_TASK_PRIORITY */
    6561
    6662#ifndef ECHONET_TASK_STACK_SIZE
    67 #define ECHONET_TASK_STACK_SIZE 1024    /* ƒXƒ^ƒbƒN—̈æ‚̃TƒCƒY */
     63#define ECHONET_TASK_STACK_SIZE 1024    /* スタック領域のサイズ */
    6864#endif /* ECHONET_TASK_STACK_SIZE */
    6965
     
    8278
    8379/*
    84  *  ECHONET Lite ƒ^ƒXƒN‚Ì–{‘Ì
     80 *  ECHONET Lite タスクの本体
    8581 */
    8682void echonet_task(intptr_t exinf);
    8783
    8884/*
    89  *  ECHONET Lite ƒ^ƒXƒN‹N“®—p
     85 *  ECHONET Lite タスク起動用
    9086 */
    9187void echonet_cychdr(intptr_t exinf);
    9288
    93 /* ECHONET Lite ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg‚Ì1ƒAƒiƒEƒ“ƒX“–‚½‚èÅ‘åƒm[ƒh” */
     89/* ECHONET Lite インスタンスリストの1アナウンス当たり最大ノード数 */
    9490#define ECN_IST_LST_EOJ_MAX_CT (84)
    9591
    96 /* ECHONET LiteƒIƒuƒWƒFƒNƒgƒR[ƒh x1,x2,x3(T_ECN_EOJ)‚ð24bit®”‚É•ÏŠ· */
     92/* ECHONET Liteオブジェクトコード x1,x2,x3(T_ECN_EOJ)を24bit整数に変換 */
    9793#define _ECN_EOJ2VALUE(s) (((s).eojx1 << 16) | ((s).eojx2 << 8) | (s).eojx3)
    9894
    9995enum ecn_epc_code
    10096{
    101         ECN_EPC_INL_BCS         =       0xD5    /* ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg’Ê’mƒvƒƒpƒeƒB */
     97        ECN_EPC_INL_BCS         =       0xD5    /* インスタンスリスト通知プロパティ */
    10298};
    10399
     
    129125
    130126/*
    131  * —v‹“d•¶ì¬
     127 * 要求電文作成
    132128 */
    133129ER _ecn_tsk_mk_esv(ECN_FBS_ID *fp_fbs_id, ID fa_seoj, ID fa_deoj,
     
    137133
    138134/*
    139  * ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚Ý“d•¶ì¬
     135 * 応答電文待ちの割り込み電文作成
    140136 */
    141137ER _ecn_mk_brk_wai(ECN_FBS_ID *pk_fbs_id, const void *p_dat, size_t fa_size);
  • uKadecot/trunk/ecnl_ssp/echonet_uip_task.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *              ECHONET Lite UDP’ʐMˆ—ƒ^ƒXƒN
     39 *              ECHONET Lite UDP通信処理タスク
    4440 */
    4541#ifdef SUPPORT_UIP
     
    9591
    9692/*
    97  * ŽóM‚µ‚½UDPƒf[ƒ^‚ðMAILBOX‚É‘—‚é
     93 * 受信したUDPデータをMAILBOXに送る
    9894 */
    9995ER _ecn_udp2mbx(const uint8_t *buffer, size_t fa_len, const T_IPV4EP *dst);
     
    110106
    111107        a_rcv_pkt.buffer = buffer;
    112         if (    a_rcv_pkt.t_esv->ecn_hdr.ehd1 != ECN_EDH1_ECHONET_LITE  /* ECHONET Lite‹KŠi     */
    113         ||      a_rcv_pkt.t_esv->ecn_hdr.ehd2 != ECN_EDH2_FORMAT_1                      /* “d•¶Œ`Ž®1            */) {
     108        if (    a_rcv_pkt.t_esv->ecn_hdr.ehd1 != ECN_EDH1_ECHONET_LITE  /* ECHONET Lite規格       */
     109        ||      a_rcv_pkt.t_esv->ecn_hdr.ehd2 != ECN_EDH2_FORMAT_1                      /* 電文形式1                */) {
    114110                ECN_DBG_PUT "[UDP ECHO SRV] illegal type (0x%02X,0x%02X)", a_rcv_pkt.t_esv->ecn_hdr.ehd1, a_rcv_pkt.t_esv->ecn_hdr.ehd2 ECN_DBG_END;
    115111                return E_PAR;
     
    134130        a_fbs_id.ptr->hdr.sender = ENOD_NOT_MATCH_ID;
    135131
    136         /* IPƒAƒhƒŒƒX‚©‚烊ƒ‚[ƒgECHONETƒm[ƒh‚Ö•ÏŠ· */
     132        /* IPアドレスからリモートECHONETノードへ変換 */
    137133        a_enod_id = udp_get_id((T_EDATA *)a_fbs_id.ptr, dst->ipaddr, dst->portno);
    138134        if (a_enod_id < 0 || tnum_enodadr <= a_enod_id) {
     
    140136                        ip2str(NULL, dst->ipaddr) ECN_DBG_END;
    141137        } else {
    142                 /* ‘—MŒ³ECHONETƒm[ƒh‚ð‹L˜^ */
     138                /* 送信元ECHONETノードを記録 */
    143139                a_fbs_id.ptr->hdr.sender = a_enod_id;
    144140        }
    145141        a_fbs_id.ptr->hdr.reply = a_fbs_id.ptr->hdr.sender;
    146142
    147         /* echonet_task‚É‘—‚é */
     143        /* echonet_taskに送る */
    148144        a_ret = psnd_dtq(ecn_svc_mailboxid, (intptr_t)a_fbs_id.ptr);
    149145        if (a_ret != E_OK) {
     
    158154
    159155/*
    160  *  ECHONET UDP’ʐMˆ—ƒ^ƒXƒN
     156 *  ECHONET UDP通信処理タスク
    161157 */
    162158static
    163159PT_THREAD(echonet_udp_task_pt(void))
    164160{
    165         /* UDPo—͗̈æiŽb’èj */
     161        /* UDP出力領域(暫定) */
    166162        static uint_t buffer[(UIP_BUFSIZE) / sizeof(uint_t) + 1];
    167163
     
    201197        }
    202198
    203         /* ŽüŠúƒnƒ“ƒhƒ‰‚Ì‹N“® */
     199        /* 周期ハンドラの起動 */
    204200        a_ret = sta_cyc(ecn_udp_cychdrid);
    205201        if (a_ret != E_OK) {
     
    220216        }
    221217
    222         /* ƒƒbƒZ[ƒWƒ‹[ƒv */
     218        /* メッセージループ */
    223219        for (;;) {
    224220                a_prev = a_now;
     
    244240
    245241                if (a_ret == E_OK) {
    246                         /* ‘—Mƒf[ƒ^’·‚ðŽæ“¾ */
     242                        /* 送信データ長を取得 */
    247243                        a_snd_len = _ecn_fbs_get_datalen(a_mdt.fbs_id);
    248244
     
    270266
    271267/*
    272  *  ECHONET UDP’ʐMˆ—ƒvƒƒgƒXƒŒƒbƒh‹N“®ƒ^ƒXƒN
     268 *  ECHONET UDP通信処理プロトスレッド起動タスク
    273269 */
    274270void echonet_udp_task(intptr_t exinf)
     
    278274
    279275/*
    280  *  ECHONET UDP’ʐMˆ—ƒ^ƒXƒN‹N“®—pŽüŠúƒnƒ“ƒhƒ‰[
     276 *  ECHONET UDP通信処理タスク起動用周期ハンドラー
    281277 */
    282278void echonet_udp_cychdr(intptr_t exinf)
     
    285281}
    286282
    287 /* ‰ž“š“d•¶—pfbsÝ’è(sender/target‚̐ݒè) */
     283/* 応答電文用fbs設定(sender/targetの設定) */
    288284static ER _ecn_udp_cre_req_fbs(ID sender, uint8_t cmd, ECN_FBS_ID *pk_req)
    289285{
     
    314310}
    315311
    316 /* ‰ž“š“d•¶—pfbsÝ’è(sender/target‚̐ݒè) */
     312/* 応答電文用fbs設定(sender/targetの設定) */
    317313static ER _ecn_udp_cre_res_fbs(ECN_FBS_ID req, uint8_t cmd, ECN_FBS_ID *pk_res)
    318314{
     
    344340
    345341/*
    346  *  “à•”ƒƒbƒZ[ƒWŽóMˆ—
     342 *  内部メッセージ受信処理
    347343 */
    348344void _ecn_int_msg(ECN_FBS_ID fbs_id, ECN_FBS_SSIZE_T a_snd_len)
     
    362358
    363359        switch(cmd){
    364         // IPƒAƒhƒŒƒX‚ð•ÔM
     360        // IPアドレスを返信
    365361        case ECN_UDP_MSG_GET_IPADDR_REQ:
    366362                if (a_snd_len < sizeof(msg)) {
     
    431427
    432428/*
    433  *  ECHONET “d•¶ŽóMˆ—
     429 *  ECHONET 電文受信処理
    434430 */
    435431void _ecn_esv_msg(ECN_FBS_ID fbs_id)
    436432{
    437         /* UDPo—͗̈æiŽb’èj */
     433        /* UDP出力領域(暫定) */
    438434        static uint_t buffer[(UIP_BUFSIZE) / sizeof(uint_t) + 1];
    439435        T_IPV4EP a_dst;
     
    444440        uip_ipaddr(a_dst.ipaddr, 0,0,0,0);
    445441        a_dst.portno = 0;
    446         /* ‘—MæIPƒAƒhƒŒƒX */
     442        /* 送信先IPアドレス */
    447443        a_ret = udp_get_ip(&a_dst, fbs_id.ptr->hdr.target);
    448444        if (!a_ret) {
    449                 ECN_DBG_PUT "[UDP TSK] echonet-node 0x%02X-0x%02X-0x%02X ¨ udp dest(%s)",
     445                ECN_DBG_PUT "[UDP TSK] echonet-node 0x%02X-0x%02X-0x%02X udp dest(%s)",
    450446                        ((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx1,
    451447                        ((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx2,
     
    453449                        ip2str(NULL, a_dst.ipaddr) ECN_DBG_END;
    454450
    455                 /* fbs‚©‚ço—͗̈æ‚Ƀf[ƒ^‚𒊏o */
     451                /* fbsから出力領域にデータを抽出 */
    456452                a_snd_len = 0;
    457453                a_ret = _ecn_fbs_get_data(fbs_id, buffer, sizeof(buffer), &a_snd_len);
     
    460456                }
    461457                else if(uip_ipaddr_cmp(a_dst.ipaddr, localhost)) {
    462                         /* ‘—Mæ‚ª127.0.0.1 ¨ mbx‚É“]‘— */
    463                         ECN_DBG_PUT "redirect ecn_udp_mailboxid ¨ ecn_svc_mailboxid (esv:0x%02X)",
     458                        /* 送信先が127.0.0.1 → mbxに転送 */
     459                        ECN_DBG_PUT "redirect ecn_udp_mailboxid ecn_svc_mailboxid (esv:0x%02X)",
    464460                                ((T_EDATA *)fbs_id.ptr)->hdr.edata.esv ECN_DBG_END;
    465461
     
    475471                        _ecn_dbg_bindmp((const uint8_t *)buffer, a_snd_len);
    476472#endif
    477                         /* UDP‘—M */
     473                        /* UDP送信 */
    478474                        a_ret = udp_snd_dat(UDP_CEPID, &a_dst, buffer, a_snd_len);
    479475                        if (a_ret < 0) {
     
    482478                }
    483479
    484                 /* ƒf[ƒ^‚ª’·‚·‚¬‚Ä1ƒpƒPƒbƒg‚ÉŽû‚Ü‚ç‚È‚©‚Á‚½ê‡ */
     480                /* データが長すぎて1パケットに収まらなかった場合 */
    485481                if (_ecn_fbs_exist_data(fbs_id)) {
    486482                        ECN_DBG_PUT "[UDP TSK] send, data so long: %dbyte(s)", _ecn_fbs_get_datalen(fbs_id) ECN_DBG_END;
     
    497493
    498494/*
    499  *  ƒmƒ“ƒuƒƒbƒLƒ“ƒOƒR[ƒ‹‚̃R[ƒ‹ƒoƒbƒNŠÖ”
     495 *  ノンブロッキングコールのコールバック関数
    500496 */
    501497static
     
    518514        }
    519515#ifdef _MSC_VER
    520         /* (ŠJ”­—p) ECHONET—pƒpƒPƒbƒgˆÈŠO‚Í“Ç‚ÝŽÌ‚Ä‚é */
     516        /* (開発用) ECHONET用パケット以外は読み捨てる */
    521517        if (buffer[0] != 0x10 || buffer[1] != 0x81) {
    522518                PT_EXIT(&s.pt);
     
    548544
    549545/*
    550  *  ƒŠƒ‚[ƒgECHONETƒm[ƒh‚Ì“K‡Šm”F
     546 *  リモートECHONETノードの適合確認
    551547 */
    552548bool_t is_match(const EOBJCB *enodcb, T_EDATA *edata, const void *_ipaddr, uint16_t portno)
     
    566562                return false;
    567563
    568         /* ƒm[ƒhƒXƒ^[ƒgŽžƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg’Ê’mˆÈŠO‚͏œŠO */
     564        /* ノードスタート時インスタンスリスト通知以外は除外 */
    569565        if (    edata->hdr.edata.esv != ESV_INF
    570566                ||      edata->hdr.edata.deoj.eojx1 != EOJ_X1_PROFILE
     
    588584                }
    589585                ECN_DBG_PUT "is_match(): ecn_itr_nxt() result: epc=0x%02X, pdc=%d", epc, pdc ECN_DBG_END;
    590                 /* ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg’Ê’m‚Ü‚½‚ÍŽ©ƒm[ƒhƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg‚rˆÈŠO‚͏œŠO */
     586                /* インスタンスリスト通知または自ノードインスタンスリストS以外は除外 */
    591587                if ((epc != 0xD5) && (epc != 0xD6)) {
    592588                        continue;
    593589                }
    594590
    595                 /* ‚QƒoƒCƒg–ڈȍ~‚Éeoj‚ª—ñ‹“‚³‚ê‚Ä‚¢‚é */
     591                /* 2バイト目以降にeojが列挙されている */
    596592                count = (pdc - 1) / sizeof(T_ECN_EOJ);
    597593
    598                 /* ƒm[ƒh“à‚Ì‹@ŠíƒIƒuƒWƒFƒNƒg‚ðŒŸõ */
     594                /* ノード内の機器オブジェクトを検索 */
    599595                for (k = 0; k < enodcb->eobjcnt; k++) {
    600596                        p_eobj = enodcb->eobjs[k];
    601597
    602                         /* ƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg‚ðŠm”F */
     598                        /* インスタンスリストを確認 */
    603599                        match = false;
    604600                        for (i = 0, j = 1; i < count; i++, j += sizeof(T_ECN_EOJ)) {
     
    618614                }
    619615
    620                 /* ‚·‚ׂđµ‚Á‚Ä‚¢‚½‚ç“K‡iƒCƒ“ƒXƒ^ƒ“ƒXƒŠƒXƒg‚Ì•û‚ª‘½‚­‚Ä‚à‚¢‚¢‚±‚Æ‚Æ‚·‚éj */
     616                /* すべて揃っていたら適合(インスタンスリストの方が多くてもいいこととする) */
    621617                return true;
    622618        }
     
    626622
    627623/*
    628  *  IPƒAƒhƒŒƒX‚©‚烊ƒ‚[ƒgECHONETƒm[ƒh‚Ö•ÏŠ·
     624 *  IPアドレスからリモートECHONETノードへ変換
    629625 */
    630626ECN_ENOD_ID udp_get_id(T_EDATA *edata, const T_IN4_ADDR ipaddr, uint16_t portno)
     
    638634                return ENOD_MULTICAST_ID;
    639635
    640         /* IPƒAƒhƒŒƒX‚Ì“¯‚¶‚à‚Ì‚ðŒŸõ */
     636        /* IPアドレスの同じものを検索 */
    641637        for (i = 0, ea = enodadrb_table; i < tnum_enodadr; i++, ea++) {
    642638                if (!ea->inuse)
     
    650646        }
    651647
    652         /* ‘Ήž‚·‚郊ƒ‚[ƒgƒm[ƒh‚ðŒŸõ */
     648        /* 対応するリモートノードを検索 */
    653649        for (i = ENOD_REMOTE_ID, ea = &enodadrb_table[ENOD_REMOTE_ID]; i < tnum_enodadr; i++, ea++) {
    654650                if (!ea->inuse)
     
    661657                        continue;
    662658
    663                 /* ‘Ήž‚·‚郊ƒ‚[ƒgƒm[ƒh‚ª‚ ‚ê‚ÎIPƒAƒhƒŒƒX‚ðÝ’è */
     659                /* 対応するリモートノードがあればIPアドレスを設定 */
    664660                uip_ipaddr_copy(ea->ipaddr, ipaddr);
    665661
     
    669665        }
    670666
    671         /* ‹ó‚«—̈æ‚ð’T‚µ‚ÄŽ©“®“o˜^ */
     667        /* 空き領域を探して自動登録 */
    672668        for (i = ENOD_REMOTE_ID, ea = &enodadrb_table[ENOD_REMOTE_ID]; i < tnum_enodadr; i++, ea++) {
    673669                if (ea->inuse)
     
    686682
    687683/*
    688  *  ƒŠƒ‚[ƒgECHONETƒm[ƒh‚©‚çIPƒAƒhƒŒƒX‚Ö•ÏŠ·
     684 *  リモートECHONETノードからIPアドレスへ変換
    689685 */
    690686int udp_get_ip(T_IPV4EP *fp_ipep, ECN_ENOD_ID fa_enodid)
     
    698694
    699695        if (fa_enodid == ENOD_MULTICAST_ID) {
    700                 /* target‚ªENOD_MULTICAST_ID‚̏ꍇAƒ}ƒ‹ƒ`ƒLƒƒƒXƒg‚ðs‚¤ */
     696                /* targetがENOD_MULTICAST_IDの場合、マルチキャストを行う */
    701697                uip_ipaddr_copy(fp_ipep->ipaddr, multicast);
    702698                return 0;       /* ok */
     
    704700
    705701        if (fa_enodid < ENOD_REMOTE_ID) {
    706                 /* target‚ª–¢’è‹`ELOCALEAPI‚̏ꍇAƒ[ƒJƒ‹”z‘—‚ðs‚¤ */
     702                /* targetが未定義・LOCAL・APIの場合、ローカル配送を行う */
    707703                uip_ipaddr_copy(fp_ipep->ipaddr, localhost);
    708704                return 0;       /* ok */
  • uKadecot/trunk/ecnl_ssp/echonet_uip_task.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *              ECHONET Lite ƒ^ƒXƒN
     39 *              ECHONET Lite タスク
    4440 */
    4541
     
    5551
    5652/*
    57  *  ECHONET Lite ˆêÄ“¯•ñƒAƒhƒŒƒX
     53 *  ECHONET Lite 一斉同報アドレス
    5854 */
    5955#ifdef SIL_ENDIAN_LITTLE
     
    6460
    6561/*
    66  *  ECHONET Lite ƒ^ƒXƒNŠÖ˜A‚̒萔‚̃fƒtƒHƒ‹ƒg’l‚Ì’è‹`
     62 *  ECHONET Lite タスク関連の定数のデフォルト値の定義
    6763 */
    6864#ifndef ECHONET_UDP_TASK_PRIORITY
    69 #define ECHONET_UDP_TASK_PRIORITY       5               /* ‰Šú—Dæ“x */
     65#define ECHONET_UDP_TASK_PRIORITY       5               /* 初期優先度 */
    7066#endif /* ECHONET_UDP_TASK_PRIORITY */
    7167
    7268#ifndef ECHONET_UDP_TASK_STACK_SIZE
    73 #define ECHONET_UDP_TASK_STACK_SIZE     1024    /* ƒXƒ^ƒbƒN—̈æ‚̃TƒCƒY */
     69#define ECHONET_UDP_TASK_STACK_SIZE     1024    /* スタック領域のサイズ */
    7470#endif /* ECHONET_UDP_TASK_STACK_SIZE */
    7571
     
    7975
    8076/*
    81  *  ECHONET Lite ƒ^ƒXƒN‚Ì–{‘Ì
     77 *  ECHONET Lite タスクの本体
    8278 */
    8379void echonet_udp_task(intptr_t exinf);
    8480
    85 /*  ƒmƒ“ƒuƒƒbƒLƒ“ƒOƒR[ƒ‹‚̃R[ƒ‹ƒoƒbƒNŠÖ”  */
     81/*  ノンブロッキングコールのコールバック関数  */
    8682ER callback_nblk_udp(struct uip_udp_conn *uip_udp_conn, int fncd, void *p_parblk);
    8783
    88 /*  ECHONET Lite ƒ^ƒXƒN‹N“®—pŽüŠúƒnƒ“ƒhƒ‰[ */
     84/*  ECHONET Lite タスク起動用周期ハンドラー */
    8985void echonet_udp_cychdr(intptr_t exinf);
    9086
    9187/*
    92  *  ƒŠƒ‚[ƒgECHONETƒm[ƒh‚Ì“K‡Šm”F
     88 *  リモートECHONETノードの適合確認
    9389 */
    9490bool_t is_match(const EOBJCB *eobjcb, T_EDATA *edata, const void *_ipaddr, uint16_t portno);
    9591
    96 /* IPƒAƒhƒŒƒX‚𕶎š—ñ‚É•ÏŠ· */
     92/* IPアドレスを文字列に変換 */
    9793char *ipaddr2str(char *buf, int bubsz, uint8_t *ipaddr);
    9894
  • uKadecot/trunk/ecnl_ssp/fbs_string.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2015 Cores Co., Ltd. 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 *  @(#) $Id$
     
    5147
    5248/*
    53  *  ”’l‚𕶎š—ñ‚É•ÏŠ·
     49 *  数値を文字列に変換
    5450 */
    5551#define CONVERT_BUFLEN  ((sizeof(uintptr_t) * CHAR_BIT + 2) / 3)
    56                                                                                 /* uintptr_tŒ^‚̐”’l‚̍ő啶Žš” */
     52                                                                                /* uintptr_t型の数値の最大文字数 */
    5753static ER
    5854convert(ECN_FBS_ID fbs, ECN_FBS_SSIZE_T *pos, uintptr_t val, uint_t radix, const char *radchar,
     
    10096
    10197/*
    102  *  •¶Žš—ñ®Œ`o—Í
     98 *  文字列整形出力
    10399 */
    104100static const char raddec[] = "0123456789";
  • uKadecot/trunk/ecnl_ssp/fbs_string.h

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

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/kadecot/jsonsl.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/kadecot/kadecot_names.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2015 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    133129                count = table[pos++];
    134130
    135                 /* ––’[‚̃m[ƒh */
     131                /* 末端のノード */
    136132                if (count == 0) {
    137                         /* NULL•¶Žš‚àŠÜ‚ß‚½ƒTƒCƒY */
     133                        /* NULL文字も含めたサイズ */
    138134                        if(i != (nameLen + 1))
    139135                                return 0;
     
    150146                        length = table[pos++];
    151147                        for (j = 0, k = i; j < length; j++, k++) {
    152                                 /* NULL•¶Žš‚àŠÜ‚ß‚½ƒ`ƒFƒbƒN */
     148                                /* NULL文字も含めたチェック */
    153149                                if((k > nameLen) || (table[pos++] != name[k])){
    154150                                        pos = start + 1 + length + 2;
     
    199195                }
    200196
    201                 /* ––’[‚̃m[ƒh */
     197                /* 末端のノード */
    202198                if ((mask & 0x0001) != 0) {
    203199                        int bufpos = 0;
     
    243239                count = table[pos++];
    244240
    245                 /* ––’[‚̃m[ƒh */
     241                /* 末端のノード */
    246242                if (count == 0) {
    247                         /* NULL•¶Žš‚àŠÜ‚ß‚½ƒTƒCƒY */
     243                        /* NULL文字も含めたサイズ */
    248244                        if(i != (nameLen + 1))
    249245                                return 0;
     
    258254                        length = table[pos++];
    259255                        for (j = 0, k = i; j < length; j++, k++) {
    260                                 /* NULL•¶Žš‚àŠÜ‚ß‚½ƒ`ƒFƒbƒN */
     256                                /* NULL文字も含めたチェック */
    261257                                if((k > nameLen) || (table[pos++] != name[k])){
    262258                                        pos = start + 1 + length + 2;
     
    295291                count = table[pos++];
    296292
    297                 /* ––’[‚̃m[ƒh */
     293                /* 末端のノード */
    298294                if (count == 0) {
    299295                        epc = table[pos++];
  • uKadecot/trunk/kadecot/kadecot_names.h

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

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2015 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4642#include "main.h"
    4743
    48 /* ƒp[ƒXƒGƒ‰[i’è‹`‚̂݁j */
     44/* パースエラー(定義のみ) */
    4945const char parse_error[] = "com.sonycsl.kadecot.plugin.echonetlite.error.parse_error";
    50 /* –³Œø‚ȃŠƒNƒGƒXƒgi’è‹`‚̂݁j */
     46/* 無効なリクエスト(定義のみ) */
    5147const char invalid_request[] = "com.sonycsl.kadecot.plugin.echonetlite.error.invalid_request";
    52 /* ‘¶Ý‚µ‚È‚¢ƒƒ\ƒbƒhi’è‹`‚̂݁j */
     48/* 存在しないメソッド(定義のみ) */
    5349const char method_not_found[] = "com.sonycsl.kadecot.plugin.echonetlite.error.method_not_found";
    54 /* echo object‚ª‘¶Ý‚µ‚È‚¢,@JSONArrayŒ`Ž®‚É‚È‚Á‚Ä‚¢‚È‚¢ */
     50/* echo objectが存在しない, JSONArray形式になっていない */
    5551const char invalid_params[] = "com.sonycsl.kadecot.plugin.echonetlite.error.invalid_params";
    56 /* ƒ^ƒCƒ€ƒAƒEƒg”­¶, ƒR[ƒ‹ƒoƒbƒN‚ª@null*/
     52/* タイムアウト発生, コールバックが null*/
    5753const char internal_error[] = "com.sonycsl.kadecot.plugin.echonetlite.error.internal_error";
    5854
     
    278274
    279275        if (s->state == WAMP_PARSE_STATE_ERROR) {
    280                 /* WAMPƒƒbƒZ[ƒW‚̍Ōゾ‚Á‚½‚ç */
     276                /* WAMPメッセージの最後だったら */
    281277                if ((state->level == 1) && (action == JSONSL_ACTION_POP)
    282278                        && (state->type == JSONSL_T_LIST)) {
     
    300296        struct jsonsl_state_st *state, const char *buf)
    301297{
    302         /* WAMPƒƒbƒZ[ƒW‚̐擪‚¾‚Á‚½‚ç */
     298        /* WAMPメッセージの先頭だったら */
    303299        if ((state->level == 1) && (action == JSONSL_ACTION_PUSH)
    304300                && (state->type == JSONSL_T_LIST)) {
    305                 /* ƒƒbƒZ[ƒWƒR[ƒhŽæ“¾ŠJŽnó‘ԂɈڂé */
     301                /* メッセージコード取得開始状態に移る */
    306302                s->state = WAMP_PARSE_STATE_CODE_PUSH;
    307303        }
     
    311307        struct jsonsl_state_st *state, const char *buf)
    312308{
    313         /* ƒƒbƒZ[ƒWƒR[ƒh‚̎擾ŠJŽn */
     309        /* メッセージコードの取得開始 */
    314310        if ((action == JSONSL_ACTION_PUSH)
    315311                && (state->type == JSONSL_T_SPECIAL)) {
    316                 /* ƒƒbƒZ[ƒWƒR[ƒhŽæ“¾ó‘ԂɈڂé */
     312                /* メッセージコード取得状態に移る */
    317313                s->state = WAMP_PARSE_STATE_CODE_POP;
    318314        }
    319315        else
    320                 /* ƒƒbƒZ[ƒWƒR[ƒh‚ªŽæ“¾‚Å‚«‚È‚¯‚ê‚΃Gƒ‰[ */
     316                /* メッセージコードが取得できなければエラー */
    321317                s->state = WAMP_PARSE_STATE_ERROR;
    322318}
     
    328324        wamp_parse_state_t prsst = WAMP_PARSE_STATE_ERROR;
    329325
    330         /* ƒƒbƒZ[ƒWƒR[ƒh‚ªŽæ“¾‚Å‚« */
     326        /* メッセージコードが取得でき */
    331327        if ((action == JSONSL_ACTION_POP)
    332328                && (state->type == JSONSL_T_SPECIAL)) {
    333                 /* ƒƒbƒZ[ƒWƒR[ƒh‚ðŽæ“¾ */
     329                /* メッセージコードを取得 */
    334330                code = atoi(s->jsn_buf);
    335331                switch (code) {
     
    531527                }
    532528
    533                 /* ’m‚Á‚Ä‚¢‚郁ƒbƒZ[ƒWƒR[ƒh‚¾‚Á‚½‚ç */
     529                /* 知っているメッセージコードだったら */
    534530                if (s->proc_handler != NULL) {
    535                         /* ƒpƒ‰ƒ[ƒ^Žæ“¾ó‘ԂɈڂé */
     531                        /* パラメータ取得状態に移る */
    536532                        s->code = (wamp_code_t)code;
    537533                }
    538534        }
    539535
    540         /* ƒƒbƒZ[ƒWƒR[ƒh‚ªŽæ“¾‚Å‚«‚È‚¯‚ê‚΃Gƒ‰[ */
     536        /* メッセージコードが取得できなければエラー */
    541537        s->state = prsst;
    542538}
     
    545541        struct jsonsl_state_st *state, const char *buf)
    546542{
    547         /* ƒƒbƒZ[ƒWƒR[ƒh‚̎擾ŠJŽn */
     543        /* メッセージコードの取得開始 */
    548544        if ((action == JSONSL_ACTION_PUSH)
    549545                && (state->type == JSONSL_T_SPECIAL)) {
    550546                s->param_handler(s, action, s->prmst, NULL);
    551                 /* ƒƒbƒZ[ƒWƒR[ƒhŽæ“¾ó‘ԂɈڂé */
     547                /* メッセージコード取得状態に移る */
    552548                s->state = WAMP_PARSE_STATE_PARAM;
    553549        }
    554550        else
    555                 /* ƒƒbƒZ[ƒWƒR[ƒh‚ªŽæ“¾‚Å‚«‚È‚¯‚ê‚΃Gƒ‰[ */
     551                /* メッセージコードが取得できなければエラー */
    556552                s->state = WAMP_PARSE_STATE_ERROR;
    557553}
     
    560556        struct jsonsl_state_st *state, const char *buf)
    561557{
    562         /* ƒƒbƒZ[ƒWƒR[ƒh‚̎擾ŠJŽn */
     558        /* メッセージコードの取得開始 */
    563559        if ((action == JSONSL_ACTION_PUSH)
    564560                && (state->type == JSONSL_T_LIST)) {
    565561                s->param_handler(s, action, s->prmst, NULL);
    566                 /* ƒƒbƒZ[ƒWƒR[ƒhŽæ“¾ó‘ԂɈڂé */
     562                /* メッセージコード取得状態に移る */
    567563                s->state = WAMP_PARSE_STATE_PARAM;
    568564        }
    569565        else
    570                 /* ƒƒbƒZ[ƒWƒR[ƒh‚ªŽæ“¾‚Å‚«‚È‚¯‚ê‚΃Gƒ‰[ */
     566                /* メッセージコードが取得できなければエラー */
    571567                s->state = WAMP_PARSE_STATE_ERROR;
    572568}
     
    575571        struct jsonsl_state_st *state, const char *buf)
    576572{
    577         /* ƒƒbƒZ[ƒWƒR[ƒh‚̎擾ŠJŽn */
     573        /* メッセージコードの取得開始 */
    578574        if ((action == JSONSL_ACTION_PUSH)
    579575                && (state->type == JSONSL_T_OBJECT)) {
    580576                s->param_handler(s, action, s->prmst, NULL);
    581                 /* ƒƒbƒZ[ƒWƒR[ƒhŽæ“¾ó‘ԂɈڂé */
     577                /* メッセージコード取得状態に移る */
    582578                s->state = WAMP_PARSE_STATE_PARAM;
    583579        }
    584580        else
    585                 /* ƒƒbƒZ[ƒWƒR[ƒh‚ªŽæ“¾‚Å‚«‚È‚¯‚ê‚΃Gƒ‰[ */
     581                /* メッセージコードが取得できなければエラー */
    586582                s->state = WAMP_PARSE_STATE_ERROR;
    587583}
     
    590586        struct jsonsl_state_st *state, const char *buf)
    591587{
    592         /* ƒƒbƒZ[ƒWƒR[ƒh‚̎擾ŠJŽn */
     588        /* メッセージコードの取得開始 */
    593589        if ((action == JSONSL_ACTION_PUSH)
    594590                && (state->type == JSONSL_T_STRING)) {
    595591                s->param_handler(s, action, s->prmst, NULL);
    596                 /* ƒƒbƒZ[ƒWƒR[ƒhŽæ“¾ó‘ԂɈڂé */
     592                /* メッセージコード取得状態に移る */
    597593                s->state = WAMP_PARSE_STATE_PARAM;
    598594        }
    599595        else
    600                 /* ƒƒbƒZ[ƒWƒR[ƒh‚ªŽæ“¾‚Å‚«‚È‚¯‚ê‚΃Gƒ‰[ */
     596                /* メッセージコードが取得できなければエラー */
    601597                s->state = WAMP_PARSE_STATE_ERROR;
    602598}
     
    605601        struct jsonsl_state_st *state, const char *buf)
    606602{
    607         /* ƒƒbƒZ[ƒWƒR[ƒh‚̎擾ŠJŽn */
     603        /* メッセージコードの取得開始 */
    608604        if ((action == JSONSL_ACTION_PUSH)
    609605                && (state->type == JSONSL_T_SPECIAL)) {
    610606                s->param_handler(s, action, s->prmst, NULL);
    611                 /* ƒƒbƒZ[ƒWƒR[ƒhŽæ“¾ó‘ԂɈڂé */
     607                /* メッセージコード取得状態に移る */
    612608                s->state = WAMP_PARSE_STATE_PARAM;
    613609        }
    614610        else
    615                 /* ƒƒbƒZ[ƒWƒR[ƒh‚ªŽæ“¾‚Å‚«‚È‚¯‚ê‚΃Gƒ‰[ */
     611                /* メッセージコードが取得できなければエラー */
    616612                s->state = WAMP_PARSE_STATE_ERROR;
    617613}
     
    620616        struct jsonsl_state_st *state, const char *buf)
    621617{
    622         /* ƒƒbƒZ[ƒWƒR[ƒh‚̎擾ŠJŽn */
     618        /* メッセージコードの取得開始 */
    623619        if ((action == JSONSL_ACTION_PUSH)
    624620                && (state->type == JSONSL_T_STRING)) {
    625621                s->param_handler(s, action, s->prmst, NULL);
    626                 /* ƒƒbƒZ[ƒWƒR[ƒhŽæ“¾ó‘ԂɈڂé */
     622                /* メッセージコード取得状態に移る */
    627623                s->state = WAMP_PARSE_STATE_PARAM;
    628624        }
    629625        else
    630                 /* ƒƒbƒZ[ƒWƒR[ƒh‚ªŽæ“¾‚Å‚«‚È‚¯‚ê‚΃Gƒ‰[ */
     626                /* メッセージコードが取得できなければエラー */
    631627                s->state = WAMP_PARSE_STATE_ERROR;
    632628}
     
    635631        struct jsonsl_state_st *state, const char *buf)
    636632{
    637         /* ƒR[ƒh‚²‚Ƃ̏ˆ—‚ðŽÀs */
     633        /* コードごとの処理を実行 */
    638634        s->proc_handler(s, action, state, buf);
    639635
    640         /* WAMPƒƒbƒZ[ƒW‚Ì––”ö‚¾‚Á‚½‚ç */
     636        /* WAMPメッセージの末尾だったら */
    641637        if ((state->level == 1) && (action == JSONSL_ACTION_POP)
    642638                && (state->type == JSONSL_T_LIST)) {
     
    644640                s->message_close_handler(s);
    645641                jsonsl_reset((jsonsl_t)s->jsn);
    646                 /* ‘Ò‹@ó‘ԂɈڂé */
     642                /* 待機状態に移る */
    647643                s->state = WAMP_PARSE_STATE_IDLE;
    648644        }
     
    652648        struct jsonsl_state_st *state, const char *buf)
    653649{
    654         /* WAMPƒƒbƒZ[ƒW‚Ì––”ö‚¾‚Á‚½‚ç */
     650        /* WAMPメッセージの末尾だったら */
    655651        if ((state->level == 1) && (action == JSONSL_ACTION_POP)
    656652                && (state->type == JSONSL_T_LIST)) {
    657653                s->message_close_handler(s);
    658654                jsonsl_reset((jsonsl_t)s->jsn);
    659                 /* ‘Ò‹@ó‘ԂɈڂé */
     655                /* 待機状態に移る */
    660656                s->state = WAMP_PARSE_STATE_IDLE;
    661657        }
    662658        else
    663                 /* ƒƒbƒZ[ƒWƒR[ƒh‚ªŽæ“¾‚Å‚«‚È‚¯‚ê‚΃Gƒ‰[ */
     659                /* メッセージコードが取得できなければエラー */
    664660                s->state = WAMP_PARSE_STATE_ERROR;
    665661}
  • uKadecot/trunk/kadecot/wamp.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2015 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    5652#define JSN_NLEVELS 10
    5753
    58 /* ƒp[ƒXƒGƒ‰[ */
     54/* パースエラー */
    5955extern const char parse_error[];
    60 /* –³Œø‚ȃŠƒNƒGƒXƒg */
     56/* 無効なリクエスト */
    6157extern const char invalid_request[];
    62 /* ‘¶Ý‚µ‚È‚¢ƒƒ\ƒbƒh */
     58/* 存在しないメソッド */
    6359extern const char method_not_found[];
    64 /* echo object‚ª‘¶Ý‚µ‚È‚¢,@JSONArrayŒ`Ž®‚É‚È‚Á‚Ä‚¢‚È‚¢ */
     60/* echo objectが存在しない, JSONArray形式になっていない */
    6561extern const char invalid_params[];
    66 /* ƒ^ƒCƒ€ƒAƒEƒg”­¶, ƒR[ƒ‹ƒoƒbƒN‚ª@null*/
     62/* タイムアウト発生, コールバックが null*/
    6763extern const char internal_error[];
    6864
  • uKadecot/trunk/kadecot/wamp_broker.c

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

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

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

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

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

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

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

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

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2015 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    656652        ER ret;
    657653
    658         /* ‹@Šíî•ñ‚ðƒNƒŠƒA */
     654        /* 機器情報をクリア */
    659655        for(dev = dealer->devices; dev < end; dev++){
    660656                dev->deviceId = 0;
    661657        }
    662658
    663         /* ƒƒbƒZ[ƒW‚©‚ç‹@Šíî•ñ‚ðì¬ */
     659        /* メッセージから機器情報を作成 */
    664660        for(dev = dealer->devices; dev < end; ){
    665661                ret = _ecn_fbs_get_data(msg, &device, sizeof(device), &rlen);
     
    787783        }
    788784
    789         /* ÅŒã‚Ì","‚ðÁ‚· */
     785        /* 最後の","を消す */
    790786        if(start != pos)
    791787                pos--;
     
    880876        }
    881877
    882         /* ÅŒã‚Ì","‚ðÁ‚· */
     878        /* 最後の","を消す */
    883879        if(start != pos)
    884880                pos--;
     
    983979        }
    984980
    985         /* ÅŒã‚Ì","‚ðÁ‚· */
     981        /* 最後の","を消す */
    986982        if(start != pos)
    987983                pos--;
     
    10951091                                }
    10961092                        }
    1097                         /* ÅŒã‚Ì","‚ðÁ‚· */
     1093                        /* 最後の","を消す */
    10981094                        pos--;
    10991095
     
    11071103        }
    11081104
    1109         /* ÅŒã‚Ì","‚ðÁ‚· */
     1105        /* 最後の","を消す */
    11101106        if(prop != pos)
    11111107                pos--;
     
    11901186        }
    11911187
    1192         /* ƒvƒƒpƒeƒB’l‘‚«ž‚݉ž“š 0x71 */
     1188        /* プロパティ値書き込み応答 0x71 */
    11931189        ret = fbs_printf(buf, &pos, "{\"esv\":113,\"sender\":%d,\"seoj\":\"%02x%02x%02x\",\"deoj\":\"%02x%02x%02x\",\"properties\":[",
    11941190                ecn_get_enod(esv), esv->hdr.edata.seoj.eojx1, esv->hdr.edata.seoj.eojx2, esv->hdr.edata.seoj.eojx3,
     
    12481244        }
    12491245
    1250         /* ÅŒã‚Ì","‚ðÁ‚· */
     1246        /* 最後の","を消す */
    12511247        if(start != pos)
    12521248                pos--;
     
    13311327        }
    13321328
    1333         /* ƒvƒƒpƒeƒB’l“ǂݍž‚݉ž“š 0x72 */
     1329        /* プロパティ値読み込み応答 0x72 */
    13341330        ret = fbs_printf(buf, &pos, "{\"esv\":114,\"sender\":%d,\"seoj\":\"%02x%02x%02x\",\"deoj\":\"%02x%02x%02x\",\"properties\":[",
    13351331                ecn_get_enod(esv), esv->hdr.edata.seoj.eojx1, esv->hdr.edata.seoj.eojx2, esv->hdr.edata.seoj.eojx3,
     
    13891385        }
    13901386
    1391         /* ÅŒã‚Ì","‚ðÁ‚· */
     1387        /* 最後の","を消す */
    13921388        if(start != pos)
    13931389                pos--;
     
    14721468        }
    14731469
    1474         /* ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݍž‚݉ž“š 0x7E */
     1470        /* プロパティ値書き込み・読み込み応答 0x7E */
    14751471        ret = fbs_printf(buf, &pos, "{\"esv\":126,\"sender\":%d,\"seoj\":\"%02x%02x%02x\",\"deoj\":\"%02x%02x%02x\",\"properties\":[",
    14761472                ecn_get_enod(esv), esv->hdr.edata.seoj.eojx1, esv->hdr.edata.seoj.eojx2, esv->hdr.edata.seoj.eojx3,
     
    15301526        }
    15311527
    1532         /* ÅŒã‚Ì","‚ðÁ‚· */
     1528        /* 最後の","を消す */
    15331529        if(start != pos)
    15341530                pos--;
     
    18461842        }
    18471843
    1848         /* ÅŒã‚Ì","‚ðÁ‚· */
     1844        /* 最後の","を消す */
    18491845        pos--;
    18501846
  • uKadecot/trunk/kadecot/wamp_dealer.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2015 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
    32  *
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
     28 *
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    114110typedef struct wamp_dealer_init_params{
    115111        int pos;
    116         uint8_t mac_addr[32]; /* DATA FLASH‚̃TƒCƒY•ª */
     112        uint8_t mac_addr[32]; /* DATA FLASHのサイズ分 */
    117113} wamp_dealer_init_params_t;
    118114
  • uKadecot/trunk/kadecot/wamp_publisher.c

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

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

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

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

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

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

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/pfatfs/diskio.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/pfatfs/integer.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/pfatfs/pff.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/pfatfs/pff.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/pfatfs/pffconf.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/src/ukadecot/arduino.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *  ƒTƒ“ƒvƒ‹ƒvƒƒOƒ‰ƒ€(1)‚Ì–{‘Ì
     39 *  サンプルプログラム(1)の本体
    4440 */
    4541
     
    5450#endif
    5551
    56 /* PWMo—Í(490Hz) */
     52/* PWM出力(490Hz) */
    5753#define TPU_BASE_COUNTER        (48000000 / 4 / 490)
    5854
     
    6056{
    6157        /*
    62          * ƒ‚ƒWƒ
    63 [ƒ‹ƒXƒgƒbƒv‹@”\‚̐ݒè(S12AD)
     58         * モジュールストップ機能の設定(S12AD)
    6459         */
    65         sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA502);    /* ‘ž‚Ý‹–‰Â */
     60        sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA502);    /* 書込み許可 */
    6661        sil_wrw_mem((uint32_t *)SYSTEM_MSTPCRA_ADDR,
    6762                sil_rew_mem((uint32_t *)SYSTEM_MSTPCRA_ADDR) & ~SYSTEM_MSTPCRA_MSTPA17_BIT);
    68         sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA500);    /* ‘ž‚Ý‹ÖŽ~ */
    69 
    70         /* 12bitADC‰Šú‰» */
    71         sil_wrh_mem((uint16_t *)S12AD_ADEXICR_ADDR, 0x0000);    /* ‰·“xƒZƒ“ƒTo—́A“à•”Šî€“dˆ³”ñ‘I‘ð */
    72         sil_wrh_mem((uint16_t *)S12AD_ADANS0_ADDR, 0x00FF);             /* •ÏŠ·ƒ|[ƒgAN000`AN007‘I‘ðAAN008`AN015”ñ‘I‘ð */
    73         sil_wrh_mem((uint16_t *)S12AD_ADANS1_ADDR, 0x0000);             /* •ÏŠ·ƒ|[ƒgAN016`AN020”ñ‘I‘ð */
    74 
    75         /* PWMo—Í(490Hz) */
    76         sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA502);        /* ‘ž‚Ý‹–‰Â */
     63        sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA500);    /* 書込み禁止 */
     64
     65        /* 12bitADC初期化 */
     66        sil_wrh_mem((uint16_t *)S12AD_ADEXICR_ADDR, 0x0000);    /* 温度センサ出力、内部基準電圧非選択 */
     67        sil_wrh_mem((uint16_t *)S12AD_ADANS0_ADDR, 0x00FF);             /* 変換ポートAN000〜AN007選択、AN008〜AN015非選択 */
     68        sil_wrh_mem((uint16_t *)S12AD_ADANS1_ADDR, 0x0000);             /* 変換ポートAN016〜AN020非選択 */
     69
     70        /* PWM出力(490Hz) */
     71        sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA502);        /* 書込み許可 */
    7772        sil_wrw_mem(SYSTEM_MSTPCRA_ADDR,
    78                 sil_rew_mem(SYSTEM_MSTPCRA_ADDR) & ~SYSTEM_MSTPCRA_MSTPA13_BIT); /* TPU0`TPU5 */
    79         sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA500);        /* ‘ž‚Ý‹ÖŽ~ */
    80 
    81         /* ƒJƒEƒ“ƒ^ƒNƒƒbƒN‚Ì‘I‘ðAƒJƒEƒ“ƒ^ƒNƒŠƒA—vˆö‚Ì‘I‘ð */
     73                sil_rew_mem(SYSTEM_MSTPCRA_ADDR) & ~SYSTEM_MSTPCRA_MSTPA13_BIT); /* TPU0TPU5 */
     74        sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA500);        /* 書込み禁止 */
     75
     76        /* カウンタクロックの選択、カウンタクリア要因の選択 */
    8277        sil_wrb_mem(TPU0_TCR_ADDR, (1 << TPU_TCR_TPSC_OFFSET) | (1 << TPU_TCR_CKEG_OFFSET)
    8378                | (1 << TPU_TCR_CCLR_OFFSET));
     
    8681        sil_wrb_mem(TPU4_TCR_ADDR, (1 << TPU_TCR_TPSC_OFFSET) | (1 << TPU_TCR_CKEG_OFFSET)
    8782                | (3 << TPU_TCR_CCLR_OFFSET));
    88         /* ”gŒ`o—̓Œƒxƒ‹‚Ì‘I‘ð */
     83        /* 波形出力レベルの選択 */
    8984        sil_wrb_mem(TPU0_TIORL_ADDR, (5 << TPU_TIORL_IOC_OFFSET) | (5 << TPU_TIORL_IOD_OFFSET));
    9085        sil_wrb_mem(TPU3_TIORH_ADDR, (5 << TPU_TIORL_IOA_OFFSET) | (5 << TPU_TIORL_IOB_OFFSET));
    9186        sil_wrb_mem(TPU3_TIORL_ADDR, (5 << TPU_TIORL_IOC_OFFSET) | (5 << TPU_TIORL_IOD_OFFSET));
    9287        sil_wrb_mem(TPU4_TIOR_ADDR, (5 << TPU_TIORL_IOA_OFFSET) | (5 << TPU_TIORL_IOB_OFFSET));
    93         /* TGRy‚̐ݒè */
     88        /* TGRyの設定 */
    9489        sil_wrh_mem(TPU0_TGRA_ADDR, TPU_BASE_COUNTER);
    9590        sil_wrh_mem(TPU0_TGRC_ADDR, 0);
     
    10196        sil_wrh_mem(TPU4_TGRA_ADDR, 0);
    10297        sil_wrh_mem(TPU4_TGRB_ADDR, 0);
    103         /* PWMƒ‚[ƒh2‚̐ݒè */
     98        /* PWMモード2の設定 */
    10499        sil_wrb_mem(TPU0_TMDR_ADDR, 3);
    105100        sil_wrb_mem(TPU3_TMDR_ADDR, 3);
    106101        sil_wrb_mem(TPU4_TMDR_ADDR, 3);
    107         /* “¯Šú“®ìÝ’è */
     102        /* 同期動作設定 */
    108103        sil_wrb_mem(TPUA_TSYR_ADDR, TPU_TSYR_SYNC0_BIT | TPU_TSYR_SYNC3_BIT | TPU_TSYR_SYNC4_BIT);
    109         /* ƒJƒEƒ“ƒg“®ìŠJŽn */
     104        /* カウント動作開始 */
    110105        sil_wrb_mem(TPUA_TSTR_ADDR, TPU_TSTR_CST0_BIT | TPU_TSTR_CST3_BIT | TPU_TSTR_CST4_BIT);
    111106}
     
    125120                return E_OK;
    126121
    127         /* ”Ä—p“üo—̓|[ƒg‚ɐݒè */
     122        /* 汎用入出力ポートに設定 */
    128123        switch(pin){
    129124        case 0:
     
    161156        }
    162157
    163         /* ‘‚«ž‚݃vƒƒeƒNƒgƒŒƒWƒXƒ^‚̐ݒè PFSWEƒrƒbƒg‚ւ̏‘‚«ž‚Ý‚ð‹–‰Â */
     158        /* 書き込みプロテクトレジスタの設定 PFSWEビットへの書き込みを許可 */
    164159        sil_wrb_mem((uint8_t *)MPC_PWPR_ADDR, 0x00);
    165         /* ‘‚«ž‚݃vƒƒeƒNƒgƒŒƒWƒXƒ^‚̐ݒè PxxFSƒŒƒWƒXƒ^‚ւ̏‘‚«ž‚Ý‚ð‹–‰Â */
     160        /* 書き込みプロテクトレジスタの設定 PxxFSレジスタへの書き込みを許可 */
    166161        sil_wrb_mem((uint8_t *)MPC_PWPR_ADDR, 0x40);
    167162
     
    170165        case 0:
    171166                if(gpio){
    172                         /* P21’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ P21‚Æ‚·‚é */
     167                        /* P21端子機能制御レジスタ P21とする */
    173168                        sil_wrb_mem((uint8_t *)MPC_P21PFS_ADDR, 0x00);
    174169                }
    175170                else{
    176                         /* P21’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ TIOCA3‚Æ‚·‚é */
     171                        /* P21端子機能制御レジスタ TIOCA3とする */
    177172                        sil_wrb_mem((uint8_t *)MPC_P21PFS_ADDR, 0x03);
    178173                }
     
    182177        case 1:
    183178                if(gpio){
    184                         /* P20’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ P20‚Æ‚·‚é */
     179                        /* P20端子機能制御レジスタ P20とする */
    185180                        sil_wrb_mem((uint8_t *)MPC_P20PFS_ADDR, 0x00);
    186181                }
    187182                else{
    188                         /* P20’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ TIOCB3‚Æ‚·‚é */
     183                        /* P20端子機能制御レジスタ TIOCB3とする */
    189184                        sil_wrb_mem((uint8_t *)MPC_P20PFS_ADDR, 0x03);
    190185                }
     
    194189        case 2:
    195190                if(gpio){
    196                         /* P22’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ P22‚Æ‚·‚é */
     191                        /* P22端子機能制御レジスタ P22とする */
    197192                        sil_wrb_mem((uint8_t *)MPC_P22PFS_ADDR, 0x00);
    198193                }
    199194                else{
    200                         /* P22’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ TIOCC3‚Æ‚·‚é */
     195                        /* P22端子機能制御レジスタ TIOCC3とする */
    201196                        sil_wrb_mem((uint8_t *)MPC_P22PFS_ADDR, 0x03);
    202197                }
     
    206201        case 3:
    207202                if(gpio){
    208                         /* P23’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ P23‚Æ‚·‚é */
     203                        /* P23端子機能制御レジスタ P23とする */
    209204                        sil_wrb_mem((uint8_t *)MPC_P23PFS_ADDR, 0x00);
    210205                }
    211206                else{
    212                         /* P23’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ TIOCD3‚Æ‚·‚é */
     207                        /* P23端子機能制御レジスタ TIOCD3とする */
    213208                        sil_wrb_mem((uint8_t *)MPC_P23PFS_ADDR, 0x03);
    214209                }
     
    218213        case 4:
    219214                if(gpio){
    220                         /* P24’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ P24‚Æ‚·‚é */
     215                        /* P24端子機能制御レジスタ P24とする */
    221216                        sil_wrb_mem((uint8_t *)MPC_P24PFS_ADDR, 0x00);
    222217                }
    223218                else{
    224                         /* P24’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ TIOCB4‚Æ‚·‚é */
     219                        /* P24端子機能制御レジスタ TIOCB4とする */
    225220                        sil_wrb_mem((uint8_t *)MPC_P24PFS_ADDR, 0x03);
    226221                }
     
    230225        case 5:
    231226                if(gpio){
    232                         /* P25’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ P25‚Æ‚·‚é */
     227                        /* P25端子機能制御レジスタ P25とする */
    233228                        sil_wrb_mem((uint8_t *)MPC_P25PFS_ADDR, 0x00);
    234229                }
    235230                else{
    236                         /* P25’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ TIOCA4‚Æ‚·‚é */
     231                        /* P25端子機能制御レジスタ TIOCA4とする */
    237232                        sil_wrb_mem((uint8_t *)MPC_P25PFS_ADDR, 0x03);
    238233                }
     
    242237        case 6:
    243238                if(gpio){
    244                         /* P32’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ P32‚Æ‚·‚é */
     239                        /* P32端子機能制御レジスタ P32とする */
    245240                        sil_wrb_mem((uint8_t *)MPC_P32PFS_ADDR, 0x00);
    246241                }
    247242                else{
    248                         /* P32’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ TIOCC0‚Æ‚·‚é */
     243                        /* P32端子機能制御レジスタ TIOCC0とする */
    249244                        sil_wrb_mem((uint8_t *)MPC_P32PFS_ADDR, 0x03);
    250245                }
     
    254249        case 7:
    255250                if(gpio){
    256                         /* P33’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ P33‚Æ‚·‚é */
     251                        /* P33端子機能制御レジスタ P33とする */
    257252                        sil_wrb_mem((uint8_t *)MPC_P33PFS_ADDR, 0x00);
    258253                }
    259254                else{
    260                         /* P33’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ TIOCD0‚Æ‚·‚é */
     255                        /* P33端子機能制御レジスタ TIOCD0とする */
    261256                        sil_wrb_mem((uint8_t *)MPC_P33PFS_ADDR, 0x03);
    262257                }
     
    265260        }
    266261
    267         /* ‘‚«ž‚݃vƒƒeƒNƒgƒŒƒWƒXƒ^‚ÌÝ’è ‘‚«ž‚Ý‚ð‹ÖŽ~ */
     262        /* 書き込みプロテクトレジスタの設定 書き込みを禁止 */
    268263        sil_wrb_mem((uint8_t *)MPC_PWPR_ADDR, 0x80);
    269264
    270         /* ‹@”\ƒ|[ƒg‚ɐݒè */
     265        /* 機能ポートに設定 */
    271266        if(!gpio){
    272267                switch(pin){
     
    342337ER arduino_pinMode(int pin, arduino_pin_mode_t mode)
    343338{
    344         /* ”Ä—p“üo—̓|[ƒg‚ɐݒè */
     339        /* 汎用入出力ポートに設定 */
    345340        change_pin_function(pin, true);
    346341
     
    529524        case 14:
    530525                /* *value = sil_reh_mem((uint16_t *)S12AD_ADDR0_ADDR); */
    531                 *value = 1023 - (arduino_ad_avelage[0] / (arduino_ad_table_count * 4/*12bit¨10bit*/));
     526                *value = 1023 - (arduino_ad_avelage[0] / (arduino_ad_table_count * 4/*12bit10bit*/));
    532527                return E_OK;
    533528        case 15:
    534529                /* *value = sil_reh_mem((uint16_t *)S12AD_ADDR1_ADDR); */
    535                 *value = 1023 - (arduino_ad_avelage[1] / (arduino_ad_table_count * 4/*12bit¨10bit*/));
     530                *value = 1023 - (arduino_ad_avelage[1] / (arduino_ad_table_count * 4/*12bit10bit*/));
    536531                return E_OK;
    537532        case 16:
    538533                /* *value = sil_reh_mem((uint16_t *)S12AD_ADDR2_ADDR); */
    539                 *value = 1023 - (arduino_ad_avelage[2] / (arduino_ad_table_count * 4/*12bit¨10bit*/));
     534                *value = 1023 - (arduino_ad_avelage[2] / (arduino_ad_table_count * 4/*12bit10bit*/));
    540535                return E_OK;
    541536        case 17:
    542537                /* *value = sil_reh_mem((uint16_t *)S12AD_ADDR3_ADDR); */
    543                 *value = 1023 - (arduino_ad_avelage[3] / (arduino_ad_table_count * 4/*12bit¨10bit*/));
     538                *value = 1023 - (arduino_ad_avelage[3] / (arduino_ad_table_count * 4/*12bit10bit*/));
    544539                return E_OK;
    545540        case 18:
    546541                /* *value = sil_reh_mem((uint16_t *)S12AD_ADDR4_ADDR); */
    547                 *value = 1023 - (arduino_ad_avelage[4] / (arduino_ad_table_count * 4/*12bit¨10bit*/));
     542                *value = 1023 - (arduino_ad_avelage[4] / (arduino_ad_table_count * 4/*12bit10bit*/));
    548543                return E_OK;
    549544        case 19:
    550545                /* *value = sil_reh_mem((uint16_t *)S12AD_ADDR5_ADDR); */
    551                 *value = 1023 - (arduino_ad_avelage[5] / (arduino_ad_table_count * 4/*12bit¨10bit*/));
     546                *value = 1023 - (arduino_ad_avelage[5] / (arduino_ad_table_count * 4/*12bit10bit*/));
    552547                return E_OK;
    553548        case 20:
    554549                /* *value = sil_reh_mem((uint16_t *)S12AD_ADDR6_ADDR); */
    555                 *value = 1023 - (arduino_ad_avelage[6] / (arduino_ad_table_count * 4/*12bit¨10bit*/));
     550                *value = 1023 - (arduino_ad_avelage[6] / (arduino_ad_table_count * 4/*12bit10bit*/));
    556551                return E_OK;
    557552        case 21:
    558553                /* *value = sil_reh_mem((uint16_t *)S12AD_ADDR7_ADDR); */
    559                 *value = 1023 - (arduino_ad_avelage[7] / (arduino_ad_table_count * 4/*12bit¨10bit*/));
     554                *value = 1023 - (arduino_ad_avelage[7] / (arduino_ad_table_count * 4/*12bit10bit*/));
    560555                return E_OK;
    561556        }
     
    623618        int i;
    624619
    625         /* ADC‚Ì•ÏŠ·Œ‹‰ÊŽæ“¾ */
     620        /* ADCの変換結果取得 */
    626621        if((sil_reb_mem((uint8_t *)S12AD_ADCSR_ADDR) & S12AD_ADCSR_ADST_BIT) == 0){
    627622                for (i = 0; i < 8; i++){
     
    637632                }
    638633
    639                 /* •ÏŠ·ŠJŽniƒVƒ“ƒOƒ‹ƒXƒLƒƒƒ“ƒ‚[ƒhj */
     634                /* 変換開始(シングルスキャンモード) */
    640635                sil_wrb_mem((uint8_t *)S12AD_ADCSR_ADDR, S12AD_ADCSR_ADST_BIT);
    641636        }
  • uKadecot/trunk/src/ukadecot/arduino.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    5652} arduino_digital_value_t;
    5753
    58 /* ‰Šú‰» */
     54/* 初期化 */
    5955void arduino_init();
    6056
    61 /* ƒfƒWƒ^ƒ‹“üo—͊֐”  */
     57/* デジタル入出力関数  */
    6258ER arduino_pinMode(int pin, arduino_pin_mode_t mode);
    6359ER arduino_digitalWrite(int pin, arduino_digital_value_t value);
    6460ER arduino_digitalRead(int pin, arduino_digital_value_t *result);
    6561
    66 /* ƒAƒiƒƒO“üo—͊֐” */
     62/* アナログ入出力関数 */
    6763ER arduino_analogRead(int pin, int *result);
    6864ER arduino_analogWrite(int pin, int value);
    6965
    70 /* ŽüŠúˆ— */
     66/* 周期処理 */
    7167void arduino_tick();
    7268
  • uKadecot/trunk/src/ukadecot/data_flash.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *  ƒTƒ“ƒvƒ‹ƒvƒƒOƒ‰ƒ€(1)‚Ì–{‘Ì
     39 *  サンプルプログラム(1)の本体
    4440 */
    4541
     
    129125        ER ret;
    130126
    131         /* E2ƒf[ƒ^ƒtƒ‰ƒbƒVƒ
    132 ‚̓ǂݍž‚Ý‹–‰Â */
     127        /* E2データフラッシュの読み込み許可 */
    133128        sil_wrh_mem(FLASH_DFLRE0_ADDR, 0x2DFF);
    134129        sil_wrh_mem(FLASH_DFLRE1_ADDR, 0xD2FF);
    135         /* E2ƒf[ƒ^ƒtƒ‰ƒbƒVƒ
    136 ‚̏‘‚«ž‚Ý‹–‰Â */
     130        /* E2データフラッシュの書き込み許可 */
    137131        sil_wrh_mem(FLASH_DFLWE0_ADDR, 0x1EFF);
    138132        sil_wrh_mem(FLASH_DFLWE1_ADDR, 0xE1FF);
     
    141135        fcu_check_frdy(240000);
    142136
    143         /* ƒGƒ‰[Šm”F */
     137        /* エラー確認 */
    144138        fcu_check_error();
    145139
    146         /* FCUƒtƒ@[ƒ€ƒEƒFƒA‚̃Rƒs[ */
     140        /* FCUファームウェアのコピー */
    147141        fcu_copy_firm();
    148142
    149         /* P/Eƒ‚[ƒhˆÚs */
     143        /* P/Eモード移行 */
    150144        fcu_pe_mode();
    151145
    152         /* P/E ƒm[ƒ}ƒ‹ƒ‚[ƒhˆÚs */
     146        /* P/E ノーマルモード移行 */
    153147        *((uint8_t *)DATA_FLASH_BASE_ADDR) = 0xFF;
    154148
    155         /* ƒGƒ‰[Šm”F */
     149        /* エラー確認 */
    156150        fcu_check_error();
    157151
    158         /* Žü•ÓƒNƒƒbƒN’Ê’mƒRƒ}ƒ“ƒh”­s */
     152        /* 周辺クロック通知コマンド発行 */
    159153        ret = fcu_notify_clock();
    160154
    161         /* ƒŠ[ƒhƒ‚[ƒhˆÚs */
     155        /* リードモード移行 */
    162156        fcu_read_mode();
    163157
     
    170164        uint16_t *dst = (uint16_t *)data;
    171165
    172         /* P/Eƒ‚[ƒhˆÚs */
     166        /* P/Eモード移行 */
    173167        fcu_pe_mode();
    174168
    175         /* —LŒøƒf[ƒ^ƒ`ƒFƒbƒN */
     169        /* 有効データチェック */
    176170        if(!fcu_check_valid(blockno)){
    177                 /* ƒŠ[ƒhƒ‚[ƒhˆÚs */
     171                /* リードモード移行 */
    178172                fcu_read_mode();
    179173                return E_OBJ;
    180174        }
    181175
    182         /* ƒŠ[ƒhƒ‚[ƒhˆÚs */
     176        /* リードモード移行 */
    183177        fcu_read_mode();
    184178
     
    186180        end = &wa[DATA_FLASH_BLOCK_SIZE/sizeof(uint16_t)];
    187181
    188         /* “ǂݏo‚µ */
     182        /* 読み出し */
    189183        for(; wa < end; wa++, dst++){
    190184                *dst = *wa;
     
    198192        bool_t ret = true;
    199193
    200         /* P/Eƒ‚[ƒhˆÚs */
     194        /* P/Eモード移行 */
    201195        fcu_pe_mode();
    202196
    203         /* ƒuƒ‰ƒ“ƒNƒ`ƒFƒbƒN */
     197        /* ブランクチェック */
    204198        if(!fcu_check_blank(blockno)){
    205                 /* ƒuƒ‰ƒ“ƒN‚Å‚È‚¢‚È‚çƒuƒƒbƒNÁ‹Ž */
     199                /* ブランクでないならブロック消去 */
    206200                ret = fcu_erase(blockno);
    207201                if(!ret)
     
    210204
    211205        if(ret){
    212                 /* ‘‚«ž‚Ý */
     206                /* 書き込み */
    213207                ret = fcu_write(blockno, data);
    214208                if(!ret)
     
    216210        }
    217211
    218         /* ƒŠ[ƒhƒ‚[ƒhˆÚs */
     212        /* リードモード移行 */
    219213        fcu_read_mode();
    220214
     
    226220        unsigned int *src, *dst, *end;
    227221
    228         /* ƒŠ[ƒhƒ‚[ƒhˆÚs */
     222        /* リードモード移行 */
    229223        if(sil_reh_mem(FLASH_FENTRYR_ADDR) != 0)
    230224                sil_wrh_mem(FLASH_FENTRYR_ADDR, 0xAA00);
    231225
    232         /* FCU RAMƒAƒNƒZƒX‹–‰Â */
     226        /* FCU RAMアクセス許可 */
    233227        sil_wrh_mem(FLASH_FCURAME_ADDR, 0xC401);
    234228
    235         /* FCUƒtƒ@[ƒ€ƒEƒFƒA‚ðFCU RAM‚ɃRƒs[ */
     229        /* FCUファームウェアをFCU RAMにコピー */
    236230        src = (unsigned int *)FCU_FIRMWARE_ADDR;
    237231        dst = (unsigned int *)FCU_RAM_ADDR;
     
    249243        wa = (volatile uint16_t *)ra;
    250244
    251         /* Žü”g”‚ðÝ’è */
     245        /* 周波数を設定 */
    252246        sil_wrh_mem(FLASH_PCKAR_ADDR, 48/*FREQ_PCLK / 1000*/);
    253247
    254         /* Žü•ÓƒNƒƒbƒN’Ê’mƒRƒ}ƒ“ƒh”­s */
     248        /* 周辺クロック通知コマンド発行 */
    255249        *ra = 0xE9;
    256250        *ra = 0x03;
     
    260254        *ra = 0xD0;
    261255
    262         /* 120ƒÊs */
     256        /* 120μs */
    263257        fcu_check_frdy(120);
    264258
    265         /* ƒGƒ‰[Šm”F */
     259        /* エラー確認 */
    266260        return !fcu_check_error();
    267261}
    268262
    269263/*
    270  * ƒŠ[ƒhƒ‚[ƒhˆÚs
     264 * リードモード移行
    271265 */
    272266static void fcu_read_mode()
     
    290284
    291285/*
    292  * P/Eƒ‚[ƒhˆÚs
     286 * P/Eモード移行
    293287 */
    294288static void fcu_pe_mode()
     
    309303        for(wa = (volatile uint16_t *)ra; wa < end; wa++, src++)
    310304        {
    311                 /* ƒvƒƒOƒ‰ƒ€ƒRƒ}ƒ“ƒh”­s */
     305                /* プログラムコマンド発行 */
    312306                *ra = 0xE8;
    313307                *ra = 0x01;
     
    315309                *ra = 0xD0;
    316310
    317                 /* 2ms~1.1 */
     311                /* 2ms×1.1 */
    318312                fcu_check_frdy(2200);
    319313
    320                 /* ƒGƒ‰[Šm”F */
     314                /* エラー確認 */
    321315                if(fcu_check_error())
    322316                        return false;
     
    332326        ra = (volatile uint8_t *)(DATA_FLASH_BLOCK_SIZE * blockno + (intptr_t)DATA_FLASH_BASE_ADDR);
    333327
    334         /* ƒCƒŒ[ƒXƒRƒ}ƒ“ƒh”­s */
     328        /* イレースコマンド発行 */
    335329        *ra = 0x20;
    336330        *ra = 0xD0;
    337331
    338         /* 20ms~1.1 */
     332        /* 20ms×1.1 */
    339333        fcu_check_frdy(22000);
    340334
    341         /* ƒGƒ‰[Šm”F */
     335        /* エラー確認 */
    342336        return !fcu_check_error();
    343337}
     
    361355                *ra = 0xD0;
    362356
    363                 /* 30ƒÊs~1.1 */
     357                /* 30μs×1.1 */
    364358                fcu_check_frdy(33);
    365359
    366                 /* ƒGƒ‰[Šm”F */
     360                /* エラー確認 */
    367361                if(fcu_check_error())
    368362                        return false;
    369363
    370                 /* ƒuƒ‰ƒ“ƒNŠm”F */
     364                /* ブランク確認 */
    371365                if((sil_reh_mem(FLASH_DFLBCSTAT_ADDR) & FLASH_DFLBCSTAT_BCST_BIT) != 0)
    372366                        return false;
     
    394388                *ra = 0xD0;
    395389
    396                 /* 30ƒÊs~1.1 */
     390                /* 30μs×1.1 */
    397391                fcu_check_frdy(33);
    398392
    399                 /* ƒGƒ‰[Šm”F */
     393                /* エラー確認 */
    400394                if(fcu_check_error())
    401395                        return false;
    402396
    403                 /* ƒuƒ‰ƒ“ƒNŠm”F */
     397                /* ブランク確認 */
    404398                if((sil_reh_mem(FLASH_DFLBCSTAT_ADDR) & FLASH_DFLBCSTAT_BCST_BIT) == 0)
    405399                        return false;
     
    423417                }
    424418
    425                 /* ƒXƒe[ƒ^ƒXƒNƒŠƒAƒRƒ}ƒ“ƒh”­s */
     419                /* ステータスクリアコマンド発行 */
    426420                *((uint8_t *)DATA_FLASH_BASE_ADDR) = 0x50;
    427421        }
     
    437431
    438432        for(i = 0; i < tWAIT; i++){
    439                 /* €”õŠ®—¹‚È‚çI—¹ */
     433                /* 準備完了なら終了 */
    440434                if((sil_reb_mem(FLASH_FSTATR0_ADDR) & FLASH_FSTATR0_FRDY_BIT) != 0)
    441435                        return true;
    442436
    443                 /* 1ƒÊs? */
     437                /* 1μs? */
    444438                for(j = 0; j < 100; j++);
    445439        }
     
    447441        syslog(LOG_WARNING, "fcu_check_frdy timeout");
    448442
    449         /* FCU‰Šú‰» */
     443        /* FCU初期化 */
    450444        fcu_init();
    451445
     
    459453        sil_wrh_mem(FLASH_FRESETR_ADDR, 0xCC01);
    460454
    461         // 200ƒÊs? */
     455        // 200μs? */
    462456        for(j = 0; j < 20000; j++);
    463457
  • uKadecot/trunk/src/ukadecot/data_flash.h

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

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4642
    4743/*
    48  * ƒT[ƒrƒXˆ—ƒ^ƒXƒN‚ɒljÁ‚̏ˆ—‚ð‘}“ü‚µ‚½‚¢ê‡‚É’è‹`‚·‚é
     44 * サービス処理タスクに追加の処理を挿入したい場合に定義する
    4945 *
    50  * ƒ^ƒCƒ€ƒAƒEƒg’l‚ð•Ô‚·
     46 * タイムアウト値を返す
    5147 * TMO echonet_task_get_timer();
    5248 * #define ECHONET_TASK_GET_TIMER echonet_task_get_timer
    5349 *
    54  * ƒ^ƒCƒ}[‚ÌŽžŠÔ‚ði‚ß‚é
     50 * タイマーの時間を進める
    5551 * void echonet_task_progress(TMO interval);
    5652 * #define ECHONET_TASK_PROGRESS(interval) echonet_task_progress(interval)
    5753 *
    58  * ƒ^ƒCƒ€ƒAƒEƒgˆ—i‚Ì‚½‚߂̌Ăяo‚µj
     54 * タイムアウト処理(のための呼び出し)
    5955 * void echonet_task_timeout();
    6056 * #define ECHONET_TASK_TIMEOUT echonet_task_timeout()
     
    6258
    6359/*
    64  * ‚t‚c‚o’ʐMƒ^ƒXƒN‚ɒljÁ‚̏ˆ—‚ð‘}“ü‚µ‚½‚¢ê‡‚É’è‹`‚·‚é
     60 * UDP通信タスクに追加の処理を挿入したい場合に定義する
    6561 *
    66  * ƒ^ƒCƒ€ƒAƒEƒg’l‚ð•Ô‚·
     62 * タイムアウト値を返す
    6763 * TMO echonet_udp_task_get_timer();
    6864 * #define ECHONET_UDP_TASK_GET_TIMER echonet_udp_task_get_timer
    6965 *
    70  * ƒ^ƒCƒ}[‚ÌŽžŠÔ‚ði‚ß‚é
     66 * タイマーの時間を進める
    7167 * void echonet_udp_task_progress(TMO interval);
    7268 * #define ECHONET_UDP_TASK_PROGRESS(interval) echonet_udp_task_progress(interval)
    7369 *
    74  * ƒ^ƒCƒ€ƒAƒEƒgˆ—i‚Ì‚½‚߂̌Ăяo‚µj
     70 * タイムアウト処理(のための呼び出し)
    7571 * void echonet_udp_task_timeout();
    7672 * #define ECHONET_UDP_TASK_TIMEOUT echonet_udp_task_timeout()
    7773 */
    7874
    79 /* ƒfƒoƒbƒOo—Í—LŒø‰»Ý’è‚·‚é‚Æ‚«‚É’è‹` */
     75/* デバッグ出力有効化設定するときに定義 */
    8076/* #define ECN_DBG_PUT_ENA */
    8177
    82 /* ƒfƒoƒbƒOo—Í(CARP)—LŒø‰»Ý’è‚·‚é‚Æ‚«‚É’è‹` */
     78/* デバッグ出力(CARP)有効化設定するときに定義 */
    8379/* #define ECN_CAP_PUT_ENA */
    8480
    85 /* syslog‹ó‚«‘Ò‚¿—LŒø‰»Ý’è‚·‚é‚Æ‚«‚É’è‹` */
     81/* syslog空き待ち有効化設定するときに定義 */
    8682/* #define ECN_DBG_WAI_ENA */
    8783
    88 /* •W€‚Ìecn_data_prop_set‚ðŽg‚í‚È‚¢‚Æ‚«‚É’è‹` */
     84/* 標準のecn_data_prop_setを使わないときに定義 */
    8985/* #define ECN_USER_DATA_PROP_SET */
    9086
    91 /* •W€‚Ìecn_data_prop_get‚ðŽg‚í‚È‚¢‚Æ‚«‚É’è‹` */
     87/* 標準のecn_data_prop_getを使わないときに定義 */
    9288/* #define ECN_USER_DATA_PROP_GET */
    9389
  • uKadecot/trunk/src/ukadecot/main.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r105 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4137
    4238/*
    43  *  ƒTƒ“ƒvƒ‹ƒvƒƒOƒ‰ƒ€(1)‚Ì–{‘Ì
     39 *  サンプルプログラム(1)の本体
    4440 */
    4541
     
    6157#include "uip_adpt.h"
    6258#include "wamp.h"
    63 // TODO:ƒRƒ“ƒgƒ[ƒ‰Œü‚¯ƒwƒbƒ_[ƒtƒ@ƒCƒ‹‚ðì¬‚·‚é
     59// TODO:コントローラ向けヘッダーファイルを作成する
    6460#include "echonet_task.h"
    6561#include "echonet_agent.h"
     
    7066uint8_t mac_addr[6] = { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xB8 };
    7167
    72 #define MAKER_CODE      0x00, 0x00, 0xB3        /* TOPPERSƒvƒƒWƒFƒNƒg */
    73 
    74 /* ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ƒIƒuƒWƒFƒNƒg */
     68#define MAKER_CODE      0x00, 0x00, 0xB3        /* TOPPERSプロジェクト */
     69
     70/* ノードプロファイルオブジェクト */
    7571struct node_profile_object_t local_node_data = {
    76         0x30,   /* “®ìó‘Ô */
    77         { 0x01, 0x0A, 0x01, 0x00 },     /* ‚u‚
    78 ‚’‚“‚‰‚‚Žî•ñ */
     72        0x30,   /* 動作状態 */
     73        { 0x01, 0x0A, 0x01, 0x00 },     /* Version情報 */
    7974        {
    80                 0xFE,   /* ‰ºˆÊ’ʐM‘wIDƒtƒB[ƒ‹ƒh */
    81                 { MAKER_CODE }, /* ƒ[ƒJ[ƒR[ƒh */
    82                 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },      /* ƒ†ƒj[ƒNID•”(ƒ[ƒJ[“ÆŽ©) */
     75                0xFE,   /* 下位通信層IDフィールド */
     76                { MAKER_CODE }, /* メーカーコード */
     77                { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },      /* ユニークID部(メーカー独自) */
    8378        },
    84         0x0000, /* ˆÙí“à—e */
    85         { MAKER_CODE }, /* ƒ[ƒJ[ƒR[ƒh */
     79        0x0000, /* 異常内容 */
     80        { MAKER_CODE }, /* メーカーコード */
    8681};
    8782
    88 /* ƒRƒ“ƒgƒ[ƒ‰[ƒNƒ‰ƒX */
     83/* コントローラークラス */
    8984struct controller_t controller_class_data = {
    90         0x30,   /* “®ìó‘Ô */
    91         0x00,   /* Ý’uêŠ */
    92         { 0x00, 0x00, 'C', 0x00 },      /* ‹KŠi‚u‚
    93 ‚’‚“‚‰‚‚Žî•ñ */
    94         0x41,   /* ˆÙí”­¶ó‘Ô */
    95         { MAKER_CODE }, /* ƒ[ƒJ[ƒR[ƒh */
     85        0x30,   /* 動作状態 */
     86        0x00,   /* 設置場所 */
     87        { 0x00, 0x00, 'C', 0x00 },      /* 規格Version情報 */
     88        0x41,   /* 異常発生状態 */
     89        { MAKER_CODE }, /* メーカーコード */
    9690};
    9791
    9892/*
    99  * “®ìó‘ÔON/OFFÝ’èŠÖ”i0x30, 0x31‚̂ݎ󂯕t‚¯j
     93 * 動作状態ON/OFF設定関数(0x30, 0x31のみ受け付け)
    10094 */
    10195int onoff_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno)
    10296{
    103         /* ƒTƒCƒY‚ª‚PˆÈŠO‚͎󂯕t‚¯‚È‚¢ */
     97        /* サイズが1以外は受け付けない */
    10498        if(size != 1)
    10599                return 0;
     
    108102
    109103        switch(*(uint8_t *)src){
    110         /* ON‚̏ꍇ */
     104        /* ONの場合 */
    111105        case 0x30:
    112106                *((uint8_t *)item->exinf) = *((uint8_t *)src);
    113                 /* LED‚Ì"."‚ðON */
     107                /* LEDの"."をON */
    114108                sil_wrb_mem((uint8_t *)0x0008C02A, sil_reb_mem((uint8_t *)0x0008C02A) | 0x40);
    115109                break;
    116         /* OFF‚̏ꍇ */
     110        /* OFFの場合 */
    117111        case 0x31:
    118112                *((uint8_t *)item->exinf) = *((uint8_t *)src);
    119                 /* LED‚Ì"."‚ðOFF */
     113                /* LEDの"."をOFF */
    120114                sil_wrb_mem((uint8_t *)0x0008C02A, sil_reb_mem((uint8_t *)0x0008C02A) & ~0x40);
    121115                break;
    122         /* 0x30‚©0x31ˆÈŠO‚͎󂯕t‚¯‚È‚¢ */
     116        /* 0x30か0x31以外は受け付けない */
    123117        default:
    124118                return 0;
     
    129123
    130124/*
    131  * ˆÙí“à—eÝ’èŠÖ”
     125 * 異常内容設定関数
    132126 */
    133127int node_profile_object_fault_content_set(const EPRPINIB *item, const void *src, int size, bool_t *anno)
    134128{
    135         /* ƒTƒCƒY‚ª2ˆÈŠO‚͎󂯕t‚¯‚È‚¢ */
     129        /* サイズが2以外は受け付けない */
    136130        if(size != 2)
    137131                return 0;
     
    139133        if((*(uint16_t *)src >= 0x0) && (*(uint16_t *)src <= 0x3ec)){
    140134                *((uint16_t *)item->exinf) = *((uint16_t *)src);
    141                 /* TODO: ‚±‚̂̏ꍇ‚̏ˆ—*/
    142         }
    143         /* ã‹LˆÈŠO‚͎󂯕t‚¯‚È‚¢ */
     135                /* TODO: このの場合の処理*/
     136        }
     137        /* 上記以外は受け付けない */
    144138        else{
    145139                return 0;
     
    150144
    151145/*
    152  * ˆÙí”­¶ó‘ԐݒèŠÖ”i0x41, 0x42‚̂ݎ󂯕t‚¯j
     146 * 異常発生状態設定関数(0x41, 0x42のみ受け付け)
    153147 */
    154148int alarm_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno)
    155149{
    156         /* ƒTƒCƒY‚ª‚PˆÈŠO‚͎󂯕t‚¯‚È‚¢ */
     150        /* サイズが1以外は受け付けない */
    157151        if(size != 1)
    158152                return 0;
     
    161155
    162156        switch(*(uint8_t *)src){
    163         /* ˆÙí”­¶‚ ‚è‚̏ꍇ */
     157        /* 異常発生ありの場合 */
    164158        case 0x41:
    165         /* ˆÙí”­¶‚È‚µ‚̏ꍇ */
     159        /* 異常発生なしの場合 */
    166160        case 0x42:
    167161                *((uint8_t *)item->exinf) = *((uint8_t *)src);
    168162                break;
    169         /* 0x41‚©0x42ˆÈŠO‚͎󂯕t‚¯‚È‚¢ */
     163        /* 0x41か0x42以外は受け付けない */
    170164        default:
    171165                return 0;
     
    176170
    177171/*
    178  * Œ»ÝŽžÝ’èŠÖ”
     172 * 現在時刻設定関数
    179173 */
    180174int time_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno)
     
    185179                return 0;
    186180
    187         /* ŽžÝ’è */
     181        /* 時刻設定 */
    188182        p_src = (uint8_t *)src;
    189183        sil_wrb_mem((uint8_t *)RTC_RHRCNT_ADDR, *p_src++);
     
    195189
    196190/*
    197  * Œ»ÝŽžŽæ“¾ŠÖ”
     191 * 現在時刻取得関数
    198192 */
    199193int time_prop_get(const EPRPINIB *item, void *dst, int size)
     
    204198                return 0;
    205199
    206         /* ŽžÝ’è */
     200        /* 時刻設定 */
    207201        p_dst = (uint8_t *)dst;
    208202        *p_dst++ = sil_reb_mem((uint8_t *)RTC_RHRCNT_ADDR);
     
    213207
    214208/*
    215  * Œ»Ý”NŒŽ“úÝ’èŠÖ”
     209 * 現在年月日設定関数
    216210 */
    217211int date_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno)
     
    222216                return 0;
    223217
    224         /* ”NŒŽ“úÝ’è */
     218        /* 年月日設定 */
    225219        p_src = (uint8_t *)src;
    226220        p_src++;        /* 20XX */
     
    233227
    234228/*
    235  * Œ»Ý”NŒŽ“úŽæ“¾ŠÖ”
     229 * 現在年月日取得関数
    236230 */
    237231int date_prop_get(const EPRPINIB *item, void *dst, int size)
     
    252246
    253247/*
    254  *  uIP ƒ^ƒXƒN‰Šú‰»ˆ—
     248 *  uIP タスク初期化処理
    255249 */
    256250void uip_task_init(intptr_t exinf)
     
    284278
    285279/*
    286  *  ƒƒCƒ“ƒ^ƒXƒN
     280 *  メインタスク
    287281 */
    288282static
     
    298292        PT_BEGIN(&main_pt);
    299293
    300         /* ‰Šú‰» */
     294        /* 初期化 */
    301295        main_initialize();
    302296
     
    310304                prev = now;
    311305
    312                 /* ƒ^ƒCƒ}[Žæ“¾ */
     306                /* タイマー取得 */
    313307                timer = main_get_timer();
    314308                timer_set(&main_pt_timer, timer);
    315309
    316                 /* ‰ž“š“d•¶‘Ò‚¿ */
     310                /* 応答電文待ち */
    317311                PT_WAIT_UNTIL(&main_pt, (((ret = ecn_prcv_esv(&esv)) == E_OK) || (ret == E_BRK)
    318312                        || ((ret = timer_expired(&main_pt_timer) ? E_TMOUT : E_WBLK) == E_TMOUT)));
     
    328322                }
    329323
    330                 /* ŽžŠÔŒo‰ß */
     324                /* 時間経過 */
    331325                main_progress(now - prev);
    332326
    333                 /* Echonet“d•¶ŽóM‚̏ꍇ */
     327                /* Echonet電文受信の場合 */
    334328                if (ret == E_OK) {
    335                         /* Echonet“d•¶ŽóMˆ— */
     329                        /* Echonet電文受信処理 */
    336330                        main_recv_esv(esv);
    337331
    338                         /* —̈æ‰ð•ú */
     332                        /* 領域解放 */
    339333                        ret = ecn_rel_esv(esv);
    340334                        if (ret != E_OK){
     
    343337                        }
    344338                }
    345                 /* ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚݂̏ꍇ */
     339                /* 応答電文待ちの割り込みの場合 */
    346340                else if (ret == E_BRK) {
    347341                        ECN_FBS_ID msg = { (T_ECN_FST_BLK       *)esv };
     
    355349                                break;
    356350                        case 3/*ECN_MSG_USER_BREAK*/:
    357                                 /* ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚݃f[ƒ^Žæ“¾ */
     351                                /* 応答電文待ちの割り込みデータ取得 */
    358352                                ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len);
    359353                                if (ret != E_OK){
     
    362356                                }
    363357
    364                                 /* ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚ݏˆ— */
     358                                /* 応答電文待ちの割り込み処理 */
    365359                                main_break_wait(brkdat, len);
    366360                                break;
    367361                        }
    368362
    369                         /* —̈æ‰ð•ú */
     363                        /* 領域解放 */
    370364                        if (rel_msg) {
    371365                                ret = ecn_rel_esv(esv);
     
    377371                }
    378372
    379                 /* ƒ^ƒCƒ€ƒAƒEƒgˆ— */
     373                /* タイムアウト処理 */
    380374                main_timeout();
    381375
    382                 /* ƒLƒ
    383 [‚É—­‚Ü‚Á‚½ƒƒbƒZ[ƒW‚ðˆ— */
     376                /* キューに溜まったメッセージを処理 */
    384377                while(main_wbs_que_msg());
    385378        }
     
    436429
    437430/*
    438  * ‰Šú‰»
     431 * 初期化
    439432 */
    440433static void main_initialize()
     
    446439        ER ret;
    447440
    448         /* LED‚ð"000"‚Æ•\Ž¦ */
     441        /* LEDを"000"と表示 */
    449442        sil_wrb_mem((uint8_t *)0x0008C02A, 0x00);
    450443
     
    473466        syslog(LOG_INFO, "mac_addr %s %s", data, dflt_addr ? "default" : "flash-rom");
    474467
    475         /* uIP‚ðŠJŽn */
     468        /* uIPを開始 */
    476469        uip_start();
    477470
    478471        wamp_init(&wamp);
    479472
    480         /* 10msŒã‚Ƀ{ƒ^ƒ“ó‘Ô‚ðŠm”F */
     473        /* 10ms後にボタン状態を確認 */
    481474        main_state = main_state_start;
    482475        main_timer = TMO_FEVR;
    483476
    484         /* ArduinoŒÝŠ·‹@”\‰Šú‰» */
     477        /* Arduino互換機能初期化 */
    485478        arduino_init();
    486479
    487         /* ƒ{ƒ^ƒ“ó‘ԓǂݍž‚Ý */
     480        /* ボタン状態読み込み */
    488481        btn1 = sil_reb_mem((uint8_t *)0x0008C04A);
    489482        /*btn1 = sil_reb_mem((uint8_t *)0x0008C040);*/
     
    498491
    499492/*
    500  * ƒ^ƒCƒ}[Žæ“¾
     493 * タイマー取得
    501494 */
    502495static TMO main_get_timer()
     
    518511
    519512/*
    520  * ŽžŠÔŒo‰ß
     513 * 時間経過
    521514 */
    522515static void main_progress(TMO interval)
     
    547540
    548541/*
    549  * Echonet“d•¶ŽóMˆ—
     542 * Echonet電文受信処理
    550543 */
    551544static void main_recv_esv(T_EDATA *esv)
     
    610603
    611604/*
    612  * WebSocketƒƒbƒZ[ƒWŽóMˆ—
     605 * WebSocketメッセージ受信処理
    613606 */
    614607static bool_t main_wbs_msg(ECN_FBS_ID msg)
     
    646639
    647640/*
    648  * Š„‚荞‚݃ƒbƒZ[ƒWŽóMˆ—
     641 * 割り込みメッセージ受信処理
    649642 */
    650643static void main_int_msg(ECN_FBS_ID msg)
     
    673666
    674667/*
    675  * ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚ݏˆ—
     668 * 応答電文待ちの割り込み処理
    676669 */
    677670static void main_break_wait(uint8_t *brkdat, int32_t len)
     
    689682
    690683/*
    691  * ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚ݏˆ—
     684 * 応答電文待ちの割り込み処理
    692685 */
    693686void main_set_addr_callback()
     
    696689        uint8_t data[1];
    697690
    698         /* ƒƒCƒ“ƒ^ƒXƒN‚É’Ê’m */
     691        /* メインタスクに通知 */
    699692        data[0] = 0x01;
    700693        ret = ecn_brk_wai(data, sizeof(data));
     
    705698
    706699/*
    707  * ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚ݏˆ—
     700 * 応答電文待ちの割り込み処理
    708701 */
    709702static void main_start_service()
     
    717710        syslog(LOG_INFO, "ip_addr %s, netmask %s, gateway %s", ip_addr, netmask, gateway);
    718711
    719         /* ECHONETƒ~ƒhƒ‹ƒEƒFƒA‚ð‹N“® */
     712        /* ECHONETミドルウェアを起動 */
    720713        ret = ecn_sta_svc();
    721714        if(ret != E_OK)
     
    727720
    728721/*
    729  * ƒ^ƒCƒ€ƒAƒEƒgˆ—
     722 * タイムアウト処理
    730723 */
    731724static void main_timeout()
     
    760753        switch(main_state){
    761754        case main_state_idle:
    762                 /* 10msŒã‚Ƀ{ƒ^ƒ“ó‘Ô‚ðŠm”F */
     755                /* 10ms後にボタン状態を確認 */
    763756                main_timer = 10;
    764757
    765758                arduino_tick();
    766759
    767                 /* ƒ{ƒ^ƒ“ó‘ԓǂݍž‚Ý */
     760                /* ボタン状態読み込み */
    768761                btn1 = sil_reb_mem((uint8_t *)0x0008C04A);
    769762                /*btn1 = sil_reb_mem((uint8_t *)0x0008C040);*/
    770763                btn2 = sil_reb_mem((uint8_t *) 0x0008C040);
    771764
    772                 /* ƒ{ƒ^ƒ“‚P‚̏ˆ— */
     765                /* ボタン1の処理 */
    773766                if(((btn1 & 0x80/*0x20*/) != 0) && !main_btn1_state){
    774767                        main_btn1_count++;
     
    793786                }
    794787
    795                 /* ƒ{ƒ^ƒ“‚Q‚̏ˆ— */
     788                /* ボタン2の処理 */
    796789                if(((btn2 & 0x80) != 0) && !main_btn2_state){
    797790                        main_btn2_count++;
     
    852845
    853846/*
    854  * ƒ{ƒ^ƒ“‚Pó‘ԕω»ˆ—
     847 * ボタン1状態変化処理
    855848 */
    856849static void main_btn1_change(bool_t push)
    857850{
    858         /* ‰Ÿ‚³‚ê‚Ä–ß‚Á‚½Žž‚ɏˆ—‚·‚é */
     851        /* 押されて戻った時に処理する */
    859852        if(push)
    860853                return;
    861854
    862         /* ‹@Ší‚ÌŒŸõ */
     855        /* 機器の検索 */
    863856        main_search_device();
    864857}
    865858
    866859/*
    867  * ƒ{ƒ^ƒ“‚Qó‘ԕω»ˆ—
     860 * ボタン2状態変化処理
    868861 */
    869862static void main_btn2_change(bool_t push)
     
    872865
    873866/*
    874  * ‹@Ší‚ÌŒŸõ
     867 * 機器の検索
    875868 */
    876869static ER main_search_device()
     
    879872        T_EDATA *esv;
    880873
    881         /* ‹@Ší‚ÌŒŸõ */
     874        /* 機器の検索 */
    882875        ret = ecn_esv_inf_req(&esv, EOBJ_NULL, 0xD6);
    883876        if(ret != E_OK){
     
    886879        }
    887880
    888         /* “d•¶‘—M */
     881        /* 電文送信 */
    889882        ret = ecn_snd_esv(esv);
    890883        if(ret != E_OK){
     
    925918                return E_QOVR;
    926919
    927         /* ‹@Ší‚ÌŒŸõ */
     920        /* 機器の検索 */
    928921        ret = main_search_device();
    929922        if(ret != E_OK){
     
    11201113                return E_QOVR;
    11211114
    1122         /* ƒvƒƒpƒeƒBŽæ“¾“d•¶ì¬ */
     1115        /* プロパティ取得電文作成 */
    11231116        ret = ecn_esv_get(&esv, eobjid, epc);
    11241117        if(ret != E_OK){
     
    11271120        }
    11281121
    1129         /* “d•¶‘—M */
     1122        /* 電文送信 */
    11301123        ret = ecn_snd_esv(esv);
    11311124        if(ret != E_OK){
     
    11951188                return E_QOVR;
    11961189
    1197         /* ƒvƒƒpƒeƒBŽæ“¾“d•¶ì¬ */
     1190        /* プロパティ取得電文作成 */
    11981191        ret = ecn_esv_setc(&esv, eobjid, epc, pdc, edt);
    11991192        if(ret != E_OK){
     
    12021195        }
    12031196
    1204         /* “d•¶‘—M */
     1197        /* 電文送信 */
    12051198        ret = ecn_snd_esv(esv);
    12061199        if(ret != E_OK){
     
    12701263                return E_QOVR;
    12711264
    1272         /* “d•¶‘—M */
     1265        /* 電文送信 */
    12731266        ret = ecn_snd_esv(esv);
    12741267        if(ret != E_OK){
     
    13061299                return E_QOVR;
    13071300
    1308         /* “d•¶‘—M */
     1301        /* 電文送信 */
    13091302        ret = ecn_snd_esv(esv);
    13101303        if(ret != E_OK){
     
    13421335                return E_QOVR;
    13431336
    1344         /* “d•¶‘—M */
     1337        /* 電文送信 */
    13451338        ret = ecn_snd_esv(esv);
    13461339        if(ret != E_OK){
  • uKadecot/trunk/src/ukadecot/main.cfg

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4339
    4440/*
    45  *  ƒTƒ“ƒvƒ‹ƒvƒƒOƒ‰ƒ€(1)‚̃VƒXƒeƒ€ƒRƒ“ƒtƒBƒMƒ
    46 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     41 *  サンプルプログラム(1)のシステムコンフィギュレーションファイル
    4742 */
    4843INCLUDE("target_timer.cfg");
     
    6257
    6358/*
    64  *  ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ƒIƒuƒWƒFƒNƒg
     59 *  ノードプロファイルオブジェクト
    6560 */
    6661ECN_CRE_EOBJ (LOCAL_NODE_EOBJ, { EOBJ_LOCAL_NODE, EOBJ_NULL, 0, EOJ_X1_PROFILE, EOJ_X2_NODE_PROFILE, EOJ_X3_LOCAL_NODE });
    6762
    68 /* “®ìó‘Ô */
     63/* 動作状態 */
    6964ECN_DEF_EPRP (LOCAL_NODE_EOBJ, { 0x80, EPC_RULE_SET | EPC_RULE_GET, 1, (intptr_t)&local_node_data.operation_status, (EPRP_SETTER *)onoff_prop_set, (EPRP_GETTER *)ecn_data_prop_get });
    7065
    71 /* ‚u‚
    72 ‚’‚“‚‰‚‚Žî•ñ */
     66/* Version情報 */
    7367ECN_DEF_EPRP (LOCAL_NODE_EOBJ, { 0x82, EPC_RULE_GET, 4, (intptr_t)&local_node_data.version_information, (EPRP_SETTER *)ecn_data_prop_set, (EPRP_GETTER *)ecn_data_prop_get });
    7468
    75 /* Ž¯•Ê”ԍ† */
     69/* 識別番号 */
    7670ECN_DEF_EPRP (LOCAL_NODE_EOBJ, { 0x83, EPC_RULE_GET, 17, (intptr_t)&local_node_data.identification_number, (EPRP_SETTER *)ecn_data_prop_set, (EPRP_GETTER *)ecn_data_prop_get });
    7771
    78 /* ˆÙí“à—e */
     72/* 異常内容 */
    7973ECN_DEF_EPRP (LOCAL_NODE_EOBJ, { 0x89, EPC_RULE_GET, 2, (intptr_t)&local_node_data.fault_content, (EPRP_SETTER *)node_profile_object_fault_content_set, (EPRP_GETTER *)ecn_data_prop_get });
    8074
    81 /* ƒ[ƒJ[ƒR[ƒh */
     75/* メーカーコード */
    8276ECN_DEF_EPRP (LOCAL_NODE_EOBJ, { 0x8A, EPC_RULE_GET, 3, (intptr_t)&local_node_data.manufacturer_code, (EPRP_SETTER *)ecn_data_prop_set, (EPRP_GETTER *)ecn_data_prop_get });
    8377
    8478/*
    85  *  ƒRƒ“ƒgƒ[ƒ‰[ƒNƒ‰ƒX
     79 *  コントローラークラス
    8680 */
    8781ECN_CRE_EOBJ (CONTROLLER_CLASS_EOBJ, { EOBJ_DEVICE, LOCAL_NODE_EOBJ, 0, EOJ_X1_CONTROLLER, EOJ_X2_CONTROLLER, EOJ_X3_CONTROLLER });
    8882
    89 /* “®ìó‘Ô */
     83/* 動作状態 */
    9084ECN_DEF_EPRP (CONTROLLER_CLASS_EOBJ, { 0x80, EPC_RULE_SET | EPC_RULE_GET | EPC_ANNOUNCE, 1, (intptr_t)&controller_class_data.operation_status, (EPRP_SETTER *)onoff_prop_set, (EPRP_GETTER *)ecn_data_prop_get });
    9185
    92 /* Ý’uêŠ */
     86/* 設置場所 */
    9387ECN_DEF_EPRP (CONTROLLER_CLASS_EOBJ, { 0x81, EPC_RULE_SET | EPC_RULE_GET | EPC_ANNOUNCE, 1, (intptr_t)&controller_class_data.installation_location, (EPRP_SETTER *)ecn_data_prop_set, (EPRP_GETTER *)ecn_data_prop_get });
    9488
    95 /* ‹KŠi‚u‚
    96 ‚’‚“‚‰‚‚Žî•ñ */
     89/* 規格Version情報 */
    9790ECN_DEF_EPRP (CONTROLLER_CLASS_EOBJ, { 0x82, EPC_RULE_GET, 4, (intptr_t)&controller_class_data.standard_version_information, (EPRP_SETTER *)ecn_data_prop_set, (EPRP_GETTER *)ecn_data_prop_get });
    9891
    99 /* ˆÙí”­¶ó‘Ô */
     92/* 異常発生状態 */
    10093ECN_DEF_EPRP (CONTROLLER_CLASS_EOBJ, { 0x88, EPC_RULE_GET | EPC_ANNOUNCE, 1, (intptr_t)&controller_class_data.fault_status, (EPRP_SETTER *)alarm_prop_set, (EPRP_GETTER *)ecn_data_prop_get });
    10194
    102 /* ƒ[ƒJ[ƒR[ƒh */
     95/* メーカーコード */
    10396ECN_DEF_EPRP (CONTROLLER_CLASS_EOBJ, { 0x8A, EPC_RULE_GET, 3, (intptr_t)&controller_class_data.manufacturer_code, (EPRP_SETTER *)ecn_data_prop_set, (EPRP_GETTER *)ecn_data_prop_get });
    10497
    105 /* Œ»ÝŽžÝ’è */
     98/* 現在時刻設定 */
    10699ECN_DEF_EPRP (CONTROLLER_CLASS_EOBJ, { 0x97, EPC_RULE_SET | EPC_RULE_GET, 2, (intptr_t)NULL, (EPRP_SETTER *)time_prop_set, (EPRP_GETTER *)time_prop_get });
    107100
    108 /* Œ»Ý”NŒŽ“úÝ’è */
     101/* 現在年月日設定 */
    109102ECN_DEF_EPRP (CONTROLLER_CLASS_EOBJ, { 0x98, EPC_RULE_SET | EPC_RULE_GET, 4, (intptr_t)NULL, (EPRP_SETTER *)date_prop_set, (EPRP_GETTER *)date_prop_get });
  • uKadecot/trunk/src/ukadecot/main.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4440
    4541/*
    46  *              ƒTƒ“ƒvƒ‹ƒvƒƒOƒ‰ƒ€(1)‚̃wƒbƒ_ƒtƒ@ƒCƒ‹
     42 *              サンプルプログラム(1)のヘッダファイル
    4743 */
    4844
    4945/*
    50  *  ƒ^[ƒQƒbƒgˆË‘¶‚Ì’è‹`
     46 *  ターゲット依存の定義
    5147 */
    5248#include <kernel.h>
     
    5652
    5753/*
    58  *  Šeƒ^ƒXƒN‚Ì—Dæ“x‚Ì’è‹`
     54 *  各タスクの優先度の定義
    5955 */
    6056
    61 #define MAIN_PRIORITY   7               /* ƒƒCƒ“ƒ^ƒXƒN‚Ì—Dæ“x */
    62 #define INIT_PRIORITY           1       /* ‰Šú‰»ƒ^ƒXƒN‚Ì—Dæ“x */
    63 #define LOGTASK_PRIORITY        8       /* ƒƒOƒ^ƒXƒN‚Ì—Dæ“x */
     57#define MAIN_PRIORITY   7               /* メインタスクの優先度 */
     58#define INIT_PRIORITY           1       /* 初期化タスクの優先度 */
     59#define LOGTASK_PRIORITY        8       /* ログタスクの優先度 */
    6460
    65 #define MAIN_STACK_SIZE 1024    /* ƒXƒ^ƒbƒN—̈æ‚̃TƒCƒY */
     61#define MAIN_STACK_SIZE 1024    /* スタック領域のサイズ */
    6662
    67 #define EOJ_X3_LOCAL_NODE 1     /* ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚̃Cƒ“ƒXƒ^ƒ“ƒXƒR[ƒh */
     63#define EOJ_X3_LOCAL_NODE 1     /* ノードプロファイルオブジェクトのインスタンスコード */
    6864
    69 #define EOJ_X3_CONTROLLER 1     /* ƒRƒ“ƒgƒ[ƒ‰[ƒNƒ‰ƒX‚̃Cƒ“ƒXƒ^ƒ“ƒXƒR[ƒh */
     65#define EOJ_X3_CONTROLLER 1     /* コントローラークラスのインスタンスコード */
    7066
    7167#define NUM_WEBSOCKET_MBXID 2
    7268
    7369/*
    74  *  ŠÖ”‚̃vƒƒgƒ^ƒCƒvéŒ¾
     70 *  関数のプロトタイプ宣言
    7571 */
    7672#ifndef TOPPERS_MACRO_ONLY
     
    8884
    8985/*
    90  *  ‚u‚
    91 ‚’‚“‚‰‚‚Žî•ñ‚ÌŒ^
     86 *  Version情報の型
    9287 */
    9388struct version_information_t {
    94         /* ƒƒWƒƒ[ƒo[ƒWƒ‡ƒ“(¬”“_ˆÈã) */
     89        /* メジャーバージョン(小数点以上) */
    9590        uint8_t major_version_number;
    96         /* ƒ}ƒCƒi[ƒo[ƒWƒ‡ƒ“(¬”“_ˆÈ‰º) */
     91        /* マイナーバージョン(小数点以下) */
    9792        uint8_t minor_version_number;
    98         /* “d•¶ƒ^ƒCƒv */
     93        /* 電文タイプ */
    9994        uint8_t message_type[2];
    10095};
    10196
    10297/*
    103  *  ƒ[ƒJ[ƒR[ƒh‚ÌŒ^
     98 *  メーカーコードの型
    10499 */
    105100struct manufacturer_code_t {
    106         /* ƒ[ƒJ[ƒR[ƒh */
     101        /* メーカーコード */
    107102        uint8_t manufacturer_code[3];
    108103};
    109104
    110105/*
    111  *  Ž¯•Ê”ԍ†‚ÌŒ^
     106 *  識別番号の型
    112107 */
    113108struct node_identification_number_t {
    114         /* ‰ºˆÊ’ʐM‘wIDƒtƒB[ƒ‹ƒh */
     109        /* 下位通信層IDフィールド */
    115110        uint8_t lower_communication_id_field;
    116         /* ƒ[ƒJ[ƒR[ƒh */
     111        /* メーカーコード */
    117112        struct manufacturer_code_t manufacturer_code;
    118         /* ƒ†ƒj[ƒNID•”(ƒ[ƒJ[“ÆŽ©) */
     113        /* ユニークID部(メーカー独自) */
    119114        uint8_t unique_id_section[13];
    120115};
    121116
    122117/*
    123  *  ‹KŠi‚u‚
    124 ‚’‚“‚‰‚‚Žî•ñ‚ÌŒ^
     118 *  規格Version情報の型
    125119 */
    126120struct standard_version_information_t {
    127         /* ŒÅ’è1(for future reserved) */
     121        /* 固定1(for future reserved) */
    128122        uint8_t reserved1;
    129         /* ŒÅ’è2(for future reserved) */
     123        /* 固定2(for future reserved) */
    130124        uint8_t reserved2;
    131         /* ƒŠƒŠ[ƒX‡‚ðASCII‚ÅŽ¦‚· */
     125        /* リリース順をASCIIで示す */
    132126        uint8_t order_of_release;
    133         /* ŒÅ’è4(for future reserved) */
     127        /* 固定4(for future reserved) */
    134128        uint8_t reserved4;
    135129};
    136130
    137131/*
    138  *  ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ƒIƒuƒWƒFƒNƒg
     132 *  ノードプロファイルオブジェクト
    139133 */
    140134struct node_profile_object_t {
    141         /* “®ìó‘Ô */
     135        /* 動作状態 */
    142136        uint8_t operation_status;
    143         /* ‚u‚
    144 ‚’‚“‚‰‚‚Žî•ñ */
     137        /* Version情報 */
    145138        struct version_information_t version_information;
    146         /* Ž¯•Ê”ԍ† */
     139        /* 識別番号 */
    147140        struct node_identification_number_t identification_number;
    148         /* ˆÙí“à—e */
     141        /* 異常内容 */
    149142        uint16_t fault_content;
    150         /* ƒ[ƒJ[ƒR[ƒh */
     143        /* メーカーコード */
    151144        struct manufacturer_code_t manufacturer_code;
    152145};
    153146
    154147/*
    155  *  ƒRƒ“ƒgƒ[ƒ‰[ƒNƒ‰ƒX
     148 *  コントローラークラス
    156149 */
    157150struct controller_t {
    158         /* “®ìó‘Ô */
     151        /* 動作状態 */
    159152        uint8_t operation_status;
    160         /* Ý’uêŠ */
     153        /* 設置場所 */
    161154        uint8_t installation_location;
    162         /* ‹KŠi‚u‚
    163 ‚’‚“‚‰‚‚Žî•ñ */
     155        /* 規格Version情報 */
    164156        struct standard_version_information_t standard_version_information;
    165         /* ˆÙí”­¶ó‘Ô */
     157        /* 異常発生状態 */
    166158        uint8_t fault_status;
    167         /* ƒ[ƒJ[ƒR[ƒh */
     159        /* メーカーコード */
    168160        struct manufacturer_code_t manufacturer_code;
    169161};
     
    177169#endif
    178170
    179 extern struct node_profile_object_t local_node_data;    /* ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚̃f[ƒ^ */
     171extern struct node_profile_object_t local_node_data;    /* ノードプロファイルオブジェクトのデータ */
    180172
    181 extern struct controller_t controller_class_data;       /* ƒRƒ“ƒgƒ[ƒ‰[ƒNƒ‰ƒX‚̃f[ƒ^ */
     173extern struct controller_t controller_class_data;       /* コントローラークラスのデータ */
    182174
    183175EPRP_SETTER onoff_prop_set;
  • uKadecot/trunk/src/ukadecot/uip-conf.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/src/ukadecot/uip_app_config.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2014 Cores Co., Ltd. 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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 *  @(#) $Id$
     
    4642
    4743/*
    48  *  RX62N Ethernet Controler ‚ÉŠÖ‚·‚é’è‹`
     44 *  RX62N Ethernet Controler に関する定義
    4945 */
    5046
     
    5248#define UIP_TASK_STACK_SIZE     256
    5349
    54 /* IPv4 ‚ÉŠÖ‚·‚é’è‹` */
     50/* IPv4 に関する定義 */
    5551#define IPV4_ADDR_LOCAL                         MAKE_IPV4_ADDR(192,168,2,110)
    5652#define IPV4_ADDR_LOCAL_MASK            MAKE_IPV4_ADDR(255,255,255,0)
     
    5854
    5955/*
    60  *  DHCP ƒNƒ‰ƒCƒAƒ“ƒg‚ÉŠÖ‚·‚é’è‹`
     56 *  DHCP クライアントに関する定義
    6157 */
    6258
  • uKadecot/trunk/ssp/arch/ccrx/tool_stddef.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2007-2010 by Witz Corporation, JAPAN
    1010 *
    11  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    12  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    13  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    14  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    15  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    16  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    17  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔ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
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     11 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     12 *  によって公表されている GNU General Public License の Version 2 に記
     13 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     14 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     15 *  利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3632 *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    38  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚à
    39  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    40  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     35 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     36 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4137 *
    4238 */
    4339
    4440/*
    45  *  t_stddef.h‚ÌŠJ”­ŠÂ‹«ˆË‘¶•”iƒ‹ƒlƒTƒX RXƒc[ƒ‹ƒ`ƒFƒCƒ“—pj
     41 *  t_stddef.hの開発環境依存部(ルネサス RXツールチェイン用)
    4642 *
    47  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Ct_stddef.h ‚̐擪‚ŃCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD
    48  *  ‘¼‚̃tƒ@ƒCƒ‹‚©‚ç‚Í’¼ÚƒCƒ“ƒNƒ‹[ƒh‚·‚邱‚Æ‚Í‚È‚¢D‘¼‚̃Cƒ“ƒNƒ‹[ƒh
    49  *  ƒtƒ@ƒCƒ‹‚ɐ旧‚Á‚ďˆ—‚³‚ê‚邽‚߁C‘¼‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚Ɉˑ¶‚µ
    50  *  ‚Ä‚Í‚È‚ç‚È‚¢D
     43 *  このインクルードファイルは,t_stddef.h の先頭でインクルードされる.
     44 *  他のファイルからは直接インクルードすることはない.他のインクルード
     45 *  ファイルに先立って処理されるため,他のインクルードファイルに依存し
     46 *  てはならない.
    5147 */
    5248
     
    5551
    5652/*
    57  *  ƒRƒ“ƒpƒCƒ‰‚ÌŠg’£‹@”\‚Ì‚½‚߂̃}ƒNƒ’è‹`
     53 *  コンパイラの拡張機能のためのマクロ定義
    5854 */
    5955/*
    60  *  inline Ž¯•ÊŽq‚ÍŠO•”’è‹`‚𐶐¬‚µ‚È‚¢.
     56 *  inline 識別子は外部定義を生成しない.
    6157 */
    6258#define Inline          static inline
    6359
    6460/*
    65  *  ƒCƒ“ƒ‰ƒCƒ“ƒAƒZƒ“ƒuƒ‰‚Í–{ƒRƒ“ƒpƒCƒ‰‚Å‚Í
    66  *  #pragma inline_asm‚݂̂̃Tƒ|[ƒg‚ƂȂ邽‚ß,
    67  *  asm/Asm’è‹`‚͍s‚í‚È‚¢.
     61 *  インラインアセンブラは本コンパイラでは
     62 *  #pragma inline_asmのみのサポートとなるため,
     63 *  asm/Asm定義は行わない.
    6864 */
    6965
    7066/*
    71  *  NoReturn / alignof‚Í–{ƒRƒ“ƒpƒCƒ‰‚ł̓Tƒ|[ƒg‚³‚ê‚È‚¢.
    72  *  offsetof‚Ístddef.h‚Ì’è‹`‚ð—˜—p‚·‚é.
     67 *  NoReturn / alignofは本コンパイラではサポートされない.
     68 *  offsetofはstddef.hの定義を利用する.
    7369 */
    7470#define NoReturn
     
    7672
    7773/*
    78  *  ŠJ”­ŠÂ‹«‚Ì•W€ƒCƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚Ì—˜—p
     74 *  開発環境の標準インクルードファイルの利用
    7975 *
    80  *  NULL‚Ì’è‹`‚ðstddef.h‚©‚çCINT_MAXCINT_MINCUINT_MAXCLONG_MAXC
    81  *  LONG_MINCULONG_MAXCCHAR_BIT‚Ì’è‹`‚ðlimits.h‚©‚çŽæ‚荞‚ށD
     76 *  NULLの定義をstddef.hから,INT_MAX,INT_MIN,UINT_MAX,LONG_MAX,
     77 *  LONG_MIN,ULONG_MAX,CHAR_BITの定義をlimits.hから取り込む.
    8278 *
    83  *  C++/EC++‚ł́C•W€Žd—lã‚Í‚±‚ê‚ç‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚ª—pˆÓ‚³‚ê‚Ä
    84  *  ‚¢‚é‚Æ‚ÍŒÀ‚ç‚È‚¢‚Ì‚Å’ˆÓ‚ª•K—v‚Å‚ ‚éi‚Ù‚Æ‚ñ‚Ç‚ÌŠJ”­ŠÂ‹«‚Å—pˆÓ‚³‚ê
    85  *  ‚Ä‚¢‚éjD
     79 *  C++/EC++では,標準仕様上はこれらのインクルードファイルが用意されて
     80 *  いるとは限らないので注意が必要である(ほとんどの開発環境で用意され
     81 *  ている).
    8682 */
    8783#ifndef TOPPERS_MACRO_ONLY
     
    9288
    9389/*
    94  *  ƒRƒ“ƒpƒCƒ‰ˆË‘¶‚̃f[ƒ^Œ^‚Ì’è‹`
     90 *  コンパイラ依存のデータ型の定義
    9591 *
    96  *  stdint.h‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚é
     92 *  stdint.hをインクルードする
    9793 */
    9894#ifndef TOPPERS_MACRO_ONLY
     
    10298
    10399/*
    104  *  •‚“®¬”“_Œ^‚ÉŠÖ‚·‚é’è‹`
     100 *  浮動小数点型に関する定義
    105101 *
    106  *  ‰º‹L‚Ì’è‹`‚Ídbl_size = 8ƒIƒvƒVƒ‡ƒ“‚ðŽw’肵‚½ê‡‚Ì‚Ý—LŒø‚Æ‚·‚邱‚Æ.
     102 *  下記の定義はdbl_size = 8オプションを指定した場合のみ有効とすること.
    107103 */
    108104#ifndef TOPPERS_MACRO_ONLY
    109 typedef float           float32_t;                      /* IEEE754€‹’‚Ì’P¸“x•‚“®¬”“_” */
    110 typedef double          double64_t;                     /* IEEE754€‹’‚Ì”{¸“x•‚“®¬”“_” */
     105typedef float           float32_t;                      /* IEEE754準拠の単精度浮動小数点数 */
     106typedef double          double64_t;                     /* IEEE754準拠の倍精度浮動小数点数 */
    111107#endif /* TOPPERS_MACRO_ONLY */
    112108
     
    118114
    119115/*
    120  *  ‹óƒ‰ƒxƒ‹‚Ì’è‹`
     116 *  空ラベルの定義
    121117 *
    122  *  –{ƒRƒ“ƒpƒCƒ‰‚Å‚Í‘å‚«‚³ƒ[ƒ‚Ì”z—ñ‚̓Rƒ“ƒpƒCƒ‹ƒGƒ‰[‚ɂȂ邽‚ß,
    123  *  ƒTƒCƒY1‚É‚Ä’è‹`‚·‚é.
     118 *  本コンパイラでは大きさゼロの配列はコンパイルエラーになるため,
     119 *  サイズ1にて定義する.
    124120 */
    125121#define TOPPERS_EMPTY_LABEL( type, symbol )             type symbol[ 1 ]
  • uKadecot/trunk/ssp/arch/rx630_ccrx/makeoffset.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    77 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    88 *
    9  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    10  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    11  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    12  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    13  *  —˜—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  *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚à
    37  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    38  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     9 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     10 *  によって公表されている GNU General Public License の Version 2 に記
     11 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     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 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     33 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     34 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    3935 *
    4036 */
     
    4238
    4339/*
    44  *      offset.inc (‚à‚µ‚­‚Í offset.h) ‚ɂ‚¢‚Ä
    45  *
    46  *        offset.inc ‚͍\‘¢‘Ì‚Ì“Á’è‚Ì—v‘f‚ª\‘¢‘̂̐擪‚©‚牽ƒoƒCƒg–Ú‚É
    47  *      ‘¶Ý‚·‚é‚©‚Æ‚¢‚¤‚±‚Æ‚â, “Á’è‚̃rƒbƒgƒtƒB[ƒ‹ƒh‚ªæ“ª‚©‚ç
    48  *      ‰½ƒoƒCƒgæ‚̉½ƒrƒbƒg–Ú‚É‘¶Ý‚·‚é‚©, ‚Æ‚¢‚¤î•ñ‚ð
    49  *      ƒAƒZƒ“ƒuƒŠŒ¾Œêƒtƒ@ƒCƒ‹‚É—^‚¦‚邽‚ß‚É‘¶Ý‚µ‚Ä‚¢‚é.
    50  *
    51  *        offset.inc ƒtƒ@ƒCƒ‹‚Ì’†g‚Í, ’P‚È‚éƒVƒ“ƒ{ƒ‹’è‹`ƒtƒ@ƒCƒ‹‚Å‚ ‚é.
    52  *      ƒVƒ“ƒ{ƒ‹‚Æ‚¢‚Á‚Ä‚à’è‹`‚·‚éƒVƒ“ƒ{ƒ‹‚Ì–¼Ì‚ɂ̓pƒ^[ƒ“‚ª‚ ‚è,
    53  *      ‘å‚«‚­•ª‚¯‚ÄŽŸ‚Ì3Ží—Þ‚É•ª—Þ‚Å‚«‚é.
    54  *
    55  *      <\‘¢‘Ì–¼>_<—v‘f–¼>     (—á) TCB_sp, TCB_pc, TCB_enatex ‚È‚Ç
    56  *      <\‘¢‘Ì–¼>_<—v‘f–¼>_bit (—á) TCB_enatex_bit ‚È‚Ç
    57  *      <\‘¢‘Ì–¼>_<—v‘f–¼>_mask (—á) TCB_enatex_mask ‚È‚Ç
    58  *
    59  *      (—á)
     40 *      offset.inc (もしくは offset.h) について
     41 *
     42 *        offset.inc は構造体の特定の要素が構造体の先頭から何バイト目に
     43 *      存在するかということや, 特定のビットフィールドが先頭から
     44 *      何バイト先の何ビット目に存在するか, という情報を
     45 *      アセンブリ言語ファイルに与えるために存在している.
     46 *
     47 *        offset.inc ファイルの中身は, 単なるシンボル定義ファイルである.
     48 *      シンボルといっても定義するシンボルの名称にはパターンがあり,
     49 *      大きく分けて次の3種類に分類できる.
     50 *
     51 *      <構造体名>_<要素名>    (例) TCB_sp, TCB_pc, TCB_enatex など
     52 *      <構造体名>_<要素名>_bit        (例) TCB_enatex_bit など
     53 *      <構造体名>_<要素名>_mask (例) TCB_enatex_mask など
     54 *
     55 *      ()
    6056 *              TCB_texptn              .equ    14
    6157 *              TCB_sp                  .equ    20
     
    6561 *              TCB_enatex_mask         .equ    0040H
    6662 *
    67  *        ˆê”Ô‚Í‚¶‚ß‚Í“Á’è‚Ì—v‘f‚ª\‘¢‘̂̐擪‚©‚牽ƒoƒCƒgæ‚É‚ ‚é‚©
    68  *      ‚Æ‚¢‚¤‚±‚Æ‚ðŽ¦‚·”’l‚ɂ‚¯‚郉ƒxƒ‹‚Ì–¼Ì.
    69  *        “ñ”Ô–Ú‚Í“Á’è‚̃rƒbƒgƒtƒB[ƒ‹ƒh’†‚̃rƒbƒg‚ª, ‰ºˆÊ‚©‚琔‚¦‚Ä
    70  *      ‰½ƒrƒbƒg–Ú‚É‚ ‚é‚©‚Æ‚¢‚¤‚±‚Æ‚ðŽ¦‚·”’l‚ɂ‚¯‚郉ƒxƒ‹‚Ì–¼Ì.
    71  *      0‚©‚çŽn‚܂鐔’l‚Å•\Œ»‚·‚é. Å‚à‰ºˆÊ‚̃rƒbƒg‚Í‘æ0ƒrƒbƒg‚Å‚ ‚é.
    72  *        ŽO”Ԗڂ͐æ‚Ù‚Ç‚Ì <\‘¢‘Ì–¼>_<—v‘f–¼>_bit ‚Æ‚àŠÖ˜A‚·‚邪,
    73  *      “Á’è‚̃rƒbƒgƒtƒB[ƒ‹ƒh’†‚̃rƒbƒg‚̃}ƒXƒN’l‚Ì–¼Ì.
    74  *      _bit ‚Æ *_mask ‚Ì’l‚ÌŠÔ‚É‚ÍŽŸ‚ÌŠÖŒW‚ª‚ ‚é.
     63 *        一番はじめは特定の要素が構造体の先頭から何バイト先にあるか
     64 *      ということを示す数値につけるラベルの名称.
     65 *        二番目は特定のビットフィールド中のビットが, 下位から数えて
     66 *      何ビット目にあるかということを示す数値につけるラベルの名称.
     67 *      0から始まる数値で表現する. 最も下位のビットは第0ビットである.
     68 *        三番目は先ほどの <構造体名>_<要素名>_bit とも関連するが,
     69 *      特定のビットフィールド中のビットのマスク値の名称.
     70 *      _bit と *_mask の値の間には次の関係がある.
    7571 *              (*_mask) == (1 << *_bit)
    76  * *    (—á) TCB_enatex_bit ‚ª 6 ‚ÌŽž, TCB_enatex_mask ‚Í 40H
    77  *
    78  *        ‚¿‚È‚Ý‚ÉM32CˆË‘¶•”‚ÌŽÀ‘•‚Å‚Í, “Á’èƒrƒbƒg‚̃`ƒFƒbƒN‚È‚Ç‚É
    79  *      ƒrƒbƒg–½—߃AƒhƒŒƒbƒVƒ“ƒO‚ðŽg—p‚µ‚Ä‚¢‚é‚Ì‚Å *_mask ‚Æ‚¢‚¤ƒ‰ƒxƒ‹‚Í
    80  *      Žg—p‚µ‚Ä‚¢‚È‚¢.
     72 * *    (例) TCB_enatex_bit が 6 の時, TCB_enatex_mask は 40H
     73 *
     74 *        ちなみにM32C依存部の実装では, 特定ビットのチェックなどに
     75 *      ビット命令アドレッシングを使用しているので *_mask というラベルは
     76 *      使用していない.
    8177 */
    8278
    8379/*
    84  *      offset.inc ‚̍ì‚è•û(M32Cƒ^[ƒQƒbƒgˆË‘¶•”Œü‚¯)
    85  *
    86  *        GNU CƒRƒ“ƒpƒCƒ‰‚ð—p‚¢‚Ä‚¢‚éƒ^[ƒQƒbƒgˆË‘¶•”‚ɂ‚¢‚Ä‚Í,
    87  *      ƒJ[ƒlƒ‹‚̃gƒbƒvƒfƒBƒŒƒNƒgƒŠ‚̉º‚É‚ ‚é util ‚Æ‚¢‚¤ƒfƒBƒŒƒNƒgƒŠ‚Ì
    88  *      ‰º‚É genoffset ‚Æ‚¢‚¤ perl ƒXƒNƒŠƒvƒg‚ª—pˆÓ‚³‚ê‚Ä‚¢‚é‚Ì‚Å,
    89  *      “Á‚ÉŽè“®‚Å offset.h ‚ðì¬‚·‚é•K—v‚Í‚È‚¢.
    90  *        genoffset ‚Í GNU ŠJ”­ŠÂ‹«‚ð‘z’肵‚č쐬‚³‚ê‚Ä‚¢‚é‚Ì‚Å,
    91  *      ¶¬‚³‚ê‚éƒAƒZƒ“ƒuƒŠŒ¾Œê‹^Ž—–½—߂␶¬‹K‘¥‚̈قȂ鑼‚Ì
    92  *      CƒRƒ“ƒpƒCƒ‰‚É‚Í‚»‚Ì‚Ü‚Ü“K—p‚Å‚«‚È‚¢‰Â”\«‚ª‚ ‚é.
    93  *        ‚»‚±‚Å, ‚±‚±‚Å‚ÍWindowsŠÂ‹« Œü‚¯‚Ì genoffset ‚ð—pˆÓ‚¹‚¸,
    94  *      ì‚è•û‚ð‚±‚±‚É‹L‚µ, Žèì‹Æ‚Å offset.inc ‚ðì¬‚µ‚Ä‚à‚炤‚±‚Æ‚Æ
    95  *      ‚·‚é. ˆÈ‰º‚É‚»‚Ì•û–@‚ðŽ¦‚·. ‚È‚¨, ‚±‚Ì•û–@‚ÍM32C‚ÌŠJ”­ŠÂ‹«‚â
    96  *      –½—߃Zƒbƒg‚Ɉˑ¶‚µ‚Ä‚¢‚邽‚ß, ‘¼‚̃^[ƒQƒbƒg‚ðŽg—p‚µ‚Ä‚¢‚éê‡‚Í
    97  *      ‚»‚Ì‚Ü‚Ü“K—p‚Å‚«‚È‚¢.
    98  *
    99  *  1.  makeoffset.c ‚Æ‚¢‚¤ƒtƒ@ƒCƒ‹‚©‚çCƒRƒ“ƒpƒCƒ‰‚ðŽg—p‚µ‚Ä
    100  *      ƒAƒZƒ“ƒuƒŠŒ¾Œêƒtƒ@ƒCƒ‹ makeoffset.a30 ‚𐶐¬‚·‚é.
    101  *      ƒRƒ“ƒpƒCƒ‹ƒIƒvƒVƒ‡ƒ“‚̓J[ƒlƒ‹ƒR[ƒh‚É—^‚¦‚é‚à‚Ì‚Æ“¯‚¶
    102  *      ‚à‚Ì‚ð—^‚¦‚é.
    103  *      ƒ‹ƒlƒTƒX»ƒc[ƒ‹ TM ‚ðŽg—p‚µ‚Ä‚¢‚éê‡‚Í, ƒvƒƒWƒFƒNƒgƒGƒfƒBƒ^‚Ì
    104  *      ¶¬Žè‡ƒrƒ
    105 [‚©‚ç makeoffset.a30 ‚ð‘I‚Ñ, ‰EƒNƒŠƒbƒNƒƒjƒ
    106 [‚Ì
    107  *      ¢•”•ªƒrƒ‹ƒh£‚ð‘I‘ð‚·‚é‚±‚ƂŐ¶¬‚Å‚«‚é.
    108  *      ‚à‚µ‚­‚̓Rƒ}ƒ“ƒhƒvƒƒ“ƒvƒg‚сƒCƒNƒtƒ@ƒCƒ‹‚Æ“¯‚¶ƒfƒBƒŒƒNƒgƒŠ‚É
    109  *      ˆÚ“®‚µ, "make -f ƒƒCƒNƒtƒ@ƒCƒ‹–¼ makeoffset.a30" ‚ð
    110  *      ŽÀs‚µ‚Ä‚à“¯—l‚ÌŒ‹‰Ê‚ª“¾‚ç‚ê‚é. (ƒƒCƒNƒtƒ@ƒCƒ‹‚ÍTM‚ªŽg—p‚µ‚Ä
    111  *      ‚¢‚é‚à‚Ì‚Æ“¯‚¶ƒtƒ@ƒCƒ‹‚ðŽw’è‰Â”\)
    112  *
    113  *  2.  æ‚Ù‚Ç‚Ì 1. ‚̍ì‹Æ‚Å“¾‚ç‚ꂽ, makeoffset.a30 ƒtƒ@ƒCƒ‹‚©‚ç
    114  *      "! BEGIN XXXX"  ‚Å‚Í‚¶‚Ü‚è "! END" ‚ŏI‚í‚Á‚Ä‚¢‚é•”•ª‚ð’T‚·.
    115  *
    116  *      4‰ÓŠ‚ ‚è, ‚»‚ꂼ‚ꏭ‚µ‚¸‚ˆقȂé‚̂ŏ‡‚Éà–¾‚·‚é.
    117  *      (ˆÈ‰º, à–¾’†‚ł̓AƒZƒ“ƒuƒŠŒ¾Œêƒtƒ@ƒCƒ‹‚̃Rƒƒ“ƒgs‚͏Ȃ­)
    118  *
    119  * (1)  \‘¢‘̂̐擪‚©‚烁ƒ“ƒo‚ւ̃IƒtƒZƒbƒg
     80 *      offset.inc の作り方(M32Cターゲット依存部向け)
     81 *
     82 *        GNU Cコンパイラを用いているターゲット依存部については,
     83 *      カーネルのトップディレクトリの下にある util というディレクトリの
     84 *      下に genoffset という perl スクリプトが用意されているので,
     85 *      特に手動で offset.h を作成する必要はない.
     86 *        genoffset は GNU 開発環境を想定して作成されているので,
     87 *      生成されるアセンブリ言語疑似命令や生成規則の異なる他の
     88 *      Cコンパイラにはそのまま適用できない可能性がある.
     89 *        そこで, ここではWindows環境 向けの genoffset を用意せず,
     90 *      作り方をここに記し, 手作業で offset.inc を作成してもらうことと
     91 *      する. 以下にその方法を示す. なお, この方法はM32Cの開発環境や
     92 *      命令セットに依存しているため, 他のターゲットを使用している場合は
     93 *      そのまま適用できない.
     94 *
     95 *  1.  makeoffset.c というファイルからCコンパイラを使用して
     96 *      アセンブリ言語ファイル makeoffset.a30 を生成する.
     97 *      コンパイルオプションはカーネルコードに与えるものと同じ
     98 *      ものを与える.
     99 *      ルネサス製ツール TM を使用している場合は, プロジェクトエディタの
     100 *      生成手順ビューから makeoffset.a30 を選び, 右クリックメニューの
     101 *      「部分ビルド」を選択することで生成できる.
     102 *      もしくはコマンドプロンプトでメイクファイルと同じディレクトリに
     103 *      移動し, "make -f メイクファイル名 makeoffset.a30" を
     104 *      実行しても同様の結果が得られる. (メイクファイルはTMが使用して
     105 *      いるものと同じファイルを指定可能)
     106 *
     107 *  2.  先ほどの 1. の作業で得られた, makeoffset.a30 ファイルから
     108 *      "! BEGIN XXXX"  ではじまり "! END" で終わっている部分を探す.
     109 *
     110 *      4箇所あり, それぞれ少しずつ異なるので順に説明する.
     111 *      (以下, 説明中ではアセンブリ言語ファイルのコメント行は省く)
     112 *
     113 * (1)  構造体の先頭からメンバへのオフセット
    120114 *
    121115 *      ! BEGIN TCB_texptn
     
    123117 *      ! END
    124118 *
    125  *      ã‹L"! BEGIN"‚ÌŒã‚ë‚Ì•¶Žš—ñ‚ªoffset.inc‚Å’è‹`‚·‚éƒVƒ“ƒ{ƒ‹–¼‚Æ‚È‚é.
    126  *      ‚»‚̃Vƒ“ƒ{ƒ‹‚Ì’l‚Í, ŽŸs‚Ìbset–½—ß‚Ì‘æ2ƒIƒyƒ‰ƒ“ƒh‚Ì’l‚Å‚ ‚é
    127  *      0000000eH‚ª‚»‚ê‚É‘Š“–‚·‚é. ‚±‚ꂪ\‘¢‘̂̐擪‚©‚çtexptn‚Ü‚Å‚Ì
    128  *      ƒIƒtƒZƒbƒg’l‚Æ‚È‚é. ‚µ‚½‚ª‚Á‚Ä‚±‚̏ꍇ, offset.inc ‚É‚Í
     119 *      上記"! BEGIN"の後ろの文字列がoffset.incで定義するシンボル名となる.
     120 *      そのシンボルの値は, 次行のbset命令の第2オペランドの値である
     121 *      0000000eHがそれに相当する. これが構造体の先頭からtexptnまでの
     122 *      オフセット値となる. したがってこの場合, offset.inc には
    129123 *      TCB_texptn      .equ    14
    130  *      ‚Æ‚¢‚¤s‚ð‹Lq‚·‚é.
    131  *
    132  * (2)  \‘¢‘̂̃ƒ“ƒo‚ª\‘¢‘Ì‚Å, ‚»‚Ì’†‚̃ƒ“ƒo‚ɑ΂·‚éƒIƒtƒZƒbƒg
    133  *
    134  *      TCB_sp ‚ɂ‚¢‚Ä‚à‚Ù‚Ú“¯—l‚¾‚ª, sp ‚ÍTCB\‘¢‘Ì‚Ì’¼Ú‚Ì
    135  *      ƒƒ“ƒo‚Å‚È‚­TCB\‘¢‘̂̃ƒ“ƒo‚Å‚ ‚éTSKCTXB\‘¢‘̂̃ƒ“ƒo‚Å
    136  *      ‚ ‚é“_‚ªˆÙ‚È‚é. ‚»‚ê‚Å‚à’è‹`‚·‚éƒVƒ“ƒ{ƒ‹–¼‚Æ‚µ‚Ä‚Í
    137  *      TCB_sp ‚̂悤‚É•\Œ»‚·‚é. ƒAƒZƒ“ƒuƒŠŒ¾Œêƒtƒ@ƒCƒ‹‚Å‚Í
     124 *      という行を記述する.
     125 *
     126 * (2)  構造体のメンバが構造体で, その中のメンバに対するオフセット
     127 *
     128 *      TCB_sp についてもほぼ同様だが, sp はTCB構造体の直接の
     129 *      メンバでなくTCB構造体のメンバであるTSKCTXB構造体のメンバで
     130 *      ある点が異なる. それでも定義するシンボル名としては
     131 *      TCB_sp のように表現する. アセンブリ言語ファイルでは
    138132 *
    139133 *      ! BEGIN TCB_sp
     
    145139 *      ! END *
    146140 *
    147  *      ‚̂悤‚É‚È‚è,14H(=20) ‚ª‹‚ß‚é’l‚È‚Ì‚Åoffset.inc ‚É‚ÍŽŸ‚̂悤‚É
    148  *      ‹Lq‚·‚é.
     141 *      のようになり,14H(=20) が求める値なのでoffset.inc には次のように
     142 *      記述する.
    149143 *
    150144 *      TCB_sp  .equ    20
    151145 *
    152  * (3)  ƒƒ“ƒo‚ªŠÖ”‚ւ̃|ƒCƒ“ƒ^‚Å‚ ‚Á‚½ê‡
    153  *
    154  *      ŽŸ‚Í TCB_pc ‚̏ꍇ.
     146 * (3)  メンバが関数へのポインタであった場合
     147 *
     148 *      次は TCB_pc の場合.
    155149 *
    156150 *      ! BEGIN TCB_pc
     
    159153 *      ! END
    160154 *
    161  *      pc ‚à sp ‚Æ“¯‚¶‚­, TCB\‘¢‘Ì‚Ì’¼Ú‚̃ƒ“ƒo‚Å‚Í‚È‚¢‚ª
    162  *      TCB_pc ‚Æ•\Œ»‚µ‚Ä‚¢‚é. ‚±‚ê‚͊֐”‚̃AƒhƒŒƒX‚ðŠi”[‚·‚é•Ï”‚È‚Ì‚Å,
     155 *      pc も sp と同じく, TCB構造体の直接のメンバではないが
     156 *      TCB_pc と表現している. これは関数のアドレスを格納する変数なので,
    163157 *      (((TCB *)0)->tskctxb.pc)();
    164  *      ‚Æ‚µ‚Ċ֐”ŒÄ‚яo‚µ‚̂悤‚É‹Lq‚·‚é‚Əã‹L‚̂悤‚ȃAƒZƒ“ƒuƒŠŒ¾Œê
    165  *      ƒR[ƒh‚ðo—Í‚·‚é. ƒVƒ“ƒ{ƒ‹’è‹`‚·‚éÛ‚̃Vƒ“ƒ{ƒ‹–¼‚͍¡‚Ü‚Å‚Æ
    166  *      “¯‚¶‚­, TCB_pc ‚Æ‚·‚é.
    167  *      ‹‚ß‚é’l‚͍\‘¢‘Ì‚©‚çŠÖ”ƒ|ƒCƒ“ƒ^‚܂ł̃IƒtƒZƒbƒg‚Å‚ ‚è, ã‚Ìmov.l
    168  *      –½—ß‚ÌŒ‹‰Ê‚©‚ç  00000018H(=24) ‚Æ‚È‚é.
    169  *      ‚µ‚½‚ª‚Á‚Ä, offset.inc ‚É‚ÍŽŸ‚̂悤‚É‹Lq‚·‚é.
     158 *      として関数呼び出しのように記述すると上記のようなアセンブリ言語
     159 *      コードを出力する. シンボル定義する際のシンボル名は今までと
     160 *      同じく, TCB_pc とする.
     161 *      求める値は構造体から関数ポインタまでのオフセットであり, 上のmov.l
     162 *      命令の結果から         00000018H(=24) となる.
     163 *      したがって, offset.inc には次のように記述する.
    170164 *
    171165 *      TCB_pc  .equ    24
    172166 *
    173  * (4)  \‘¢‘̂̃ƒ“ƒo‚ªƒrƒbƒgƒtƒB[ƒ‹ƒh‚Å‚»‚̃rƒbƒgˆÊ’u‚à’m‚肽‚¢ê‡
     167 * (4)  構造体のメンバがビットフィールドでそのビット位置も知りたい場合
    174168 *
    175169 *      ! BEGIN TCB_enatex
     
    177171 *      ! END
    178172 *
    179  *      ¡‚Ü‚Å‚Æ“¯—l, BEGIN ‚ÌŒã‚Ì•¶Žš—ñ‚ðƒVƒ“ƒ{ƒ‹–¼‚Æ‚·‚é.
    180  *      ‚±‚±‚Å‚ÌTCB_enatex‚Ì’l‚͍\‘¢‘̂̐擪‚©‚çƒrƒbƒgƒtƒB[ƒ‹ƒh‚ðŠÜ‚Þƒo
    181  *      ƒCƒg‚܂ł̃IƒtƒZƒbƒg‚Å, M32C‚̃rƒbƒg–½—߃AƒhƒŒƒbƒVƒ“ƒO‚ÍŽw’è‚Å‚«
    182  *      ‚éƒrƒbƒgˆÊ’u‚ª0‚©‚ç7‚ÌŠÔ‚ÉŽû‚Ü‚é‚悤‚ɃAƒNƒZƒX‚·‚éƒAƒhƒŒƒX‚É“K“–
    183  *      ”‚ª‰Á‚¦‚ç‚ê‚é‚Ì‚Å cH+1(=13) ‚Æ‚È‚Á‚Ä‚¢‚é. ‚Ü‚½, ƒrƒbƒgƒtƒB[ƒ‹ƒh
    184  *      ’†‚̍ʼnºˆÊƒrƒbƒg‚©‚ç‚̃rƒbƒgˆÊ’u‚Í 6‚Æ‚È‚é.
    185  *      ˆÈã‚æ‚莟‚̂悤‚ɏ‘‚­‚±‚Æ‚ª‚Å‚«‚é.
     173 *      今までと同様, BEGIN の後の文字列をシンボル名とする.
     174 *      ここでのTCB_enatexの値は構造体の先頭からビットフィールドを含むバ
     175 *      イトまでのオフセットで, M32Cのビット命令アドレッシングは指定でき
     176 *      るビット位置が0から7の間に収まるようにアクセスするアドレスに適当
     177 *      数が加えられるので cH+1(=13) となっている. また, ビットフィールド
     178 *      中の最下位ビットからのビット位置は 6となる.
     179 *      以上より次のように書くことができる.
    186180 *
    187181 *              TCB_enatex      .equ    13
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66$  Copyright (C) 2013      by Mitsuhiro Matsuura
    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‰ü
    10 $  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13 $      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15 $      —p‚Å‚«‚éŒ`‚ōĔ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
    21 $      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22 $      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30 $      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31 $      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32 $      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33 $      –Ɛӂ·‚邱‚ƁD
    34 $
    35 $  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36 $  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37 $  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38 $  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39 $  ‚̐ӔC‚𕉂í‚È‚¢D
    40 $
    41 $
    42 
    43 $
    44 $  ƒA[ƒLƒeƒNƒ`ƒƒˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiRX630—pj
    45 $
    46 
    47 
    48 
    49 $
    50 $  ATT_ISR‚ÅŽg—p‚Å‚«‚銄ž‚ݔԍ†‚Æ‚»‚ê‚ɑΉž‚·‚銄ž‚݃nƒ“ƒhƒ‰”ԍ†
     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$      免責すること.
     30$
     31$  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32$  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33$  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34$  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35$  の責任を負わない.
     36$
     37$
     38
     39$
     40$  アーキテクチャ依存テンプレート(RX630用)
     41$
     42
     43
     44
     45$
     46$  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号
    5147$
    5248
     
    5652
    5753$
    58 $  DEF_INT^DEF_EXC‚ÅŽg—p‚Å‚«‚銄ž‚݃nƒ“ƒhƒ‰”ԍ†^CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†
     54$  DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号
    5955$
    6056
     
    6460
    6561$
    66 $  CFG_INT‚ÅŽg—p‚Å‚«‚銄ž‚ݔԍ†‚ÆŠ„ž‚Ý—Dæ“x
     62$  CFG_INTで使用できる割込み番号と割込み優先度
    6763$
    6864
     
    7268
    7369$
    74 ƒ^[ƒQƒbƒg”ñˆË‘¶•”‚ÉŠÜ‚Ü‚ê‚é•W€‚ÌŠ„ž‚ÝŠÇ—‹@”\/—áŠOŠÇ—‹@”\‚̏‰Šú‰»ˆ—‚ðŽg—p‚·‚é
     70ターゲット非依存部に含まれる標準の割込み管理機能/例外管理機能の初期化処理を使用する
    7571$
    7672
     
    8076
    8177$
    82 ƒXƒ^ƒbƒNƒTƒCƒY‚̃`ƒFƒbƒN•û–@Žw’è
     78スタックサイズのチェック方法指定
    8379$
    8480
     
    8783
    8884$
    89 ƒ^ƒXƒNƒXƒ^ƒbƒNƒTƒCƒY‚̍ŏ¬’l
    90 $
    91 ƒ^ƒXƒN‹N“®Žž‚É4byte,
    92 Š„ž‚Ý“üŒûˆ—‚É‚Ä48byte, CPU—áŠO“üŒûˆ—‚É‚Ä84byte,
    93 ‚Å‚ ‚邽‚ß, Å¬’l‚Í88byte‚Æ‚·‚é.
     85タスクスタックサイズの最小値
     86$
     87タスク起動時に4byte,
     88割込み入口処理にて48byte, CPU例外入口処理にて84byte,
     89であるため, 最小値は88byteとする.
    9490$
    9591
     
    9894
    9995$
    100 ’萔’è‹`
     96定数定義
    10197$
    10298
     
    105101
    106102$
    107 $ ƒ^[ƒQƒbƒgˆË‘¶‚ÌŠ„ž‚Ý‘®«‚Ì’è‹`
     103$ ターゲット依存の割込み属性の定義
    108104$
    109105
     
    112108
    113109$
    114 $ ƒ^[ƒQƒbƒgˆË‘¶‚ÌŠ„ž‚݃nƒ“ƒhƒ‰‘®«‚Ì’è‹`
     110$ ターゲット依存の割込みハンドラ属性の定義
    115111$
    116112
     
    119115
    120116$
    121 $ ƒJ[ƒlƒ‹ŠÇ—ŠOŠ„ž‚݃nƒ“ƒhƒ‰‚͌Œ肳‚¹‚È‚¢‚½‚ß,
     117$ カーネル管理外割込みハンドラは固定させないため,
    122118$ INTNO_FIX_KERNEL
    123119$ INHNO_FIX_KERNEL
    124120$ INHNO_FIX_NONKERNEL
    125121$ INHNO_FIX_NONKERNEL
    126 $ ‚ð’è‹`‚µ‚È‚¢.
    127 $
    128 
    129 
    130 $
    131 •W€ƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh
     122$ を定義しない.
     123$
     124
     125
     126$
     127標準テンプレートファイルのインクルード
    132128$
    133129$INCLUDE "kernel.tf"$
     
    136132
    137133$
    138 $  CFG_INT‚̃^[ƒQƒbƒgˆË‘¶‚̃Gƒ‰[ƒ`ƒFƒbƒN
     134$  CFG_INTのターゲット依存のエラーチェック
    139135$
    140136
    141137$FOREACH intno INT.ORDER_LIST$
    142 $ IRQŠ„ž‚ݔԍ†‚©‚Ç‚¤‚©‚ðƒ`ƒFƒbƒN
     138$ IRQ割込み番号かどうかをチェック
    143139        $IF ( LENGTH( FIND( INTNO_INT, INT.INTNO[intno] ) ) != 0 )$
    144140
    145 $   TA_POSEDGE‚ÆTA_NEGEDGE‚ª“¯Žž‚ɐݒ肳‚ê‚Ä‚¢‚éê‡
     141$   TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合
    146142                $IF ((INT.INTATR[intno] & ( TA_POSEDGE | TA_NEGEDGE )) == ( TA_POSEDGE | TA_NEGEDGE ))$
    147143                        $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$
    148144                $END$
    149145
    150 $   TA_POSEDGE‚ÆTA_BOTHEDGE‚ª“¯Žž‚ɐݒ肳‚ê‚Ä‚¢‚éê‡
     146$   TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合
    151147                $IF ((INT.INTATR[intno] & ( TA_POSEDGE | TA_BOTHEDGE )) == ( TA_POSEDGE | TA_BOTHEDGE ))$
    152148                        $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$
    153149                $END$
    154150
    155 $   TA_NEGEDGE‚ÆTA_BOTHEDGE‚ª“¯Žž‚ɐݒ肳‚ê‚Ä‚¢‚éê‡
     151$   TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
    156152                $IF ((INT.INTATR[intno] & ( TA_NEGEDGE | TA_BOTHEDGE )) == ( TA_NEGEDGE | TA_BOTHEDGE ))$
    157153                        $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$
    158154                $END$
    159155
    160 $   TA_POSEDGE‚ÆTA_NEGEDGE‚ÆTA_BOTHEDGE‚ª“¯Žž‚ɐݒ肳‚ê‚Ä‚¢‚éê‡
     156$   TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
    161157                $IF ((INT.INTATR[intno] & ( TA_POSEDGE | TA_NEGEDGE | TA_BOTHEDGE )) == ( TA_POSEDGE | TA_NEGEDGE | TA_BOTHEDGE ))$
    162158                        $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$
     
    165161        $ELSE$
    166162
    167 $   IRQŠ„ž‚݈ȊO‚ÌŠ„ž‚݂ɑ΂µ‚ÄŠ„ž‚Ý‘®«‚ªŽw’肳‚ê‚Ä‚¢‚éê‡
     163$   IRQ割込み以外の割込みに対して割込み属性が指定されている場合
    168164                $IF (INT.INTATR[intno] & (~( TA_ENAINT | TA_EDGE ))) != 0$
    169165                        $ERROR$ INT.TEXT_LINE[intno]: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$
     
    177173
    178174$
    179 $ Š„ž‚ݔԍ†‚©‚犄ž‚Ý—Dæ“x‹y‚Ñ‘®«‚ðŽæ‚èo‚·ƒe[ƒuƒ‹
     175$ 割込み番号から割込み優先度及び属性を取り出すテーブル
    180176$
    181177
     
    185181const CFG_INT_INFO _kernel_cfg_int_table[$LENGTH(INTNO_RANGE)$] = {$NL$
    186182$FOREACH intno INTNO_RANGE$
    187 $ Š„ž‚Ý—Dæ“x‚ðŽæ“¾
     183$ 割込み優先度を取得
    188184        $IF LENGTH(INT.INTNO[intno])$
    189185                $intpri = -INT.INTPRI[intno]$
     
    194190        $END$
    195191
    196 $ ƒe[ƒuƒ‹‚Ì’†g‚ðo—Í
     192$ テーブルの中身を出力
    197193        $TAB$$FORMAT("{ %2d, %08x }, /* %02u */", intpri, intatr, +intno)$$NL$
    198194$END$
     
    201197
    202198$
    203 ƒAƒZƒ“ƒuƒ‰o—̓tƒ@ƒCƒ‹
     199アセンブラ出力ファイル
    204200$
    205201
     
    207203
    208204;$NL$
    209 ;  RX630ƒA[ƒLƒeƒNƒ`ƒƒˆË‘¶o—̓tƒ@ƒCƒ‹$NL$
    210 ;$NL$
    211 Š„ž‚݃xƒNƒ^‹y‚ÑŠ„ž‚݃nƒ“ƒhƒ‰’è‹`$NL$
     205;  RX630アーキテクチャ依存出力ファイル$NL$
     206;$NL$
     207割込みベクタ及び割込みハンドラ定義$NL$
    212208;$NL$
    213209$NL$$NL$
     
    215211
    216212$
    217 Š„ž‚Ý“üŒûˆ—
    218 $
    219 
    220 $
    221 ‹¤’ʊ֐”‚̐錾
     213割込み入口処理
     214$
     215
     216$
     217共通関数の宣言
    222218$
    223219
     
    229225
    230226$
    231 Š„ž‚݃nƒ“ƒhƒ‰‚̏o—Í
     227割込みハンドラの出力
    232228$
    233229
     
    238234                        $TAB$.glb       __kernel_$INH.INTHDR[inhno]$_$+INH.INHNO[inhno]$_entry$NL$
    239235                        __kernel_$INH.INTHDR[inhno]$_$+INH.INHNO[inhno]$_entry:$NL$
    240                         $TAB$pushm      r1-r5                                           ; ƒXƒNƒ‰ƒbƒ`ƒŒƒWƒXƒ^‚ðƒ^ƒXƒNƒXƒ^ƒbƒN‚Ö‘Þ”ð $NL$
    241                         $TAB$mov.l      #$+INH.INHNO[inhno]$, r1        ; Š„ž‚݃nƒ“ƒhƒ‰”ԍ†‚ðr1‚Ö $NL$
    242                         $TAB$mov.l      #_$INH.INTHDR[inhno]$, r2       ; ƒnƒ“ƒhƒ‰‚̃AƒhƒŒƒX‚ðr2‚Ö $NL$
    243                         $TAB$bra.a      _kernel_interrupt                       ; ‹¤’ʃ‹[ƒ`ƒ“‚Ö $NL$$NL$$NL$
    244                 $END$
    245         $END$
    246 $END$
    247 
    248 
    249 $ –¢“o˜^Š„ž‚݃nƒ“ƒhƒ‰“üŒûˆ—
     236                        $TAB$pushm      r1-r5                                           ; スクラッチレジスタをタスクスタックへ退避 $NL$
     237                        $TAB$mov.l      #$+INH.INHNO[inhno]$, r1        ; 割込みハンドラ番号をr1へ $NL$
     238                        $TAB$mov.l      #_$INH.INTHDR[inhno]$, r2       ; ハンドラのアドレスをr2へ $NL$
     239                        $TAB$bra.a      _kernel_interrupt                       ; 共通ルーチンへ $NL$$NL$$NL$
     240                $END$
     241        $END$
     242$END$
     243
     244
     245$ 未登録割込みハンドラ入口処理
    250246$TAB$.glb$TAB$__kernel_default_int_handler_entry$NL$
    251247__kernel_default_int_handler_entry:$NL$
    252 $TAB$pushm      r1-r5                                                           ; ƒXƒNƒ‰ƒbƒ`ƒŒƒWƒXƒ^‚ðƒ^ƒXƒNƒXƒ^ƒbƒN‚Ö‘Þ”ð $NL$
    253 $TAB$mov.l      #0FFFFFFFFH, r1                                         ; Š„ž‚݃nƒ“ƒhƒ‰”ԍ†‚ðr1‚Ö $NL$
    254 $TAB$mov.l      #__kernel_default_int_handler, r2       ; ƒnƒ“ƒhƒ‰‚̃AƒhƒŒƒX‚ðr2‚Ö $NL$
    255 $TAB$bra.a      _kernel_interrupt                                       ; ‹¤’ʃ‹[ƒ`ƒ“‚Ö $NL$$NL$$NL$
    256 
    257 
    258 $
    259 $  CPU—áŠOƒnƒ“ƒhƒ‰“üŒûˆ—
     248$TAB$pushm      r1-r5                                                           ; スクラッチレジスタをタスクスタックへ退避 $NL$
     249$TAB$mov.l      #0FFFFFFFFH, r1                                         ; 割込みハンドラ番号をr1へ $NL$
     250$TAB$mov.l      #__kernel_default_int_handler, r2       ; ハンドラのアドレスをr2へ $NL$
     251$TAB$bra.a      _kernel_interrupt                                       ; 共通ルーチンへ $NL$$NL$$NL$
     252
     253
     254$
     255$  CPU例外ハンドラ入口処理
    260256$
    261257
     
    267263                $TAB$.glb       __kernel_$EXC.EXCHDR[excno]$_$+EXC.EXCNO[excno]$_entry$NL$
    268264                __kernel_$EXC.EXCHDR[excno]$_$+EXC.EXCNO[excno]$_entry:$NL$
    269                 $TAB$pushm      r1-r5                                           ; ƒXƒNƒ‰ƒbƒ`ƒŒƒWƒXƒ^‚ðƒ^ƒXƒNƒXƒ^ƒbƒN‚Ö‘Þ”ð $NL$
    270                 $TAB$mov.l      #$+EXC.EXCNO[excno]$, r1        ; CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚ðr1‚Ö $NL$
    271                 $TAB$mov.l      #_$EXC.EXCHDR[excno]$, r2       ; ƒnƒ“ƒhƒ‰‚̃AƒhƒŒƒX‚ðr2‚Ö $NL$
    272                 $TAB$bra.a      _kernel_exception                       ; ‹¤’ʃ‹[ƒ`ƒ“‚Ö $NL$$NL$$NL$
    273         $END$
    274 $END$
    275 
    276 
    277 $ –¢“o˜^CPU—áŠOƒnƒ“ƒhƒ‰“üŒûˆ—
     265                $TAB$pushm      r1-r5                                           ; スクラッチレジスタをタスクスタックへ退避 $NL$
     266                $TAB$mov.l      #$+EXC.EXCNO[excno]$, r1        ; CPU例外ハンドラ番号をr1へ $NL$
     267                $TAB$mov.l      #_$EXC.EXCHDR[excno]$, r2       ; ハンドラのアドレスをr2へ $NL$
     268                $TAB$bra.a      _kernel_exception                       ; 共通ルーチンへ $NL$$NL$$NL$
     269        $END$
     270$END$
     271
     272
     273$ 未登録CPU例外ハンドラ入口処理
    278274$TAB$.glb$TAB$__kernel_default_exc_handler_entry$NL$
    279275__kernel_default_exc_handler_entry:$NL$
    280 $TAB$pushm      r1-r5                                                           ; ƒXƒNƒ‰ƒbƒ`ƒŒƒWƒXƒ^‚ðƒ^ƒXƒNƒXƒ^ƒbƒN‚Ö‘Þ”ð $NL$
    281 $TAB$mov.l      #0FFFFFFFFH, r1                                         ; CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚ðr1‚Ö $NL$
    282 $TAB$mov.l      #__kernel_default_exc_handler, r2       ; ƒnƒ“ƒhƒ‰‚̃AƒhƒŒƒX‚ðr2‚Ö $NL$
    283 $TAB$bra.a      _kernel_exception                                       ; ‹¤’ʃ‹[ƒ`ƒ“‚Ö $NL$$NL$$NL$
    284 
    285 
    286 $
    287 ‰Â•ÏƒxƒNƒ^ƒe[ƒuƒ‹
    288 $
    289 
    290 ;$NL$
    291 ‰Â•ÏƒxƒNƒ^ƒe[ƒuƒ‹$NL$
     276$TAB$pushm      r1-r5                                                           ; スクラッチレジスタをタスクスタックへ退避 $NL$
     277$TAB$mov.l      #0FFFFFFFFH, r1                                         ; CPU例外ハンドラ番号をr1へ $NL$
     278$TAB$mov.l      #__kernel_default_exc_handler, r2       ; ハンドラのアドレスをr2へ $NL$
     279$TAB$bra.a      _kernel_exception                                       ; 共通ルーチンへ $NL$$NL$$NL$
     280
     281
     282$
     283可変ベクタテーブル
     284$
     285
     286;$NL$
     287可変ベクタテーブル$NL$
    292288;$NL$
    293289$NL$
     
    320316
    321317$
    322 ŒÅ’èƒxƒNƒ^ƒe[ƒuƒ‹
     318固定ベクタテーブル
    323319$
    324320$FOREACH excno EXCNO_RANGE$
     
    332328$NL$
    333329;$NL$
    334 ŒÅ’èƒxƒNƒ^ƒe[ƒuƒ‹$NL$
     330固定ベクタテーブル$NL$
    335331;$NL$
    336332$NL$
     
    341337
    342338$TAB$ .offset$TAB$ 020H$NL$
    343 $TAB$ .lword$TAB$ 00000000 $TAB$ ; §ŒäƒR[ƒh, IDƒR[ƒh1 - 3$NL$
    344 $TAB$ .lword$TAB$ 00000000 $TAB$ ; IDƒR[ƒh4 - 7$NL$
    345 $TAB$ .lword$TAB$ 00000000 $TAB$ ; IDƒR[ƒh8 - 11$NL$
    346 $TAB$ .lword$TAB$ 00000000 $TAB$ ; IDƒR[ƒh12 - 15$NL$$NL$
     339$TAB$ .lword$TAB$ 00000000 $TAB$ ; 制御コード, IDコード1 - 3$NL$
     340$TAB$ .lword$TAB$ 00000000 $TAB$ ; IDコード4 - 7$NL$
     341$TAB$ .lword$TAB$ 00000000 $TAB$ ; IDコード8 - 11$NL$
     342$TAB$ .lword$TAB$ 00000000 $TAB$ ; IDコード12 - 15$NL$$NL$
    347343
    348344$TAB$ .offset$TAB$ 050H$NL$
    349 $TAB$ .lword$TAB$ _$EXCHDR[20]$ $TAB$ $TAB$ ;$SPC$ 20:“ÁŒ –½—ß—áŠO $SPC$$NL$
     345$TAB$ .lword$TAB$ _$EXCHDR[20]$ $TAB$ $TAB$ ;$SPC$ 20:特権命令例外 $SPC$$NL$
    350346$TAB$ .offset$TAB$ 05CH$NL$
    351 $TAB$ .lword$TAB$ _$EXCHDR[23]$ $TAB$ $TAB$ ;$SPC$ 23:–¢’è‹`–½—ß—áŠO $SPC$$NL$
     347$TAB$ .lword$TAB$ _$EXCHDR[23]$ $TAB$ $TAB$ ;$SPC$ 23:未定義命令例外 $SPC$$NL$
    352348$TAB$ .offset$TAB$ 064H$NL$
    353 $TAB$ .lword$TAB$ _$EXCHDR[25]$ $TAB$ $TAB$ ;$SPC$ 25:•‚“®¬”“_—áŠO $SPC$$NL$
     349$TAB$ .lword$TAB$ _$EXCHDR[25]$ $TAB$ $TAB$ ;$SPC$ 25:浮動小数点例外 $SPC$$NL$
    354350$TAB$ .offset$TAB$ 078H$NL$
    355 $TAB$ .lword$TAB$ _$EXCHDR[30]$ $TAB$ $TAB$ ;$SPC$ 30:ƒmƒ“ƒ}ƒXƒJƒuƒ‹—áŠO $SPC$$NL$
    356 $TAB$ .lword$TAB$ _start $TAB$ $TAB$ $TAB$ $TAB$ ;$SPC$ 31:ƒŠƒZƒbƒg $SPC$$NL$
     351$TAB$ .lword$TAB$ _$EXCHDR[30]$ $TAB$ $TAB$ ;$SPC$ 30:ノンマスカブル例外 $SPC$$NL$
     352$TAB$ .lword$TAB$ _start $TAB$ $TAB$ $TAB$ $TAB$ ;$SPC$ 31:リセット $SPC$$NL$
    357353
    358354$NL$ $NL$
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_asm_config.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11$
    2 $     asm_config.inc ¶¬—p
    3 $     ƒpƒX2‚̃A[ƒLƒeƒNƒ`ƒƒˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiRX630—pj
     2$     asm_config.inc 生成用
     3$     パス2のアーキテクチャ依存テンプレート(RX630用)
    44$
    55
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_cfg1_out.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11/*
    2  *              cfg1_out.c‚̃Šƒ“ƒN‚É•K—v‚ȃXƒ^ƒu‚Ì’è‹`
     2 *              cfg1_out.cのリンクに必要なスタブの定義
    33 */
    44
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_check.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55$  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    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‰ü
    9 $  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12 $      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14 $      —p‚Å‚«‚éŒ`‚ōĔ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
    20 $      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21 $      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29 $      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30 $      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31 $      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32 $      –Ɛӂ·‚邱‚ƁD
     7$  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8$  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9$  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10$  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11$      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12$      スコード中に含まれていること.
     13$  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14$      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15$      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16$      の無保証規定を掲載すること.
     17$  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18$      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19$      と.
     20$    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21$        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22$    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23$        報告すること.
     24$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25$      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26$      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27$      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28$      免責すること.
    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
    37 ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38 ‚̐ӔC‚𕉂í‚È‚¢D
     30本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34の責任を負わない.
    3935$
    4036
    4137$
    42 $               ƒpƒX3‚̃vƒƒZƒbƒTˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiRX630—pj
     38$               パス3のプロセッサ依存テンプレート(RX630用)
    4339$
    4440
    4541$
    46 ƒ`ƒFƒbƒN•û–@‚ÌŽw’è
     42チェック方法の指定
    4743$
    4844$CHECK_FUNC_ALIGN = 1$
     
    5450
    5551$
    56 •W€ƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh
     52標準テンプレートファイルのインクルード
    5753$
    5854$INCLUDE "kernel/kernel_check.tf"$
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_config.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    1010 *
    11  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    12  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    13  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    14  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    15  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    16  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    17  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔ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
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    36  *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    38  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚à
    39  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    40  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
    41  *
    42  */
    43 
    44 /*
    45  *              ƒvƒƒZƒbƒTˆË‘¶ƒ‚ƒWƒ
    46 [ƒ‹iRX630—pj
     11 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     12 *  によって公表されている GNU General Public License の Version 2 に記
     13 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     14 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     15 *  利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32 *
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     35 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     36 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     37 *
     38 */
     39
     40/*
     41 *              プロセッサ依存モジュール(RX630用)
    4742 */
    4843
     
    5247
    5348/*
    54  *  Š„ž‚Ý”­¶‰ñ”‚ð•Û‘¶‚·‚é•Ï”
     49 *  割込み発生回数を保存する変数
    5550 */
    5651uint16_t        intnest;
    5752
    5853/*
    59  *  CPUƒƒbƒNƒtƒ‰ƒOŽÀŒ»‚Ì‚½‚߂̕ϐ”
     54 *  CPUロックフラグ実現のための変数
    6055 */
    6156#if TIPM_LOCK != -15
    62 bool_t          lock_flag;              /* CPUƒƒbƒNƒtƒ‰ƒO‚Ì’l‚ð•ÛŽ‚·‚é•Ï” */
    63 uint32_t        saved_ipl;              /* Š„ž‚Ý—Dæ“xƒŒƒxƒ‹‚ð•Û‘¶‚·‚é•Ï” */
     57bool_t          lock_flag;              /* CPUロックフラグの値を保持する変数 */
     58uint32_t        saved_ipl;              /* 割込み優先度レベルを保存する変数 */
    6459#endif  /* TIPM_LOCK != -15     */
    6560
    6661
    6762/*
    68  *  ƒvƒƒZƒbƒTˆË‘¶‚̏‰Šú‰»
     63 *  プロセッサ依存の初期化
    6964 */
    7065void
     
    7267{
    7368        /*
    74          *  Š„ž‚Ý”­¶‰ñ”‚̏‰Šú‰»
    75          *
    76          *  ƒXƒ^[ƒgƒAƒbƒv‚Í‘SŠ„ž‚݃ƒbƒNó‘Ô & ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg
    77          *  ‚É‚Ä“®ì‚·‚邽‚ß, ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚É‹U‘•‚·‚é.
     69         *  割込み発生回数の初期化
     70         *
     71         *  スタートアップは全割込みロック状態 & 非タスクコンテキスト
     72         *  にて動作するため, 非タスクコンテキストに偽装する.
    7873         */
    7974        intnest = 1U;
     
    8176#if TIPM_LOCK != -15
    8277        /*
    83          *  CPUƒƒbƒNƒtƒ‰ƒOŽÀŒ»‚Ì‚½‚߂̕ϐ”‚̏‰Šú‰»
     78         *  CPUロックフラグ実現のための変数の初期化
    8479         */
    8580        lock_flag = true;
     
    9085
    9186/*
    92  *  ƒvƒƒZƒbƒTˆË‘¶‚̏I—¹ˆ—
     87 *  プロセッサ依存の終了処理
    9388 */
    9489void
     
    9691{
    9792        /*
    98          *  “Á‚É•K—v‚ȏˆ—‚Í‚È‚¢
    99          */
    100 }
    101 
    102 
    103 /*
    104  *  CPU—áŠO‚Ì”­¶ó‹µ‚̃ƒOo—Í
     93         *  特に必要な処理はない
     94         */
     95}
     96
     97
     98/*
     99 *  CPU例外の発生状況のログ出力
    105100 *
    106  *  CPU—áŠOƒnƒ“ƒhƒ‰‚Ì’†‚©‚çCCPU—áŠOî•ñƒ|ƒCƒ“ƒ^ip_excinfj‚ðˆø”‚Æ‚µ
    107  *  ‚ČĂяo‚·‚±‚ƂŁCCPU—áŠO‚Ì”­¶ó‹µ‚ðƒVƒXƒeƒ€ƒƒO‚ɏo—Í‚·‚éD
     101 *  CPU例外ハンドラの中から,CPU例外情報ポインタ(p_excinf)を引数とし
     102 *  て呼び出すことで,CPU例外の発生状況をシステムログに出力する.
    108103 */
    109104#ifdef SUPPORT_XLOG_SYS
     
    136131
    137132/*
    138  *  Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚Ì‘®«‚̐ݒè
     133 *  割込み要求ラインの属性の設定
    139134 *
    140  *  ASPƒJ[ƒlƒ‹‚Å‚Ì—˜—p‚ð‘z’肵‚āCƒpƒ‰ƒ[ƒ^ƒGƒ‰[‚̓AƒT[ƒVƒ‡ƒ“‚Ń`ƒFƒb
    141  *  ƒN‚µ‚Ä‚¢‚éDcfg_intƒT[ƒrƒXƒR[ƒ‹‚ðÝ‚¯‚éê‡‚ɂ́CƒGƒ‰[‚ð•Ô‚·‚悤
    142  *  ‚É‚·‚ׂ«‚Å‚ ‚낤D
     135 *  ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ
     136 *  クしている.cfg_intサービスコールを設ける場合には,エラーを返すよう
     137 *  にすべきであろう.
    143138 */
    144139void
     
    161156
    162157        /*
    163          *  Š„ž‚݂̃}ƒXƒN
    164          *
    165          *  Š„ž‚Ý‚ðŽó‚¯•t‚¯‚½‚܂܁CƒŒƒxƒ‹ƒgƒŠƒK^ƒGƒbƒWƒgƒŠƒK‚̐ݒè‚âCŠ„
    166          *  ž‚Ý—Dæ“x‚̐ݒè‚ðs‚¤‚̂͊댯‚È‚½‚߁CŠ„ž‚Ý‘®«‚É‚©‚©‚í‚炸C
    167          *  ˆê’Uƒ}ƒXƒN‚·‚éD
     158         *  割込みのマスク
     159         *
     160         *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
     161         *  込み優先度の設定を行うのは危険なため,割込み属性にかかわらず,
     162         *  一旦マスクする.
    168163         */
    169164        ( void )x_disable_int( intno );
    170165
    171166        /*
    172          *  ƒŒƒxƒ‹ƒgƒŠƒK/ƒGƒbƒWƒgƒŠƒK‚̐ݒè
    173          *
    174          *  IRQ‚̂݃Tƒ|[ƒg‚·‚é
     167         *  レベルトリガ/エッジトリガの設定
     168         *
     169         *  IRQのみサポートする
    175170         */
    176171        if( INTNO_IRQ( intno ) != 0U ){
     
    191186                else{
    192187                        /*
    193                          *  ƒRƒ“ƒtƒBƒMƒ
    194 ƒŒ[ƒ^‚ɂă`ƒFƒbƒN‚µ‚Ä‚¢‚邽‚ß,
    195                          *  ‚±‚±‚Ö‚­‚邱‚Æ‚Í‚ ‚肦‚È‚¢.
     188                         *  コンフィギュレータにてチェックしているため,
     189                         *  ここへくることはありえない.
    196190                         */
    197191                        irq_val = 0U;
     
    202196
    203197        /*
    204          *  Š„ž‚݃Œƒxƒ‹‚̐ݒè
    205          *
    206          *  Š„ž‚ݔԍ†‚ɑΉž‚µ‚½IPR’l‚ðÝ’è‚·‚é.
     198         *  割込みレベルの設定
     199         *
     200         *  割込み番号に対応したIPR値を設定する.
    207201         */
    208202        sil_wrb_mem((uint8_t *)ipr_reg_addr[intno], cfg_int_table[intno].intpri);
    209203
    210204        /*
    211          *  Š„ž‚݂̃}ƒXƒN‰ðœ
     205         *  割込みのマスク解除
    212206         */
    213207        if( ( intatr & TA_ENAINT ) != 0U ){
     
    219213#ifndef OMIT_DEFAULT_INT_HANDLER
    220214/*
    221  *  –¢“o˜^‚ÌŠ„ž‚Ý‚ª”­¶‚µ‚½ê‡‚ɌĂяo‚³‚ê‚é
     215 *  未登録の割込みが発生した場合に呼び出される
    222216 */
    223217void
     
    230224#ifndef OMIT_DEFAULT_EXC_HANDLER
    231225/*
    232  *  –¢“o˜^‚Ì—áŠO‚ª”­¶‚µ‚½ê‡‚ɌĂяo‚³‚ê‚é
     226 *  未登録の例外が発生した場合に呼び出される
    233227 */
    234228void
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_config.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1010 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    1111 *
    12  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    13  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    14  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    15  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    16  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    17  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    18  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    19  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    20  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    21  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—p
    23  *      ŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    25  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    27  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    28  *      ‚ƁD
    29  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    30 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    31 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    32  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    33  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    34  *        •ñ‚·‚邱‚ƁD
    35  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    36  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     12 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     13 *  によって公表されている GNU General Public License の Version 2 に記
     14 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     15 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     16 *  利用と呼ぶ)することを無償で許諾する.
     17 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     18 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     19 *      スコード中に含まれていること.
     20 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     21 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     22 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     23 *      の無保証規定を掲載すること.
     24 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     25 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     26 *      と.
     27 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     28 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     29 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     30 *        報告すること.
     31 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     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‚»‚Ì“K—p‰Â”\«‚à
    40  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    41  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     36 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     37 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4238 *
    4339 */
    4440
    4541/*
    46  *              ƒvƒƒZƒbƒTˆË‘¶ƒ‚ƒWƒ
    47 [ƒ‹iRX630—pj
    48  *
    49  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Ctarget_config.hi‚Ü‚½‚́C‚»‚±‚©‚çƒCƒ“ƒN
    50  *  ƒ‹[ƒh‚³‚ê‚éƒtƒ@ƒCƒ‹j‚Ì‚Ý‚©‚çƒCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD‘¼‚̃tƒ@ƒCƒ‹‚©‚ç
    51  *  ’¼ÚƒCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚Í‚È‚ç‚È‚¢D
     42 *              プロセッサ依存モジュール(RX630用)
     43 *
     44 *  このインクルードファイルは,target_config.h(または,そこからインク
     45 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     46 *  直接インクルードしてはならない.
    5247 */
    5348
     
    5853
    5954/*
    60  *  ƒvƒƒZƒbƒT‚Ì“ÁŽê–½—߂̃Cƒ“ƒ‰ƒCƒ“ŠÖ”’è‹`
     55 *  プロセッサの特殊命令のインライン関数定義
    6156 */
    6257#include "prc_insn.h"
     
    6459
    6560/*
    66  *  ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p‚̃Xƒ^ƒbƒN‰Šú’l
     61 *  非タスクコンテキスト用のスタック初期値
    6762 */
    6863
     
    7166
    7267/*
    73  *  ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒgƒuƒƒbƒN‚Ì’è‹`
     68 *  タスクコンテキストブロックの定義
    7469 */
    7570typedef struct task_context_block {
    76         void    *sp;            /* ƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^ */
    77         FP              pc;                     /* ƒvƒƒOƒ‰ƒ€ƒJƒEƒ“ƒ^ */
     71        void    *sp;            /* スタックポインタ */
     72        FP              pc;                     /* プログラムカウンタ */
    7873} TSKCTXB;
    7974
    8075
    8176/*
    82  *  Š„ž‚Ý”­¶‰ñ”‚ð•Û‘¶‚·‚é•Ï”
     77 *  割込み発生回数を保存する変数
    8378 */
    8479extern uint16_t intnest;
     
    8681
    8782/*
    88  *  CPUƒƒbƒNó‘Ô‚Å‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒN
    89  *
    90  *  TIPM_LOCK‚́CCPUƒƒbƒNó‘Ô‚Å‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒNC‚·‚È‚í‚¿CƒJ[ƒl
    91  *  ƒ‹ŠÇ—ŠO‚Ì‚à‚Ì‚ðœ‚­‚·‚ׂĂ̊„ž‚Ý—v‹‚ðƒ}ƒXƒN‚·‚é’l‚É’è‹`‚·‚éD
    92  *
    93  *  TMIN_INTPRI•ÏX‚·‚邱‚Æ‚ÅŠÇ—ŠOŠ„ž‚Ý‚Ì—L–³‚ðŒˆ’è‚·‚éD
    94  *  —Ⴆ‚ÎTMIN_INTPRI‚ð-14‚ɐݒ肷‚é‚ƁCƒŒƒxƒ‹15‚ÌŠ„ž‚Ý‚ªƒJ[ƒlƒ‹ŠÇ—ŠO‚Æ
    95  *  ‚È‚éDTMIN_INTPRI‚ð-15‚ɐݒ肷‚é‚ƁCNMIˆÈŠO‚ɃJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚Ý‚ð
    96  *  Ý‚¯‚È‚¢‚±‚Æ‚É‚È‚éi‚±‚̏ꍇ‚É‚Í-15‚ɐݒ肷‚邱‚Ƃ𐄏§‚·‚éjD
     83 *  CPUロック状態での割込み優先度マスク
     84 *
     85 *  TIPM_LOCKは,CPUロック状態での割込み優先度マスク,すなわち,カーネ
     86 *  ル管理外のものを除くすべての割込み要求をマスクする値に定義する.
     87 *
     88 *  TMIN_INTPRI変更することで管理外割込みの有無を決定する.
     89 *  例えばTMIN_INTPRIを-14に設定すると,レベル15の割込みがカーネル管理外と
     90 *  なる.TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
     91 *  設けないことになる(この場合には-15に設定することを推奨する).
    9792 */
    9893#ifndef TIPM_LOCK
     
    10297
    10398/*
    104  *  TOPPERS•W€Š„ž‚ݏˆ—ƒ‚ƒfƒ‹‚ÌŽÀŒ»
    105  */
    106 /*
    107  *  ƒRƒ“ƒeƒLƒXƒg‚ÌŽQÆ
    108  *
    109  *  RX‚ł́CŠ„ž‚Ý‚Ì–ß‚èæ‚ªƒ^ƒXƒN‚©‚Ç‚¤‚©‚ð”»’f‚·‚邽‚ß‚É intnest
    110  *  ‚ðŽg—p‚µ‚Ä‚¢‚éD‚±‚ê‚ð—p‚¢‚ăRƒ“ƒeƒLƒXƒg‚ð”»’f‚·‚éD
     99 *  TOPPERS標準割込み処理モデルの実現
     100 */
     101/*
     102 *  コンテキストの参照
     103 *
     104 *  RXでは,割込みの戻り先がタスクかどうかを判断するために intnest
     105 *  を使用している.これを用いてコンテキストを判断する.
    111106 */
    112107Inline bool_t
    113108sense_context( void )
    114109{
    115         /*  ƒlƒXƒgƒJƒEƒ“ƒ^0‚æ‚è‘å‚È‚ç”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg  */
     110        /*  ネストカウンタ0より大なら非タスクコンテキスト  */
    116111        return ( intnest > 0U );
    117112}
     
    119114
    120115/*
    121  *  CPUƒƒbƒNƒtƒ‰ƒOŽÀŒ»‚Ì‚½‚߂̕ϐ”
    122  *
    123  *  ‚±‚ê‚ç‚̕ϐ”‚́CCPUƒƒbƒNó‘Ô‚ÌŽž‚̂ݏ‘‚«Š·‚¦‚Ä‚æ‚¢‚à‚Ì‚Æ‚·‚éD
     116 *  CPUロックフラグ実現のための変数
     117 *
     118 *  これらの変数は,CPUロック状態の時のみ書き換えてよいものとする.
    124119 */
    125120#if TIPM_LOCK != -15
    126 extern bool_t   lock_flag;              /* CPUƒƒbƒNƒtƒ‰ƒO‚Ì’l‚ð•ÛŽ‚·‚é•Ï” */
    127 extern uint32_t saved_ipl;              /* Š„ž‚Ý—Dæ“xƒŒƒxƒ‹‚ð•Û‘¶‚·‚é•Ï” */
     121extern bool_t   lock_flag;              /* CPUロックフラグの値を保持する変数 */
     122extern uint32_t saved_ipl;              /* 割込み優先度レベルを保存する変数 */
    128123#endif  /* TIPM_LOCK != -15     */
    129124
     
    132127
    133128/*
    134  *  Š„ž‚Ý—Dæ“xƒ}ƒXƒN‚ÌŠO•”•\Œ»‚Æ“à•”•\Œ»‚Ì•ÏŠ·
    135  *
    136  *  RX630‚ł́CƒvƒƒZƒbƒTƒXƒe[ƒ^ƒXƒ[ƒhƒŒƒWƒXƒ^iPSWj‚̉º‚©‚ç
    137  *  24`27ƒrƒbƒg–Ú‚Ì4ƒrƒbƒg‚ÉŠ„ž‚Ý—Dæ“xƒŒƒxƒ‹iIPLj‚ª’u‚©‚ê‚Ä‚¢‚éD
    138  *  ƒJ[ƒlƒ‹ŠÇ—ŠOŠ„ž‚Ý‚ðŽÀ‘•‚·‚éê‡‚ÉIPL‚ðŽg—p‚µ‚½§Œä‚ðs‚¤D
    139  *  ƒJ[ƒlƒ‹‚ÍŠ„ž‚Ý—Dæ“xƒ}ƒXƒNi-1‚©‚ç˜A‘±‚µ‚½•‰‚Ì’lj‚ÅŠÇ—‚³‚ê‚Ä
    140  *  ‚¢‚邽‚ßIPL‚Æ‚Ì•ÏŠ·‚ª•K—v‚Æ‚È‚éD
    141  */
    142 #define IPL_TO_IPM( ipl )       (-(( PRI )(( ipl ) >> 24U )))           /* IPL‚ðIPM‚É   */
    143 #define IPM_TO_IPL( ipm )       ((( uint32_t )(-( ipm ))) << 24U )      /* IPM‚ðIPL‚É   */
    144 
    145 
    146 /*
    147  *  CPUƒƒbƒNó‘Ô‚Å‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚ÌIPL
     129 *  割込み優先度マスクの外部表現と内部表現の変換
     130 *
     131 *  RX630では,プロセッサステータスワードレジスタ(PSW)の下から
     132 *  24〜27ビット目の4ビットに割込み優先度レベル(IPL)が置かれている.
     133 *  カーネル管理外割込みを実装する場合にIPLを使用した制御を行う.
     134 *  カーネルは割込み優先度マスク(-1から連続した負の値)で管理されて
     135 *  いるためIPLとの変換が必要となる.
     136 */
     137#define IPL_TO_IPM( ipl )       (-(( PRI )(( ipl ) >> 24U )))           /* IPLをIPMに     */
     138#define IPM_TO_IPL( ipm )       ((( uint32_t )(-( ipm ))) << 24U )      /* IPMをIPLに     */
     139
     140
     141/*
     142 *  CPUロック状態での割込み優先度マスクのIPL
    148143 */
    149144#define IPL_LOCK                ( IPM_TO_IPL( TIPM_LOCK ) )
    150145
    151146/*
    152  *  TIPM_ENAALLiŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœj‚ÌIPL
     147 *  TIPM_ENAALL(割込み優先度マスク全解除)のIPL
    153148 */
    154149#define IPL_ENAALL              ( IPM_TO_IPL( TIPM_ENAALL ) )
     
    158153
    159154/*
    160  *  Š„ž‚Ý—vˆö–ˆ‚̃Œƒxƒ‹ & ‘®«’è‹`ƒe[ƒuƒ‹
    161  *  (ƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚É‚æ‚éo—Í)
     155 *  割込み要因毎のレベル & 属性定義テーブル
     156 *  (テンプレートファイルによる出力)
    162157 */
    163158typedef struct cfg_int_info {
     
    170165
    171166/*
    172  *  Š„ž‚ݔԍ†‚͈̔͂̔»’è
    173  *
    174  *  Š„ž‚ݔԍ†‚ª—LŒø‚È’l‚©Œµ–§‚Ƀ`ƒFƒbƒN‚·‚邽‚ß,
    175  *  ƒRƒ“ƒtƒBƒMƒ
    176 ƒŒ[ƒ^o—̓e[ƒuƒ‹‚ðŽQÆ‚·‚é.
     167 *  割込み番号の範囲の判定
     168 *
     169 *  割込み番号が有効な値か厳密にチェックするため,
     170 *  コンフィギュレータ出力テーブルを参照する.
    177171 */
    178172#define VALID_INTNO( intno )    \
     
    181175#define VALID_INTNO_CFGINT( intno )     VALID_INTNO( intno )
    182176
    183 /* cre_int‚Å—LŒø‚ÈŠ„ž‚ݔԍ†‚ÌŽw’è  */
     177/* cre_intで有効な割込み番号の指定  */
    184178#define VALID_INTNO_CREINT          VALID_INTNO_CFGINT((intno))
    185179
    186 /* cre_isr‚Å—LŒø‚ÈŠ„ž‚ݔԍ†‚ÌŽw’è  */
     180/* cre_isrで有効な割込み番号の指定  */
    187181#define VALID_INTNO_CREISR(intno)       VALID_INTNO_CFGINT((intno))
    188182
    189183
    190184/*
    191  *  Š„ž‚ݐ§ŒäƒŒƒWƒXƒ^ŠÖ˜A‚Ì’è‹`
     185 *  割込み制御レジスタ関連の定義
    192186 */
    193187#define IRQ_POSEDGE                     ( 0x08U )
     
    198192
    199193/*
    200  *  CPUƒƒbƒNó‘Ԃւ̈ڍs
    201  *
    202  *  IPMiƒn[ƒhƒEƒFƒA‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒNj‚ðCsaved_iipm‚É•Û‘¶‚µCƒJ[
    203  *  ƒlƒ‹ŠÇ—ŠO‚Ì‚à‚Ì‚ðœ‚­‚·‚ׂĂ̊„ž‚Ý—v‹‚ðƒ}ƒXƒN‚·‚é’liTIPM_LOCKj
    204  *  ‚ɐݒ肷‚éD‚Ü‚½Clock_flag‚ðTRUE‚É‚·‚éD
    205  *
    206  *  IPM‚ªCÅ‰‚©‚çTIPM_LOCK‚Æ“¯‚¶‚©‚»‚ê‚æ‚荂‚¢ê‡‚ɂ́C‚»‚ê‚ð
    207  *  saved_iipm‚É•Û‘¶‚·‚é‚݂̂ŁCTIPM_LOCK‚ɂ͐ݒ肵‚È‚¢D‚±‚ê‚́Cƒ‚ƒfƒ‹
    208  *  ã‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚ªCTIPM_LOCK‚Æ“¯‚¶‚©‚»‚ê‚æ‚荂‚¢ƒŒƒxƒ‹‚ɐݒè
    209  *  ‚³‚ê‚Ä‚¢‚éó‘Ô‚É‚ ‚½‚éD
    210  *
    211  *  ‚±‚̊֐”‚́CCPUƒƒbƒNó‘ԁilock_flag‚ªTRUE‚̏ó‘ԁj‚ŌĂ΂ê‚邱‚Æ‚Í
    212  *  ‚È‚¢‚à‚Ì‚Æ‘z’肵‚Ä‚¢‚éD
     194 *  CPUロック状態への移行
     195 *
     196 *  IPM(ハードウェアの割込み優先度マスク)を,saved_iipmに保存し,カー
     197 *  ネル管理外のものを除くすべての割込み要求をマスクする値(TIPM_LOCK)
     198 *  に設定する.また,lock_flagをTRUEにする.
     199 *
     200 *  IPMが,最初からTIPM_LOCKと同じかそれより高い場合には,それを
     201 *  saved_iipmに保存するのみで,TIPM_LOCKには設定しない.これは,モデル
     202 *  上の割込み優先度マスクが,TIPM_LOCKと同じかそれより高いレベルに設定
     203 *  されている状態にあたる.
     204 *
     205 *  この関数は,CPUロック状態(lock_flagがTRUEの状態)で呼ばれることは
     206 *  ないものと想定している.
    213207 */
    214208Inline void
     
    221215
    222216        /*
    223          *  current_ipl()‚Ì•Ô‚è’l‚𒼐Úsaved_ipl‚É•Û‘¶‚¹‚¸CˆêŽž•Ï”ipl
    224          *  ‚ð—p‚¢‚Ä‚¢‚é‚̂́Ccurrent_ipl()‚ðŒÄ‚ñ‚¾’¼Œã‚ÉŠ„ž‚Ý‚ª”­¶‚µC
    225          *  ‹N“®‚³‚ꂽŠ„ž‚ݏˆ—‚Åsaved_ipl‚ª•ÏX‚³‚ê‚é‰Â”\«‚ª‚ ‚邽‚ß‚Å
    226          *  ‚ ‚éD
     217         *  current_ipl()の返り値を直接saved_iplに保存せず,一時変数ipl
     218         *  を用いているのは,current_ipl()を呼んだ直後に割込みが発生し,
     219         *  起動された割込み処理でsaved_iplが変更される可能性があるためで
     220         *  ある.
    227221         */
    228222        ipl = current_ipl();
     
    241235
    242236/*
    243  *  CPUƒƒbƒNó‘Ԃ̉ðœ
    244  *
    245  *  lock_flag‚ðFALSE‚É‚µCIPMiƒn[ƒhƒEƒFƒA‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒNj‚ðC
    246  *  saved_iipm‚É•Û‘¶‚µ‚½’l‚É–ß‚·D
    247  *
    248  *  ‚±‚̊֐”‚́CCPUƒƒbƒNó‘ԁilock_flag‚ªtrue‚̏ó‘ԁj‚ł̂݌Ă΂ê‚é‚à
    249  *  ‚Ì‚Æ‘z’肵‚Ä‚¢‚éD
     237 *  CPUロック状態の解除
     238 *
     239 *  lock_flagをFALSEにし,IPM(ハードウェアの割込み優先度マスク)を,
     240 *  saved_iipmに保存した値に戻す.
     241 *
     242 *  この関数は,CPUロック状態(lock_flagがtrueの状態)でのみ呼ばれるも
     243 *  のと想定している.
    250244 */
    251245Inline void
     
    265259
    266260/*
    267  *  CPUƒƒbƒNó‘Ô‚ÌŽQÆ
     261 *  CPUロック状態の参照
    268262 */
    269263Inline bool_t
     
    282276
    283277/*
    284  * iƒ‚ƒfƒ‹ã‚́jŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚̐ݒè
    285  *
    286  *  CPUƒƒbƒNƒtƒ‰ƒO‚ªƒNƒŠƒA‚³‚ê‚Ä‚¢‚鎞‚́Cƒn[ƒhƒEƒFƒA‚ÌŠ„ž‚Ý—Dæ“xƒ}
    287  *  ƒXƒN‚ðÝ’è‚·‚éDCPUƒƒbƒNƒtƒ‰ƒO‚ªƒZƒbƒg‚³‚ê‚Ä‚¢‚鎞‚́Csaved_iipm
    288  *  ‚ðÝ’肵C‚³‚ç‚ɁCƒn[ƒhƒEƒFƒA‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚ðCÝ’肵‚悤‚Æ
    289  *  ‚µ‚½iƒ‚ƒfƒ‹ã‚́jŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚ÆTIPM_LOCK‚̍‚‚¢•û‚ɐݒ肷‚éD
     278 * (モデル上の)割込み優先度マスクの設定
     279 *
     280 *  CPUロックフラグがクリアされている時は,ハードウェアの割込み優先度マ
     281 *  スクを設定する.CPUロックフラグがセットされている時は,saved_iipm
     282 *  を設定し,さらに,ハードウェアの割込み優先度マスクを,設定しようと
     283 *  した(モデル上の)割込み優先度マスクとTIPM_LOCKの高い方に設定する.
    290284 */
    291285Inline void
     
    311305
    312306/*
    313  * iƒ‚ƒfƒ‹ã‚́jŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚ÌŽQÆ
    314  *
    315  *  CPUƒƒbƒNƒtƒ‰ƒO‚ªƒNƒŠƒA‚³‚ê‚Ä‚¢‚鎞‚̓n[ƒhƒEƒFƒA‚ÌŠ„ž‚Ý—Dæ“xƒ}
    316  *  ƒXƒN‚ðCƒZƒbƒg‚³‚ê‚Ä‚¢‚鎞‚Ísaved_iipm‚ðŽQÆ‚·‚éD
     307 * (モデル上の)割込み優先度マスクの参照
     308 *
     309 *  CPUロックフラグがクリアされている時はハードウェアの割込み優先度マ
     310 *  スクを,セットされている時はsaved_iipmを参照する.
    317311 */
    318312Inline PRI
     
    338332
    339333/*
    340  *  Š„ž‚Ý—v‹‹ÖŽ~ƒtƒ‰ƒO‚̃Zƒbƒg
    341  *
    342  *  Š„ž‚Ý‘®«‚ªÝ’肳‚ê‚Ä‚¢‚È‚¢Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚ɑ΂µ‚ÄŠ„ž‚Ý—v‹‹ÖŽ~
    343  *  ƒtƒ‰ƒO‚ðƒZƒbƒg‚µ‚悤‚Æ‚µ‚½ê‡‚ɂ́CFALSE‚ð•Ô‚·D
     334 *  割込み要求禁止フラグのセット
     335 *
     336 *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
     337 *  フラグをセットしようとした場合には,FALSEを返す.
    344338 */
    345339Inline bool_t
     
    347341{
    348342        /*
    349          *  ƒŒƒxƒ‹’è‹`‚ª0‚Å‚ ‚éê‡‚ÍCFG_INT‚³‚ê‚Ä‚¢‚È‚¢
     343         *  レベル定義が0である場合はCFG_INTされていない
    350344         */
    351345        if( cfg_int_table[intno].intpri == 0 ){
     
    363357
    364358/*
    365  *  Š„ž‚Ý—v‹‹ÖŽ~ƒtƒ‰ƒO‚̃NƒŠƒA
    366  *
    367  *  Š„ž‚Ý‘®«‚ªÝ’肳‚ê‚Ä‚¢‚È‚¢Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚ɑ΂µ‚ÄŠ„ž‚Ý—v‹‹ÖŽ~
    368  *  ƒtƒ‰ƒO‚ðƒNƒŠƒA‚µ‚悤‚Æ‚µ‚½ê‡‚ɂ́CFALSE‚ð•Ô‚·D
     359 *  割込み要求禁止フラグのクリア
     360 *
     361 *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
     362 *  フラグをクリアしようとした場合には,FALSEを返す.
    369363 */
    370364Inline bool_t
     
    372366{
    373367        /*
    374          *  ƒŒƒxƒ‹’è‹`‚ª0‚Å‚ ‚éê‡‚ÍCFG_INT‚³‚ê‚Ä‚¢‚È‚¢
     368         *  レベル定義が0である場合はCFG_INTされていない
    375369         */
    376370        if( cfg_int_table[intno].intpri == 0 ){
     
    388382
    389383/*
    390  *  Š„ž‚Ý—v‹‚̃NƒŠƒA
     384 *  割込み要求のクリア
    391385 */
    392386Inline void
     
    401395
    402396/*
    403  *  Š„ž‚Ý—v‹‚̃`ƒFƒbƒN
     397 *  割込み要求のチェック
    404398 */
    405399Inline bool_t
     
    407401{
    408402        /*
    409          *  Š„ž‚Ý—v‹ƒŒƒWƒXƒ^‚Í0 or 1‚Å‚µ‚©‚È‚¢‚½‚ß,
    410          *  ‚»‚Ì‚Ü‚Ü‚Ì’l‚ð•Ô‚·.
     403         *  割込み要求レジスタは0 or 1でしかないため,
     404         *  そのままの値を返す.
    411405         */
    412406        return ( *IR_REG(intno) );
     
    418412
    419413/*
    420  *  Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚Ì‘®«‚̐ݒè
     414 *  割込み要求ラインの属性の設定
    421415 */
    422416extern void     x_config_int( INTNO intno, ATR intatr, PRI intpri );
     
    424418
    425419/*
    426  *  Š„ž‚݃nƒ“ƒhƒ‰‚Ì“üŒû‚Å•K—v‚ÈIRC‘€ì
     420 *  割込みハンドラの入口で必要なIRC操作
    427421 *
    428422 */
     
    433427
    434428        /*
    435          *  ƒŒƒxƒ‹ŒŸo‚ÌŠ„ž‚݂ɑ΂µ‚Ä‚ÍŠ„ž‚݃Xƒe[ƒ^ƒX
    436          *  ƒtƒ‰ƒO‚ðƒNƒŠƒA‚·‚é.
     429         *  レベル検出の割込みに対しては割込みステータス
     430         *  フラグをクリアする.
    437431         */
    438432        if( ( cfg_int_table[intno].intatr & TA_LOWLEVEL ) > 0 ){
    439433                if( *IR_REG(intno) > 0U ){
    440434                        /*
    441                          *  ŠO•”Š„ž‚݂̏ꍇ, IRQ’[Žq‚ªHigh‚É–ß‚Á‚Ä‚¢‚é
    442                          *  ‚±‚Æ‚ðŠm”F‚·‚éŽ|‚ª‹LÚ‚³‚ê‚Ä‚¢‚邪, È—ª‚·‚é.
     435                         *  外部割込みの場合, IRQ端子がHighに戻っている
     436                         *  ことを確認する旨が記載されているが, 省略する.
    443437                         */
    444438                //      *ir_reg_addr[intno] = 0U;
    445439
    446440                        /*
    447                          *  ƒn[ƒhƒEƒFƒAƒ}ƒjƒ
    448 ƒAƒ‹‚É0‚É‚È‚Á‚½‚±‚Æ‚ð
    449                          *  Šm”F‚·‚éŽ|‚ª‹LÚ‚ ‚邽‚ß, ƒŒƒWƒXƒ^’l‚ð“ǂݏo‚·.
     441                         *  ハードウェアマニュアルに0になったことを
     442                         *  確認する旨が記載あるため, レジスタ値を読み出す.
    450443                         */
    451444                //      reg = *ir_reg_addr[intno];
     
    456449
    457450/*
    458  *  Š„ž‚݃nƒ“ƒhƒ‰‚̏oŒû‚Å•K—v‚ÈIRC‘€ì
     451 *  割込みハンドラの出口で必要なIRC操作
    459452 *
    460453 */
     
    462455i_end_int( INTNO intno )
    463456{
    464         /* “Á‚ɍs‚¤‚ׂ«ˆ—‚Í‚È‚¢ */
    465 }
    466 
    467 
    468 /*
    469  *  Å‚—Dæ‡ˆÊƒ^ƒXƒN‚ւ̃fƒBƒXƒpƒbƒ`iprc_support.a30j
    470  *
    471  *  dispatch‚́Cƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚©‚çŒÄ‚яo‚³‚ꂽƒT[ƒrƒXƒR[ƒ‹ˆ—‚©
    472  *  ‚çŒÄ‚яo‚·‚ׂ«‚à‚̂ŁCƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒgECPUƒƒbƒNó‘ԁEƒfƒBƒXƒpƒb
    473  *  ƒ`‹–‰Âó‘ԁEiƒ‚ƒfƒ‹ã‚́jŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘ԂŌĂяo‚³‚È
    474  *  ‚¯‚ê‚΂Ȃç‚È‚¢D
     457        /* 特に行うべき処理はない */
     458}
     459
     460
     461/*
     462 *  最高優先順位タスクへのディスパッチ(prc_support.a30)
     463 *
     464 *  dispatchは,タスクコンテキストから呼び出されたサービスコール処理か
     465 *  ら呼び出すべきもので,タスクコンテキスト・CPUロック状態・ディスパッ
     466 *  チ許可状態・(モデル上の)割込み優先度マスク全解除状態で呼び出さな
     467 *  ければならない.
    475468 */
    476469extern void     dispatch( void );
    477470
    478471/*
    479  *  ƒfƒBƒXƒpƒbƒ`ƒƒ‚Ì“®ìŠJŽniprc_support.a30j
    480  *
    481  *  start_dispatch‚́CƒJ[ƒlƒ‹‹N“®Žž‚ɌĂяo‚·‚ׂ«‚à‚̂ŁC‚·‚ׂĂ̊„ž
    482  *  ‚Ý‚ð‹ÖŽ~‚µ‚½ó‘ԁi‘SŠ„ž‚݃ƒbƒNó‘Ô‚Æ“¯“™‚̏ó‘ԁj‚ŌĂяo‚³‚È‚¯‚ê‚Î
    483  *  ‚È‚ç‚È‚¢D
     472 *  ディスパッチャの動作開始(prc_support.a30)
     473 *
     474 *  start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込
     475 *  みを禁止した状態(全割込みロック状態と同等の状態)で呼び出さなければ
     476 *  ならない.
    484477 */
    485478extern void     start_dispatch( void ) NoReturn;
    486479
    487480/*
    488  *  Œ»Ý‚̃Rƒ“ƒeƒLƒXƒg‚ðŽÌ‚ĂăfƒBƒXƒpƒbƒ`iprc_support.a30j
    489  *
    490  *  exit_and_dispatch‚́Cext_tsk‚©‚çŒÄ‚яo‚·‚ׂ«‚à‚̂ŁCƒ^ƒXƒNƒRƒ“ƒeƒL
    491  *  ƒXƒgECPUƒƒbƒNó‘ԁEƒfƒBƒXƒpƒbƒ`‹–‰Âó‘ԁEiƒ‚ƒfƒ‹ã‚́jŠ„ž‚Ý—Dæ
    492  *  “xƒ}ƒXƒN‘S‰ðœó‘ԂŌĂяo‚³‚È‚¯‚ê‚΂Ȃç‚È‚¢D
     481 *  現在のコンテキストを捨ててディスパッチ(prc_support.a30)
     482 *
     483 *  exit_and_dispatchは,ext_tskから呼び出すべきもので,タスクコンテキ
     484 *  スト・CPUロック状態・ディスパッチ許可状態・(モデル上の)割込み優先
     485 *  度マスク全解除状態で呼び出さなければならない.
    493486 */
    494487#define _kernel_exit_and_dispatch();    \
     
    499492
    500493/*
    501  *  ƒJ[ƒlƒ‹‚̏I—¹ˆ—‚̌ďo‚µiprc_support.a30j
    502  *
    503  *  call_exit_kernel‚́CƒJ[ƒlƒ‹‚̏I—¹Žž‚ɌĂяo‚·‚ׂ«‚à‚̂ŁC”ñƒ^ƒXƒN
    504  *  ƒRƒ“ƒeƒLƒXƒg‚ɐ؂芷‚¦‚āCƒJ[ƒlƒ‹‚̏I—¹ˆ—iexit_kernelj‚ðŒÄ‚яo
    505  *  ‚·D
     494 *  カーネルの終了処理の呼出し(prc_support.a30)
     495 *
     496 *  call_exit_kernelは,カーネルの終了時に呼び出すべきもので,非タスク
     497 *  コンテキストに切り換えて,カーネルの終了処理(exit_kernel)を呼び出
     498 *  す.
    506499 */
    507500extern void call_exit_kernel( void ) NoReturn;
    508501
    509502/*
    510  *  ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚̏‰Šú‰»
    511  *
    512  *  ƒ^ƒXƒN‚ª‹xŽ~ó‘Ô‚©‚çŽÀs‚Å‚«‚éó‘ԂɈڍs‚·‚鎞‚ɌĂ΂ê‚éD‚±‚ÌŽž“_
    513  *  ‚ŃXƒ^ƒbƒN—̈æ‚ðŽg‚Á‚Ä‚Í‚È‚ç‚È‚¢D
    514  *
    515  *  activate_context‚ðCƒCƒ“ƒ‰ƒCƒ“ŠÖ”‚Å‚Í‚È‚­ƒ}ƒNƒ’è‹`‚Æ‚µ‚Ä‚¢‚é‚̂́C
    516  *  ‚±‚ÌŽž“_‚Å‚ÍTCB‚ª’è‹`‚³‚ê‚Ä‚¢‚È‚¢‚½‚ß‚Å‚ ‚éD
     503 *  タスクコンテキストの初期化
     504 *
     505 *  タスクが休止状態から実行できる状態に移行する時に呼ばれる.この時点
     506 *  でスタック領域を使ってはならない.
     507 *
     508 *  activate_contextを,インライン関数ではなくマクロ定義としているのは,
     509 *  この時点ではTCBが定義されていないためである.
    517510 */
    518511extern void     start_r( void );
     
    522515        {                                                                                                                                                                       \
    523516                                                                                                                                                                                \
    524                 /*  ƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^‰Šú’l‚ÌÝ’è  */                                                                                    \
     517                /*  スタックポインタ初期値の設定  */                                                                                  \
    525518                ( p_tcb )->tskctxb.sp = ( void * )((( uint32_t ) ( p_tcb )->p_tinib->stk ) +    \
    526519                                                                ( p_tcb )->p_tinib->stksz );                                                    \
    527                 /* ‹N“®”Ô’n‚̐ݒè */                                                                                                                    \
     520                /* 起動番地の設定 */                                                                                                                   \
    528521                ( p_tcb )->tskctxb.pc = ( FP ) start_r;                                                                                 \
    529522        }                                                                                                                                                                       \
     
    532525
    533526/*
    534  *  calltex‚ÍŽg—p‚µ‚È‚¢
     527 *  calltexは使用しない
    535528 */
    536529#define OMIT_CALLTEX
     
    538531
    539532/*
    540  *  Š„ž‚݃nƒ“ƒhƒ‰‚̐ݒè
    541  *
    542  *  RX630‚ÍROM‚ÉŠ„ž‚݃xƒNƒ^‚ð”z’u‚·‚邽‚߁C–{ŠÖ”‚Í‹óŠÖ”‚ÅŽÀ‘•‚·‚éD
     533 *  割込みハンドラの設定
     534 *
     535 *  RX630はROMに割込みベクタを配置するため,本関数は空関数で実装する.
    543536 */
    544537Inline void
     
    549542
    550543/*
    551  *  CPU—áŠOƒnƒ“ƒhƒ‰‚̐ݒè
    552  *
    553  *  RX630‚ÍROM‚É—áŠOƒxƒNƒ^‚ð”z’u‚·‚邽‚߁C–{ŠÖ”‚Í‹óŠÖ”‚ÅŽÀ‘•‚·‚éD
     544 *  CPU例外ハンドラの設定
     545 *
     546 *  RX630はROMに例外ベクタを配置するため,本関数は空関数で実装する.
    554547 */
    555548Inline void
     
    560553
    561554/*
    562  *  Š„ž‚Ý/—áŠOƒnƒ“ƒhƒ‰‚Ì“üŒûˆ—‚̐¶¬ƒ}ƒNƒ
    563  *
    564  *  ƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚É‚æ‚萶¬‚·‚邽‚ß‹óƒ}ƒNƒ‚Æ‚·‚éD
     555 *  割込み/例外ハンドラの入口処理の生成マクロ
     556 *
     557 *  テンプレートファイルにより生成するため空マクロとする.
    565558 */
    566559#define HDR_ENTRY(hdr, intexc_num , tobejmp)
    567560
    568561/*
    569  *  Š„ž‚݃nƒ“ƒhƒ‰‚Ì“üŒûˆ—‚̐¶¬ƒ}ƒNƒ
     562 *  割込みハンドラの入口処理の生成マクロ
    570563 */
    571564#define _INT_ENTRY(inhno, inthdr)                               _kernel_##inthdr##_##inhno##_entry
     
    578571
    579572/*
    580  *  CPU—áŠOƒnƒ“ƒhƒ‰‚Ì“üŒûˆ—‚̐¶¬ƒ}ƒNƒ
     573 *  CPU例外ハンドラの入口処理の生成マクロ
    581574 */
    582575#define _EXC_ENTRY(excno , exchdr)                                      _kernel_##exchdr##_##excno##_entry
     
    589582
    590583/*
    591  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚̃Rƒ“ƒeƒLƒXƒg‚ÌŽQÆ
    592  *
    593  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚̃Rƒ“ƒeƒLƒXƒg‚ªCƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚ÌŽž‚ÉFALSEC
    594  *  ‚»‚¤‚Å‚È‚¢Žž‚Étrue‚ð•Ô‚·D
     584 *  CPU例外の発生した時のコンテキストの参照
     585 *
     586 *  CPU例外の発生した時のコンテキストが,タスクコンテキストの時にFALSE,
     587 *  そうでない時にtrueを返す.
    595588 */
    596589Inline bool_t
     
    598591{
    599592        /*
    600          *  ƒlƒXƒgƒJƒEƒ“ƒ^‚ª1‚æ‚è‘å‚È‚ç”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg
     593         *  ネストカウンタが1より大なら非タスクコンテキスト
    601594         */
    602595        return( intnest > 1U );
     
    605598
    606599/*
    607  *  CPU—áŠOî•ñ p_excinf ‚©‚ç PSW ‚Ì’l‚ðŽæ“¾‚·‚邽‚߂̃IƒtƒZƒbƒg’l
    608  *  EXCNO + ACC + FPSW + R1`R15 + PC
     600 *  CPU例外情報 p_excinf から PSW の値を取得するためのオフセット値
     601 *  EXCNO + ACC + FPSW + R1R15 + PC
    609602 */
    610603#define EXC_GET_PSW_OFFSET      (4+8+4+60+4)
    611604
    612605/*
    613  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚ÌIPL‚ÌŽQÆ
     606 *  CPU例外の発生した時のIPLの参照
    614607 */
    615608Inline uint32_t
     
    629622
    630623/*
    631  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚̃Rƒ“ƒeƒLƒXƒg‚ÆŠ„ž‚݂̃}ƒXƒNó‘Ô‚ÌŽQÆ
    632  *
    633  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚̃VƒXƒeƒ€ó‘Ô‚ªCƒJ[ƒlƒ‹ŽÀs’†‚Å‚È‚­Cƒ^ƒXƒNƒR
    634  *  ƒ“ƒeƒLƒXƒg‚Å‚ ‚èC‘SŠ„ž‚݃ƒbƒNó‘Ô‚Å‚È‚­CCPUƒƒbƒNó‘Ô‚Å‚È‚­Ciƒ‚
    635  *  ƒfƒ‹ã‚́jŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô‚Å‚ ‚鎞‚ÉtrueC‚»‚¤‚Å‚È‚¢Žž
    636  *  ‚ÉFALSE‚ð•Ô‚·iCPU—áŠO‚ªƒJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚ݏˆ—’†‚Å”­¶‚µ‚½ê‡
    637  *  ‚É‚àFALSE‚ð•Ô‚·jD
     624 *  CPU例外の発生した時のコンテキストと割込みのマスク状態の参照
     625 *
     626 *  CPU例外の発生した時のシステム状態が,カーネル実行中でなく,タスクコ
     627 *  ンテキストであり,全割込みロック状態でなく,CPUロック状態でなく,(モ
     628 *  デル上の)割込み優先度マスク全解除状態である時にtrue,そうでない時
     629 *  にFALSEを返す(CPU例外がカーネル管理外の割込み処理中で発生した場合
     630 *  にもFALSEを返す).
    638631 * 
    639  *  ƒJ[ƒlƒ‹ŽÀs’†‚Å‚È‚¢¨ (TIPM_LOCK== -15) Iƒtƒ‰ƒO == 1
     632 *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
    640633 *                         (else)           IPL < IPL_LOCK
    641  *  ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚Å‚ ‚遨intnest == 0
    642  *  ‘SŠ„ž‚݃ƒbƒN‚Å‚È‚¢¨ Iƒtƒ‰ƒO == 1
    643  *  Š„ž‚Ý—Dæ“xƒ}ƒXƒN‚ª‘S‰ðœ¨IPL == 0
     634 *  タスクコンテキストである→intnest == 0
     635 *  全割込みロックでない→ Iフラグ == 1
     636 *  割込み優先度マスクが全解除→IPL == 0
    644637 * 
    645638 * 
     
    654647
    655648/*
    656  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚̃Rƒ“ƒeƒLƒXƒg‚ÆŠ„ž‚݁^CPUƒƒbƒNó‘Ô‚ÌŽQÆ
    657  *
    658  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚̃VƒXƒeƒ€ó‘Ô‚ªCƒJ[ƒlƒ‹ŽÀs’†‚Å‚È‚­Cƒ^ƒXƒNƒR
    659  *  ƒ“ƒeƒLƒXƒg‚Å‚ ‚èC‘SŠ„ž‚݃ƒbƒNó‘Ô‚Å‚È‚­CCPUƒƒbƒNó‘Ô‚Å‚È‚¢Žž‚É
    660  *  trueC‚»‚¤‚Å‚È‚¢Žž‚Éfalse‚ð•Ô‚·iCPU—áŠO‚ªƒJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚ݏˆ
    661  *  —’†‚Å”­¶‚µ‚½ê‡‚É‚àfalse‚ð•Ô‚·jD
     649 *  CPU例外の発生した時のコンテキストと割込み/CPUロック状態の参照
     650 *
     651 *  CPU例外の発生した時のシステム状態が,カーネル実行中でなく,タスクコ
     652 *  ンテキストであり,全割込みロック状態でなく,CPUロック状態でない時に
     653 *  true,そうでない時にfalseを返す(CPU例外がカーネル管理外の割込み処
     654 *  理中で発生した場合にもfalseを返す).
    662655 * 
    663  *  ƒJ[ƒlƒ‹ŽÀs’†‚Å‚È‚¢¨ (TIPM_LOCK== -15) Iƒtƒ‰ƒO == 1
     656 *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
    664657 *                         (else)           IPL < TIPM_LOCK
    665  *  ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚Å‚ ‚遨intnest < 1
    666  *  ‘SŠ„ž‚݃ƒbƒN‚Å‚È‚¢¨ Iƒtƒ‰ƒO == 1
    667  *  CPUƒƒbƒNó‘Ô‚Å‚È‚¢¨(TIPM_LOCK== -15) Iƒtƒ‰ƒO == 1
     658 *  タスクコンテキストである→intnest < 1
     659 *  全割込みロックでない→ Iフラグ == 1
     660 *  CPUロック状態でない→(TIPM_LOCK== -15) Iフラグ == 1
    668661 *                         (else)           IPL < TIPM_LOCK
    669662 */
     
    689682
    690683/*
    691  *  ƒvƒƒZƒbƒTˆË‘¶‚̏‰Šú‰»
     684 *  プロセッサ依存の初期化
    692685 */
    693686extern void     prc_initialize( void );
    694687
    695688/*
    696  *  ƒvƒƒZƒbƒTˆË‘¶‚̏I—¹Žžˆ—
     689 *  プロセッサ依存の終了時処理
    697690 */
    698691extern void     prc_terminate( void );
     
    701694#ifndef OMIT_DEFAULT_INT_HANDLER
    702695/*
    703  *  –¢“o˜^‚ÌŠ„ž‚Ý‚ª”­¶‚µ‚½ê‡‚ɌĂяo‚³‚ê‚é
     696 *  未登録の割込みが発生した場合に呼び出される
    704697 */
    705698void default_int_handler( void );
     
    708701#ifndef OMIT_DEFAULT_EXC_HANDLER
    709702/*
    710  *  –¢“o˜^‚Ì—áŠO‚ª”­¶‚µ‚½ê‡‚ɌĂяo‚³‚ê‚é
     703 *  未登録の例外が発生した場合に呼び出される
    711704 */
    712705void default_exc_handler( void );
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_insn.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    1010 *
    11  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    12  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    13  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    14  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    15  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    16  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    17  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔ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
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     11 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     12 *  によって公表されている GNU General Public License の Version 2 に記
     13 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     14 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     15 *  利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3632 *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    38  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚à
    39  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    40  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     35 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     36 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4137 *
    4238 */
    4339
    4440/*
    45  *              ƒvƒƒZƒbƒT‚Ì“ÁŽê–½—߂̃Cƒ“ƒ‰ƒCƒ“ŠÖ”’è‹`iRX630—pj
     41 *              プロセッサの特殊命令のインライン関数定義(RX630用)
    4642 */
    4743
     
    6157
    6258/*
    63  *  Iƒtƒ‰ƒO, IPL‚ðŽæ“¾‚·‚邽‚߂̃}ƒNƒ’è‹`
     59 *  Iフラグ, IPLを取得するためのマクロ定義
    6460 */
    6561#define PSW_I_MASK              ( 0x00010000UL )
     
    6864
    6965/*
    70  *  ƒvƒƒZƒbƒTƒXƒe[ƒ^ƒXƒŒƒWƒXƒ^(PSW)‚ÌŒ»Ý’l‚̓Ǐo‚µ
     66 *  プロセッサステータスレジスタ(PSW)の現在値の読出し
    7167 */
    7268#pragma inline_asm      current_psw
     
    7975
    8076/*
    81  *  ƒvƒƒZƒbƒTƒXƒe[ƒ^ƒXƒŒƒWƒXƒ^(PSW)‚֐ݒè
     77 *  プロセッサステータスレジスタ(PSW)へ設定
    8278 */
    8379#pragma inline_asm      set_psw
     
    9086
    9187/*
    92  *  IPL‚ÌŒ»Ý’l‚̓Ǐo‚µ
     88 *  IPLの現在値の読出し
    9389 */
    9490Inline uint32_t
     
    10096
    10197/*
    102  *  IPL‚֐ݒè
     98 *  IPLへ設定
    10399 */
    104100Inline void
     
    110106
    111107/*
    112  *  NMI‚ðœ‚­‚·‚ׂĂ̊„ž‚Ý‚Ì‹ÖŽ~
     108 *  NMIを除くすべての割込みの禁止
    113109 */
    114110#pragma inline_asm      disint
     
    121117
    122118/*
    123  *  NMI‚ðœ‚­‚·‚ׂĂ̊„ž‚Ý‚Ì‹–‰Â
     119 *  NMIを除くすべての割込みの許可
    124120 */
    125121#pragma inline_asm      enaint
     
    132128
    133129/*
    134  *  ƒGƒ“ƒfƒBƒAƒ“•ÏŠ· 16bit
     130 *  エンディアン変換 16bit
    135131 */
    136132#pragma inline_asm      rev_endian_uint16
     
    142138
    143139/*
    144  *  ƒGƒ“ƒfƒBƒAƒ“•ÏŠ· 32bit
     140 *  エンディアン変換 32bit
    145141 */
    146142#pragma inline_asm      rev_endian_uint32
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_kernel.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    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‰ü
    9  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14  *      —p‚Å‚«‚éŒ`‚ōĔ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
    20  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32  *      –Ɛӂ·‚邱‚ƁD
     7 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12 *      スコード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16 *      の無保証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19 *      と.
     20 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23 *        報告すること.
     24 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28 *      免責すること.
    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
    37  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38  *  ‚̐ӔC‚𕉂í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    3935 *
    4036 */
    4137
    4238/*
    43  *              kernel.h‚̃vƒƒZƒbƒTˆË‘¶•”iRX630—pj
     39 *              kernel.hのプロセッサ依存部(RX630用)
    4440 *
    45  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Ctarget_kernel.hi‚Ü‚½‚́C‚»‚±‚©‚çƒCƒ“ƒN
    46  *  ƒ‹[ƒh‚³‚ê‚éƒtƒ@ƒCƒ‹j‚Ì‚Ý‚©‚çƒCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD‘¼‚̃tƒ@ƒCƒ‹‚©‚ç
    47  *  ’¼ÚƒCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚Í‚È‚ç‚È‚¢D
     41 *  このインクルードファイルは,target_kernel.h(または,そこからインク
     42 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     43 *  直接インクルードしてはならない.
    4844 */
    4945
     
    5248
    5349/*
    54  *  ƒJ[ƒlƒ‹–{‘Ì‚ðƒRƒ“ƒpƒCƒ‹‚·‚邽‚߂̃}ƒNƒ’è‹`
     50 *  カーネル本体をコンパイルするためのマクロ定義
    5551 *
    56  *  –{ŠÂ‹«‚Å‚Í1ŠÖ”‚ð1ƒIƒuƒWƒFƒNƒgƒtƒ@ƒCƒ‹‚ɃRƒ“ƒpƒCƒ‹‚·‚邱‚Æ‚ª‚Å‚«‚È‚¢‚½‚߁C
    57  *  ALLFUNCƒ}ƒNƒ‚ð’è‹`‚·‚éD
     52 *  本環境では1関数を1オブジェクトファイルにコンパイルすることができないため,
     53 *  ALLFUNCマクロを定義する.
    5854 */
    5955#define ALLFUNC
     
    6157
    6258/*
    63  *  ƒTƒ|[ƒg‚·‚é‹@”\‚Ì’è‹`
     59 *  サポートする機能の定義
    6460 */
    65 #define TOPPERS_TARGET_SUPPORT_DIS_INT          /* dis_int‚ðƒTƒ|[ƒg‚·‚é */
    66 #define TOPPERS_TARGET_SUPPORT_ENA_INT          /* ena_int‚ðƒTƒ|[ƒg‚·‚é */
     61#define TOPPERS_TARGET_SUPPORT_DIS_INT          /* dis_intをサポートする */
     62#define TOPPERS_TARGET_SUPPORT_ENA_INT          /* ena_intをサポートする */
    6763
    6864
    6965/*
    70  *  ƒJ[ƒlƒ‹ŠÇ—‚ÌŠ„ž‚Ý—Dæ“x‚͈̔Í
     66 *  カーネル管理の割込み優先度の範囲
    7167 *
    72  *  TMIN_INTPRI‚Ì’è‹`‚ð•ÏX‚·‚邱‚ƂŁC‚ǂ̃Œƒxƒ‹‚æ‚è‚à‚‚¢Š„ž‚Ý—Dæ“x
    73  *  ‚ðŽ‚Â‚à‚Ì‚ðƒJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚Ý‚Æ‚·‚é‚©‚ð•ÏX‚Å‚«‚éD
     68 *  TMIN_INTPRIの定義を変更することで,どのレベルよりも高い割込み優先度
     69 *  を持つものをカーネル管理外の割込みとするかを変更できる.
    7470 *
    75  *  TMIN_INTPRI‚ɐݒè‚Å‚«‚é’l‚́C-15`-1‚͈̔͂ł ‚éD—Ⴆ‚ÎTMIN_INTPRI
    76  *  ‚ð-14‚ɐݒ肷‚é‚ƁCNMI‚ɉÁ‚¦‚ăŒƒxƒ‹7‚ÌŠ„ž‚Ý‚ªƒJ[ƒlƒ‹ŠÇ—ŠO‚Æ‚È‚éD
    77  *  TMIN_INTPRI‚ð-15‚ɐݒ肷‚é‚ƁCNMIˆÈŠO‚ɃJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚Ý‚ð
    78  *  Ý‚¯‚È‚¢‚±‚Æ‚É‚È‚éD
     71 *  TMIN_INTPRIに設定できる値は,-15〜-1の範囲である.例えばTMIN_INTPRI
     72 *  を-14に設定すると,NMIに加えてレベル7の割込みがカーネル管理外となる.
     73 *  TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
     74 *  設けないことになる.
    7975 */
    8076#ifndef TMIN_INTPRI
    81 #define TMIN_INTPRI             ( -15 )         /* Š„ž‚Ý—Dæ“x‚̍ŏ¬’liÅ‚’lj*/
     77#define TMIN_INTPRI             ( -15 )         /* 割込み優先度の最小値(最高値)*/
    8278#endif /* TMIN_INTPRI */
    83 #define TMAX_INTPRI             ( -1 )          /* Š„ž‚Ý—Dæ“x‚̍őå’liÅ’á’lj */
     79#define TMAX_INTPRI             ( -1 )          /* 割込み優先度の最大値(最低値) */
    8480
    8581
    8682/*
    87  *  Š„ž‚Ý‘®«‚Ì’è‹`
     83 *  割込み属性の定義
    8884 */
    89 #define TA_POSEDGE              TA_EDGE                 /* ƒ|ƒWƒeƒBƒuƒGƒbƒWƒgƒŠƒK */
    90 #define TA_NEGEDGE              UINT_C( 0x04 )  /* ƒlƒKƒeƒBƒuƒGƒbƒWƒgƒŠƒK */
    91 #define TA_BOTHEDGE             UINT_C( 0x08 )  /* —¼ƒGƒbƒWƒgƒŠƒK */
     85#define TA_POSEDGE              TA_EDGE                 /* ポジティブエッジトリガ */
     86#define TA_NEGEDGE              UINT_C( 0x04 )  /* ネガティブエッジトリガ */
     87#define TA_BOTHEDGE             UINT_C( 0x08 )  /* 両エッジトリガ */
    9288
    93 #define TA_LOWLEVEL             UINT_C( 0x10 )  /* LƒŒƒxƒ‹ */
     89#define TA_LOWLEVEL             UINT_C( 0x10 )  /* Lレベル */
    9490
    9591
    9692/*
    97  *  ƒfƒtƒHƒ‹ƒg‚ÌŠ„ž‚Ý/—áŠOƒnƒ“ƒhƒ‰‚Ì—L–³
     93 *  デフォルトの割込み/例外ハンドラの有無
    9894 */
    9995/*#define       OMIT_DEFAULT_INT_HANDLER*/
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_rename.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_sil.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    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‰ü
    9  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14  *      —p‚Å‚«‚éŒ`‚ōĔ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
    20  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32  *      –Ɛӂ·‚邱‚ƁD
     7 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12 *      スコード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16 *      の無保証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19 *      と.
     20 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23 *        報告すること.
     24 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28 *      免責すること.
    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
    37  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38  *  ‚̐ӔC‚𕉂í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    3935 *
    4036 */
    4137
    4238/*
    43  *              sil.h‚̃vƒƒZƒbƒTˆË‘¶•”iRX630—pj
     39 *              sil.hのプロセッサ依存部(RX630用)
    4440 */
    4541
     
    5349
    5450/*
    55  *  ‘SŠ„ž‚Ý‹ÖŽ~
     51 *  全割込み禁止
    5652 */
    5753Inline uint32_t
     
    6864
    6965/*
    70  *  ‘SŠ„ž‚Ý‹–‰Â
     66 *  全割込み許可
    7167 */
    7268Inline void
     
    8076
    8177/*
    82  *  ‘SŠ„ž‚݃ƒbƒNó‘Ԃ̐§Œä
     78 *  全割込みロック状態の制御
    8379 */
    8480#define SIL_PRE_LOC             uint32_t TOPPERS_i_psw;
     
    8884
    8985/*
    90  *  ƒGƒ“ƒfƒBƒAƒ“‚Ì”½“]
     86 *  エンディアンの反転
    9187 *
    92  *  –{ŠJ”­ŠÂ‹«‚ł̓Gƒ“ƒfƒBƒAƒ“•ÏŠ·–½—ß‚ª‘¶Ý‚·‚邽‚ß,
    93  *  ƒA[ƒLƒeƒNƒ`ƒƒˆË‘¶•”‚ɂă}ƒNƒ‚ðã‘‚«‚·‚é.
     88 *  本開発環境ではエンディアン変換命令が存在するため,
     89 *  アーキテクチャ依存部にてマクロを上書きする.
    9490 */
    9591#define TOPPERS_SIL_REV_ENDIAN_UINT16( data )   \
     
    10096
    10197/*
    102  *  ”÷­ŽžŠÔ‘Ò‚¿
     98 *  微少時間待ち
    10399 */
    104100extern void sil_dly_nse( ulong_t dlytim );
     
    108104
    109105/*
    110  *  ƒvƒƒZƒbƒT‚̃Gƒ“ƒfƒBƒAƒ“
     106 *  プロセッサのエンディアン
    111107 */
    112 #define SIL_ENDIAN_LITTLE                       /* ƒŠƒgƒ‹ƒGƒ“ƒfƒBƒAƒ“ */
     108#define SIL_ENDIAN_LITTLE                       /* リトルエンディアン */
    113109
    114110
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_stddef.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    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‰ü
    9  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14  *      —p‚Å‚«‚éŒ`‚ōĔ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
    20  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32  *      –Ɛӂ·‚邱‚ƁD
     7 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12 *      スコード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16 *      の無保証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19 *      と.
     20 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23 *        報告すること.
     24 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28 *      免責すること.
    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
    37  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38  *  ‚̐ӔC‚𕉂í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    3935 *
    4036 */
    4137
    4238/*
    43  *              t_stddef.h‚̃vƒƒZƒbƒTˆË‘¶•”iRX630—pj
     39 *              t_stddef.hのプロセッサ依存部(RX630用)
    4440 *
    45  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Ctarget_stddef.hi‚Ü‚½‚́C‚»‚±‚©‚çƒCƒ“ƒN
    46  *  ƒ‹[ƒh‚³‚ê‚éƒtƒ@ƒCƒ‹j‚Ì‚Ý‚©‚çƒCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD‘¼‚̃tƒ@ƒCƒ‹‚©‚ç
    47  *  ’¼ÚƒCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚Í‚È‚ç‚È‚¢D
     41 *  このインクルードファイルは,target_stddef.h(または,そこからインク
     42 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     43 *  直接インクルードしてはならない.
    4844 */
    4945
     
    5248
    5349/*
    54  *  ƒ^[ƒQƒbƒg‚ðŽ¯•Ê‚·‚邽‚߂̃}ƒNƒ‚Ì’è‹`
     50 *  ターゲットを識別するためのマクロの定義
    5551 */
    56 #define TOPPERS_RX630                           /* ƒvƒƒZƒbƒT—ªÌ */
     52#define TOPPERS_RX630                           /* プロセッサ略称 */
    5753
    5854#endif /* TOPPERS_PRC_STDDEF_H */
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_syssvc.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    77 *
    8  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    9  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    10  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    11  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    12  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    13  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    14  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    15  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    16  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    17  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    18 ƒƒ“ƒgi—˜—p
    19  *      ŽÒƒ}ƒjƒ
    20 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    21  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    22  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    23  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    24  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    32  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     8 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     9 *  によって公表されている GNU General Public License の Version 2 に記
     10 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     11 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     12 *  利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     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‚»‚Ì“K—p‰Â”\«‚à
    36  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    37  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     32 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     33 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    3834 *
    3935 */
    4036
    4137/*
    42  *              ƒeƒXƒgƒvƒƒOƒ‰ƒ€‚̃^[ƒQƒbƒgˆË‘¶’è‹`iRX630—pj
     38 *              テストプログラムのターゲット依存定義(RX630用)
    4339 */
    4440
     
    4743
    4844/*
    49  *  ‹N“®ƒƒbƒZ[ƒW‚Ƀ^[ƒQƒbƒgˆË‘¶•”‚Ì’˜ìŒ •\Ž¦‚ð
    50  *  ’ljÁ‚·‚邽‚߂̃}ƒNƒD
     45 *  起動メッセージにターゲット依存部の著作権表示を
     46 *  追加するためのマクロ.
    5147 */
    5248#define PRC_COPYRIGHT                                                                           \
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_test.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    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‰ü
    9  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14  *      —p‚Å‚«‚éŒ`‚ōĔ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
    20  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32  *      –Ɛӂ·‚邱‚ƁD
     7 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12 *      スコード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16 *      の無保証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19 *      と.
     20 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23 *        報告すること.
     24 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28 *      免責すること.
    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
    37  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38  *  ‚̐ӔC‚𕉂í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    3935 *
    4036 */
    4137
    4238/*
    43  *              ƒeƒXƒgƒvƒƒOƒ‰ƒ€‚̃^[ƒQƒbƒgˆË‘¶’è‹`iRX630—pj
     39 *              テストプログラムのターゲット依存定義(RX630用)
    4440 */
    4541
     
    4743#define TOPPERS_PRC_TEST_H
    4844
    49 #define CPUEXC1                                 25              /* •‚“®¬”“_—áŠO */
     45#define CPUEXC1                                 25              /* 浮動小数点例外 */
    5046#define RAISE_CPU_EXCEPTION             trigger_cpu_exception()
    5147
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_unrename.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/ssp/arch/rx630_ccrx/rx630.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 */
    4238
    4339/*
    44  *  RX630‚Ɉˑ¶‚·‚é’è‹`
     40 *  RX630に依存する定義
    4541 */
    4642#ifndef TOPPERS_RX630_H
     
    4844
    4945/*
    50  *  CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚Ì’è‹`(ŒÅ’èƒxƒNƒ^ƒe[ƒuƒ‹)
     46 *  CPU例外ハンドラ番号の定義(固定ベクタテーブル)
    5147 *
    52  *  ”ԍ†‚͈̔͂Í0 - 31
    53  */
    54 #define INT_PRIVILEGED_INSTRUNCTION             20              /* “ÁŒ –½—ß—áŠO */
    55 #define INT_UNDEF_INSTRUNCTION                  23              /* –¢’è‹`–½—ß—áŠO */
    56 #define INT_FLOATINGPOINT_INSTRUCTION   25              /* •‚“®¬”“_—áŠO */
    57 #define INT_NMI                                                 30              /* ƒmƒ“ƒ}ƒXƒJƒuƒ‹Š„‚荞‚Ý */
    58 #define INT_RESET                                               31              /* ƒŠƒZƒbƒg */
    59 
    60 /*
    61  *  Š„ž‚ݔԍ†‚Ì’è‹`(‰Â•ÏƒxƒNƒ^ƒe[ƒuƒ‹)
     48 *  番号の範囲は0 - 31
     49 */
     50#define INT_PRIVILEGED_INSTRUNCTION             20              /* 特権命令例外 */
     51#define INT_UNDEF_INSTRUNCTION                  23              /* 未定義命令例外 */
     52#define INT_FLOATINGPOINT_INSTRUCTION   25              /* 浮動小数点例外 */
     53#define INT_NMI                                                 30              /* ノンマスカブル割り込み */
     54#define INT_RESET                                               31              /* リセット */
     55
     56/*
     57 *  割込み番号の定義(可変ベクタテーブル)
    6258 */
    6359#define INT_BUSERR                      16
     
    248244
    249245/*
    250  *  Šeƒ‚ƒWƒ
    251 [ƒ‹‚̃ŒƒWƒXƒ^‹y‚ѐݒèƒrƒbƒgî•ñ
     246 *  各モジュールのレジスタ及び設定ビット情報
    252247 */
    253248
     
    255250
    256251/*
    257  * ƒ‚ƒWƒ
    258 [ƒ‹ƒXƒgƒbƒvƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^AiMSTPCRAj
     252 * モジュールストップコントロールレジスタA(MSTPCRA)
    259253 */
    260254#define SYSTEM_MSTPCRA_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080010 )
     
    294288
    295289/*
    296  * ƒ‚ƒWƒ
    297 [ƒ‹ƒXƒgƒbƒvƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^BiMSTPCRBj
     290 * モジュールストップコントロールレジスタB(MSTPCRB)
    298291 */
    299292#define SYSTEM_MSTPCRB_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080014 )
     
    332325
    333326/*
    334  * ƒ‚ƒWƒ
    335 [ƒ‹ƒXƒgƒbƒvƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^CiMSTPCRCj
     327 * モジュールストップコントロールレジスタC(MSTPCRC)
    336328 */
    337329#define SYSTEM_MSTPCRC_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080018 )
     
    370362
    371363/*
    372  * ƒNƒƒbƒN”­¶‰ñ˜H
     364 * クロック発生回路
    373365 */
    374366#define SYSTEM_SCKCR_ADDR                       ( ( volatile uint32_t __evenaccess * )0x00080020 )
     
    390382
    391383/*
    392  * ƒvƒƒeƒNƒgƒŒƒWƒXƒ^
     384 * プロテクトレジスタ
    393385 */
    394386#define SYSTEM_PRCR_ADDR                ( ( volatile uint16_t __evenaccess * )0x000803FE )
    395387
    396388/*
    397  * Š„‚荞‚Ý—v‹ƒŒƒWƒXƒ^
     389 * 割り込み要求レジスタ
    398390 */
    399391#define ICU_IR000_ADDR                  ( ( volatile uint8_t __evenaccess * )0x00087000 )
     
    656648
    657649/*
    658  * Š„‚荞‚Ý—v‹æÝ’背ƒWƒXƒ^
     650 * 割り込み要求先設定レジスタ
    659651 */
    660652#define ICU_ISELR000_ADDR               ( ( volatile uint8_t __evenaccess * )0x00087100 )
     
    917909
    918910/*
    919  * Š„‚荞‚Ý—v‹‹–‰ÂƒŒƒWƒXƒ^
     911 * 割り込み要求許可レジスタ
    920912 */
    921913#define ICU_IER02_ADDR                  ( ( volatile uint8_t __evenaccess * )0x00087202 )
     
    958950
    959951/*
    960  * Š„‚荞‚Ý—vˆöƒvƒ‰ƒCƒIƒŠƒeƒBƒŒƒWƒXƒ^i(i=0`253)‚̐ݒè
     952 * 割り込み要因プライオリティレジスタi(i=0〜253)の設定
    961953 */
    962954#define ICU_IPR000_ADDR                 ( ( volatile uint8_t __evenaccess * )0x00087300 )
     
    12201212
    12211213/*
    1222  *  IRQƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^
     1214 *  IRQコントロールレジスタ
    12231215 */
    12241216#define ICU_IRQ0_ADDR                   ( ( volatile uint8_t __evenaccess * )0x00087500 )
     
    12421234
    12431235/*
    1244  *  Šeƒ`ƒƒƒ“ƒlƒ‹‚̃ŒƒWƒXƒ^‹y‚ѐݒèƒrƒbƒgî•ñ
     1236 *  各チャンネルのレジスタ及び設定ビット情報
    12451237 */
    12461238#define CMT_CMSTR0_ADDR                 ( ( volatile uint16_t __evenaccess * )0x00088000 )
     
    13511343
    13521344/*
    1353  *  I/Oƒ|[ƒg‚̃ŒƒWƒXƒ^‹y‚ѐݒèƒrƒbƒgî•ñ
     1345 *  I/Oポートのレジスタ及び設定ビット情報
    13541346 */
    13551347#define PORT0_PDR_ADDR                  ( ( volatile uint8_t __evenaccess * )0x0008C000 )
     
    14851477
    14861478/*
    1487  *  ƒ}ƒ‹ƒ`ƒtƒ@ƒ“ƒNƒVƒ‡ƒ“ƒsƒ“ƒRƒ“ƒgƒ[ƒ‰‚̃ŒƒWƒXƒ^î•ñ
     1479 *  マルチファンクションピンコントローラのレジスタ情報
    14881480 */
    14891481#define MPC_PFUSB0_ADDR                 ( ( volatile uint8_t __evenaccess * )0x0008C114 )
     
    16241616
    16251617/*
    1626  * ƒŠƒAƒ‹ƒ^ƒCƒ€ƒNƒƒbƒN
     1618 * リアルタイムクロック
    16271619 */
    16281620#define RTC_R64CNT_ADDR                 ( ( volatile uint8_t __evenaccess * )0x0008C400 )
     
    16361628
    16371629/*
    1638  * 12 ƒrƒbƒgA/D ƒRƒ“ƒo[ƒ^
     1630 * 12 ビットA/D コンバータ
    16391631 */
    16401632#define S12AD_ADCSR_ADDR                ( ( volatile uint8_t __evenaccess * )0x00089000 )
     
    17751767
    17761768/*
    1777  *  UARTŠÖ˜A‚Ì’è‹`
     1769 *  UART関連の定義
    17781770 *
    1779  *  pdic‚Ìrx600/rx630_uart.c‚ÅŽg—p‚·‚éD
    1780  */
    1781 /*
    1782  *  ƒVƒŠƒAƒ‹I/O‚̌”
     1771 *  pdicのrx600/rx630_uart.cで使用する.
     1772 */
     1773/*
     1774 *  シリアルI/Oの個数
    17831775 */
    17841776#define TNUM_SIOP       ( 2 )
  • uKadecot/trunk/ssp/arch/rx630_ccrx/rx630.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11$
    2 $               ƒA[ƒLƒeƒNƒ`ƒƒˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiRX630—pj
     2$               アーキテクチャ依存テンプレート(RX630用)
    33$
    44
     
    1111
    1212$
    13 Š„ž‚ݔԍ†‚ÆŠ„ž‚݃nƒ“ƒhƒ‰”ԍ†‚Ì’è‹`
     13割込み番号と割込みハンドラ番号の定義
    1414$
    15 $  RX630‚Å‚ÍŠ„ž‚ݔԍ†‚ÆŠ„ž‚݃nƒ“ƒhƒ‰”ԍ†‚ª1‘Î1‚őΉž‚·‚éD
     15$  RX630では割込み番号と割込みハンドラ番号が1対1で対応する.
    1616$
    1717
     
    2020
    2121$
    22 —áŠO”ԍ†‚Ì’è‹`
     22例外番号の定義
    2323$
    24 ŒÅ’èƒxƒNƒ^ƒe[ƒuƒ‹‚̃xƒNƒ^ƒe[ƒuƒ‹ƒAƒhƒŒƒX‚̏¬‚³‚¢‡”Ô‚É—áŠO”ԍ†‚ðŠ„U‚éD
    25 $  (—\–ñ—̈æ‚àŠÜ‚Þ)
     24固定ベクタテーブルのベクタテーブルアドレスの小さい順番に例外番号を割振る.
     25$  (予約領域も含む)
    2626$
    2727
     
    2929
    3030$
    31 $  INTŠ„ž‚݂̔ԍ†
     31$  INT割込みの番号
    3232$
    3333
     
    3535
    3636$
    37 Š„ž‚ݔԍ†CŠ„ž‚݃nƒ“ƒhƒ‰”ԍ†C—áŠO”ԍ†‚͈̔Í
     37割込み番号,割込みハンドラ番号,例外番号の範囲
    3838$
    39 $ (—\–ñ—̈æ‚àŠÜ‚Þ)
     39$ (予約領域も含む)
    4040$
    4141
     
    4545
    4646$
    47 ƒvƒƒZƒbƒTˆË‘¶‚̃eƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh
     47プロセッサ依存のテンプレートファイルのインクルード
    4848$
    4949
  • uKadecot/trunk/ssp/arch/rx630_ccrx/rx630_config.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2013 by Mitsuhiro Matsuura
    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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 */
    4238
    4339/*
    44  *              ƒvƒƒZƒbƒTˆË‘¶ƒ‚ƒWƒ
    45 [ƒ‹iRX630—pj
     40 *              プロセッサ依存モジュール(RX630用)
    4641 */
    4742
     
    5045
    5146/*
    52  *  Š„ž‚Ý—vˆöƒvƒ‰ƒCƒIƒŠƒeƒBƒŒƒWƒXƒ^ƒAƒhƒŒƒXƒe[ƒuƒ‹
     47 *  割込み要因プライオリティレジスタアドレステーブル
    5348 */
    5449volatile uint8_t __evenaccess * const ipr_reg_addr[ INHNO_MAX ] = {
    55         NULL,                                                   /* No.0  —\–ñ */
    56         NULL,                                                   /* No.1  —\–ñ */
    57         NULL,                                                   /* No.2  —\–ñ */
    58         NULL,                                                   /* No.3  —\–ñ */
    59         NULL,                                                   /* No.4  —\–ñ */
    60         NULL,                                                   /* No.5  —\–ñ */
    61         NULL,                                                   /* No.6  —\–ñ */
    62         NULL,                                                   /* No.7  —\–ñ */
    63         NULL,                                                   /* No.8  —\–ñ */
    64         NULL,                                                   /* No.9  —\–ñ */
    65         NULL,                                                   /* No.10  —\–ñ */
    66         NULL,                                                   /* No.11  —\–ñ */
    67         NULL,                                                   /* No.12  —\–ñ */
    68         NULL,                                                   /* No.13  —\–ñ */
    69         NULL,                                                   /* No.14  —\–ñ */
    70         NULL,                                                   /* No.15  —\–ñ */
    71         ICU_IPR000_ADDR,                                /* No.16  ƒoƒXƒGƒ‰[ BUSERR */
    72         NULL,                                                   /* No.17  —\–ñ */
    73         NULL,                                                   /* No.18  —\–ñ */
    74         NULL,                                                   /* No.19  —\–ñ */
    75         NULL,                                                   /* No.20  —\–ñ */
     50        NULL,                                                   /* No.0  予約 */
     51        NULL,                                                   /* No.1  予約 */
     52        NULL,                                                   /* No.2  予約 */
     53        NULL,                                                   /* No.3  予約 */
     54        NULL,                                                   /* No.4  予約 */
     55        NULL,                                                   /* No.5  予約 */
     56        NULL,                                                   /* No.6  予約 */
     57        NULL,                                                   /* No.7  予約 */
     58        NULL,                                                   /* No.8  予約 */
     59        NULL,                                                   /* No.9  予約 */
     60        NULL,                                                   /* No.10  予約 */
     61        NULL,                                                   /* No.11  予約 */
     62        NULL,                                                   /* No.12  予約 */
     63        NULL,                                                   /* No.13  予約 */
     64        NULL,                                                   /* No.14  予約 */
     65        NULL,                                                   /* No.15  予約 */
     66        ICU_IPR000_ADDR,                                /* No.16  バスエラー BUSERR */
     67        NULL,                                                   /* No.17  予約 */
     68        NULL,                                                   /* No.18  予約 */
     69        NULL,                                                   /* No.19  予約 */
     70        NULL,                                                   /* No.20  予約 */
    7671        ICU_IPR001_ADDR,                                /* No.21  FCU FIFERR */
    77         NULL,                                                   /* No.22  —\–ñ */
     72        NULL,                                                   /* No.22  予約 */
    7873        ICU_IPR002_ADDR,                                /* No.23  FCU FRDYI */
    79         NULL,                                                   /* No.24  —\–ñ */
    80         NULL,                                                   /* No.25  —\–ñ */
    81         NULL,                                                   /* No.26  —\–ñ */
     74        NULL,                                                   /* No.24  予約 */
     75        NULL,                                                   /* No.25  予約 */
     76        NULL,                                                   /* No.26  予約 */
    8277        ICU_IPR003_ADDR,                                /* No.27  SWINT */
    83         ICU_IPR004_ADDR,                                /* No.28  CMTƒ†ƒjƒbƒg0 CMT0 */
    84         ICU_IPR005_ADDR,                                /* No.29  CMTƒ†ƒjƒbƒg0 CMT1 */
    85         ICU_IPR006_ADDR,                                /* No.30  CMTƒ†ƒjƒbƒg1 CMT2 */
    86         ICU_IPR007_ADDR,                                /* No.31  CMTƒ†ƒjƒbƒg1 CMT3 */
     78        ICU_IPR004_ADDR,                                /* No.28  CMTユニット0 CMT0 */
     79        ICU_IPR005_ADDR,                                /* No.29  CMTユニット0 CMT1 */
     80        ICU_IPR006_ADDR,                                /* No.30  CMTユニット1 CMT2 */
     81        ICU_IPR007_ADDR,                                /* No.31  CMTユニット1 CMT3 */
    8782        ICU_IPR032_ADDR,                                /* No.32  ETHER */
    8883        ICU_IPR033_ADDR,                                /* No.33  USB0 D0FIFO0 */
     
    113108        ICU_IPR056_ADDR,                                /* No.58  CAN RXM2 */
    114109        ICU_IPR056_ADDR,                                /* No.59  CAN TXM2 */
    115         NULL,                                                   /* No.60  —\–ñ */
    116         NULL,                                                   /* No.61  —\–ñ */
     110        NULL,                                                   /* No.60  予約 */
     111        NULL,                                                   /* No.61  予約 */
    117112        ICU_IPR062_ADDR,                                /* No.62  RTC PRD */
    118         NULL,                                                   /* No.63  —\–ñ */
    119         ICU_IPR064_ADDR,                                /* No.64  ŠO•”’[Žq IRQ0 */
    120         ICU_IPR065_ADDR,                                /* No.65  ŠO•”’[Žq IRQ1 */
    121         ICU_IPR066_ADDR,                                /* No.66  ŠO•”’[Žq IRQ2 */
    122         ICU_IPR067_ADDR,                                /* No.67  ŠO•”’[Žq IRQ3 */
    123         ICU_IPR068_ADDR,                                /* No.68  ŠO•”’[Žq IRQ4 */
    124         ICU_IPR069_ADDR,                                /* No.69  ŠO•”’[Žq IRQ5 */
    125         ICU_IPR070_ADDR,                                /* No.70  ŠO•”’[Žq IRQ6 */
    126         ICU_IPR071_ADDR,                                /* No.71  ŠO•”’[Žq IRQ7 */
    127         ICU_IPR072_ADDR,                                /* No.72  ŠO•”’[Žq IRQ8 */
    128         ICU_IPR073_ADDR,                                /* No.73  ŠO•”’[Žq IRQ9 */
    129         ICU_IPR074_ADDR,                                /* No.74  ŠO•”’[Žq IRQ10 */
    130         ICU_IPR075_ADDR,                                /* No.75  ŠO•”’[Žq IRQ11 */
    131         ICU_IPR076_ADDR,                                /* No.76  ŠO•”’[Žq IRQ12 */
    132         ICU_IPR077_ADDR,                                /* No.77  ŠO•”’[Žq IRQ13 */
    133         ICU_IPR078_ADDR,                                /* No.78  ŠO•”’[Žq IRQ14 */
    134         ICU_IPR079_ADDR,                                /* No.79  ŠO•”’[Žq IRQ15 */
    135         NULL,                                                   /* No.80  —\–ñ */
    136         NULL,                                                   /* No.81  —\–ñ */
    137         NULL,                                                   /* No.82  —\–ñ */
    138         NULL,                                                   /* No.83  —\–ñ */
    139         NULL,                                                   /* No.84  —\–ñ */
    140         NULL,                                                   /* No.85  —\–ñ */
    141         NULL,                                                   /* No.86  —\–ñ */
    142         NULL,                                                   /* No.87  —\–ñ */
    143         NULL,                                                   /* No.88  —\–ñ */
    144         NULL,                                                   /* No.89  —\–ñ */
     113        NULL,                                                   /* No.63  予約 */
     114        ICU_IPR064_ADDR,                                /* No.64  外部端子 IRQ0 */
     115        ICU_IPR065_ADDR,                                /* No.65  外部端子 IRQ1 */
     116        ICU_IPR066_ADDR,                                /* No.66  外部端子 IRQ2 */
     117        ICU_IPR067_ADDR,                                /* No.67  外部端子 IRQ3 */
     118        ICU_IPR068_ADDR,                                /* No.68  外部端子 IRQ4 */
     119        ICU_IPR069_ADDR,                                /* No.69  外部端子 IRQ5 */
     120        ICU_IPR070_ADDR,                                /* No.70  外部端子 IRQ6 */
     121        ICU_IPR071_ADDR,                                /* No.71  外部端子 IRQ7 */
     122        ICU_IPR072_ADDR,                                /* No.72  外部端子 IRQ8 */
     123        ICU_IPR073_ADDR,                                /* No.73  外部端子 IRQ9 */
     124        ICU_IPR074_ADDR,                                /* No.74  外部端子 IRQ10 */
     125        ICU_IPR075_ADDR,                                /* No.75  外部端子 IRQ11 */
     126        ICU_IPR076_ADDR,                                /* No.76  外部端子 IRQ12 */
     127        ICU_IPR077_ADDR,                                /* No.77  外部端子 IRQ13 */
     128        ICU_IPR078_ADDR,                                /* No.78  外部端子 IRQ14 */
     129        ICU_IPR079_ADDR,                                /* No.79  外部端子 IRQ15 */
     130        NULL,                                                   /* No.80  予約 */
     131        NULL,                                                   /* No.81  予約 */
     132        NULL,                                                   /* No.82  予約 */
     133        NULL,                                                   /* No.83  予約 */
     134        NULL,                                                   /* No.84  予約 */
     135        NULL,                                                   /* No.85  予約 */
     136        NULL,                                                   /* No.86  予約 */
     137        NULL,                                                   /* No.87  予約 */
     138        NULL,                                                   /* No.88  予約 */
     139        NULL,                                                   /* No.89  予約 */
    145140        ICU_IPR090_ADDR,                                /* No.90  USBR0 */
    146141        ICU_IPR091_ADDR,                                /* No.91  USBR1 */
    147142        ICU_IPR092_ADDR,                                /* No.92  RTC ALM */
    148143        ICU_IPR093_ADDR,                                /* No.93  RTC PRD */
    149         NULL,                                                   /* No.94  —\–ñ */
    150         NULL,                                                   /* No.95  —\–ñ */
    151         NULL,                                                   /* No.96  —\–ñ */
    152         NULL,                                                   /* No.97  —\–ñ */
     144        NULL,                                                   /* No.94  予約 */
     145        NULL,                                                   /* No.95  予約 */
     146        NULL,                                                   /* No.96  予約 */
     147        NULL,                                                   /* No.97  予約 */
    153148        ICU_IPR098_ADDR,                                /* No.98  AD ADI0 */
    154         NULL,                                                   /* No.99  —\–ñ */
    155         NULL,                                                   /* No.100  —\–ñ */
    156         NULL,                                                   /* No.101  —\–ñ */
     149        NULL,                                                   /* No.99  予約 */
     150        NULL,                                                   /* No.100  予約 */
     151        NULL,                                                   /* No.101  予約 */
    157152        ICU_IPR102_ADDR,                                /* No.102 S12AD S12ADIO */
    158         NULL,                                                   /* No.103  —\–ñ */
    159         NULL,                                                   /* No.104  —\–ñ */
    160         NULL,                                                   /* No.105  —\–ñ */
     153        NULL,                                                   /* No.103  予約 */
     154        NULL,                                                   /* No.104  予約 */
     155        NULL,                                                   /* No.105  予約 */
    161156        ICU_IPR106_ADDR,                                /* No.106 ICU GROUP0 */
    162157        ICU_IPR107_ADDR,                                /* No.107 ICU GROUP1 */
     
    166161        ICU_IPR111_ADDR,                                /* No.111 ICU GROUP5 */
    167162        ICU_IPR112_ADDR,                                /* No.112 ICU GROUP6 */
    168         NULL,                                                   /* No.113  —\–ñ */
     163        NULL,                                                   /* No.113  予約 */
    169164        ICU_IPR114_ADDR,                                /* No.114 ICU GROUP12 */
    170         NULL,                                                   /* No.115  —\–ñ */
    171         NULL,                                                   /* No.116  —\–ñ */
    172         NULL,                                                   /* No.117  —\–ñ */
    173         NULL,                                                   /* No.118  —\–ñ */
    174         NULL,                                                   /* No.119  —\–ñ */
    175         NULL,                                                   /* No.120  —\–ñ */
    176         NULL,                                                   /* No.121  —\–ñ */
     165        NULL,                                                   /* No.115  予約 */
     166        NULL,                                                   /* No.116  予約 */
     167        NULL,                                                   /* No.117  予約 */
     168        NULL,                                                   /* No.118  予約 */
     169        NULL,                                                   /* No.119  予約 */
     170        NULL,                                                   /* No.120  予約 */
     171        NULL,                                                   /* No.121  予約 */
    177172        ICU_IPR122_ADDR,                                /* No.122 SCI12 SCIX0 */
    178173        ICU_IPR123_ADDR,                                /* No.123 SCI12 SCIX1 */
     
    221216        ICU_IPR167_ADDR,                                /* No.166 POE OEI1 */
    222217        ICU_IPR167_ADDR,                                /* No.167 POE OEI2 */
    223         NULL,                                                   /* No.168  —\–ñ */
    224         NULL,                                                   /* No.169  —\–ñ */
     218        NULL,                                                   /* No.168  予約 */
     219        NULL,                                                   /* No.169  予約 */
    225220        ICU_IPR170_ADDR,                                /* No.170 TMR0 CMIA0 */
    226221        ICU_IPR170_ADDR,                                /* No.171 TMR0 CMIB0 */
     
    257252        ICU_IPR202_ADDR,                                /* No.202 EXDMAC EXDMACI0 */
    258253        ICU_IPR203_ADDR,                                /* No.203 EXDMAC EXDMACI1 */
    259         NULL,                                                   /* No.204  —\–ñ */
    260         NULL,                                                   /* No.205  —\–ñ */
    261         NULL,                                                   /* No.206  —\–ñ */
    262         NULL,                                                   /* No.207  —\–ñ */
    263         NULL,                                                   /* No.208  —\–ñ */
    264         NULL,                                                   /* No.209  —\–ñ */
    265         NULL,                                                   /* No.210  —\–ñ */
    266         NULL,                                                   /* No.211  —\–ñ */
    267         NULL,                                                   /* No.212  —\–ñ */
    268         NULL,                                                   /* No.213  —\–ñ */
     254        NULL,                                                   /* No.204  予約 */
     255        NULL,                                                   /* No.205  予約 */
     256        NULL,                                                   /* No.206  予約 */
     257        NULL,                                                   /* No.207  予約 */
     258        NULL,                                                   /* No.208  予約 */
     259        NULL,                                                   /* No.209  予約 */
     260        NULL,                                                   /* No.210  予約 */
     261        NULL,                                                   /* No.211  予約 */
     262        NULL,                                                   /* No.212  予約 */
     263        NULL,                                                   /* No.213  予約 */
    269264        ICU_IPR214_ADDR,                                /* No.214 SCI0 RXI0 */
    270265        ICU_IPR214_ADDR,                                /* No.215 SCI0 TXI0 */
     
    307302        ICU_IPR250_ADDR,                                /* No.252 SCI12 TEI12 */
    308303        ICU_IPR253_ADDR,                                /* No.253 IEB IEBINT */
    309         NULL,                                                   /* No.254  —\–ñ */
    310         NULL,                                                   /* No.255  —\–ñ */
     304        NULL,                                                   /* No.254  予約 */
     305        NULL,                                                   /* No.255  予約 */
    311306};
    312307
    313308
    314309/*
    315  *  Š„ž‚Ý—v‹‹–‰ÂƒŒƒWƒXƒ^ƒAƒhƒŒƒXƒe[ƒuƒ‹
     310 *  割込み要求許可レジスタアドレステーブル
    316311 */
    317312const IER_INFO ier_reg_addr[ INHNO_MAX ] = {
    318         { NULL, INVALID_OFFSET },                       /* No.0   —\–ñ */
    319         { NULL, INVALID_OFFSET },                       /* No.1   —\–ñ */
    320         { NULL, INVALID_OFFSET },                       /* No.2   —\–ñ */
    321         { NULL, INVALID_OFFSET },                       /* No.3   —\–ñ */
    322         { NULL, INVALID_OFFSET },                       /* No.4   —\–ñ */
    323         { NULL, INVALID_OFFSET },                       /* No.5   —\–ñ */
    324         { NULL, INVALID_OFFSET },                       /* No.6   —\–ñ */
    325         { NULL, INVALID_OFFSET },                       /* No.7   —\–ñ */
    326         { NULL, INVALID_OFFSET },                       /* No.8   —\–ñ */
    327         { NULL, INVALID_OFFSET },                       /* No.9   —\–ñ */
    328         { NULL, INVALID_OFFSET },                       /* No.10  —\–ñ */
    329         { NULL, INVALID_OFFSET },                       /* No.11  —\–ñ */
    330         { NULL, INVALID_OFFSET },                       /* No.12  —\–ñ */
    331         { NULL, INVALID_OFFSET },                       /* No.13  —\–ñ */
    332         { NULL, INVALID_OFFSET },                       /* No.14  —\–ñ */
    333         { NULL, INVALID_OFFSET },                       /* No.15  —\–ñ */
    334         { ICU_IER02_ADDR, ICU_IEN0_BIT },       /* No.16  ƒoƒXƒGƒ‰[ BUSERR */
    335         { NULL, INVALID_OFFSET },                       /* No.17  —\–ñ */
    336         { NULL, INVALID_OFFSET },                       /* No.18  —\–ñ */
    337         { NULL, INVALID_OFFSET },                       /* No.19  —\–ñ */
    338         { NULL, INVALID_OFFSET },                       /* No.20  —\–ñ */
     313        { NULL, INVALID_OFFSET },                       /* No.0   予約 */
     314        { NULL, INVALID_OFFSET },                       /* No.1   予約 */
     315        { NULL, INVALID_OFFSET },                       /* No.2   予約 */
     316        { NULL, INVALID_OFFSET },                       /* No.3   予約 */
     317        { NULL, INVALID_OFFSET },                       /* No.4   予約 */
     318        { NULL, INVALID_OFFSET },                       /* No.5   予約 */
     319        { NULL, INVALID_OFFSET },                       /* No.6   予約 */
     320        { NULL, INVALID_OFFSET },                       /* No.7   予約 */
     321        { NULL, INVALID_OFFSET },                       /* No.8   予約 */
     322        { NULL, INVALID_OFFSET },                       /* No.9   予約 */
     323        { NULL, INVALID_OFFSET },                       /* No.10  予約 */
     324        { NULL, INVALID_OFFSET },                       /* No.11  予約 */
     325        { NULL, INVALID_OFFSET },                       /* No.12  予約 */
     326        { NULL, INVALID_OFFSET },                       /* No.13  予約 */
     327        { NULL, INVALID_OFFSET },                       /* No.14  予約 */
     328        { NULL, INVALID_OFFSET },                       /* No.15  予約 */
     329        { ICU_IER02_ADDR, ICU_IEN0_BIT },       /* No.16  バスエラー BUSERR */
     330        { NULL, INVALID_OFFSET },                       /* No.17  予約 */
     331        { NULL, INVALID_OFFSET },                       /* No.18  予約 */
     332        { NULL, INVALID_OFFSET },                       /* No.19  予約 */
     333        { NULL, INVALID_OFFSET },                       /* No.20  予約 */
    339334        { ICU_IER02_ADDR, ICU_IEN5_BIT },       /* No.21  FCU FIFERR */
    340         { NULL, INVALID_OFFSET },                       /* No.22  —\–ñ */
     335        { NULL, INVALID_OFFSET },                       /* No.22  予約 */
    341336        { ICU_IER02_ADDR, ICU_IEN7_BIT },       /* No.23  FCU FRDYI */
    342         { NULL, INVALID_OFFSET },                       /* No.24  —\–ñ */
    343         { NULL, INVALID_OFFSET },                       /* No.25  —\–ñ */
    344         { NULL, INVALID_OFFSET },                       /* No.26  —\–ñ */
     337        { NULL, INVALID_OFFSET },                       /* No.24  予約 */
     338        { NULL, INVALID_OFFSET },                       /* No.25  予約 */
     339        { NULL, INVALID_OFFSET },                       /* No.26  予約 */
    345340        { ICU_IER03_ADDR, ICU_IEN3_BIT },       /* No.27  SWINT */
    346         { ICU_IER03_ADDR, ICU_IEN4_BIT },       /* No.28  CMTƒ†ƒjƒbƒg0 CMT0 */
    347         { ICU_IER03_ADDR, ICU_IEN5_BIT },       /* No.29  CMTƒ†ƒjƒbƒg0 CMT1 */
    348         { ICU_IER03_ADDR, ICU_IEN6_BIT },       /* No.30  CMTƒ†ƒjƒbƒg1 CMT2 */
    349         { ICU_IER03_ADDR, ICU_IEN7_BIT },       /* No.31  CMTƒ†ƒjƒbƒg1 CMT3 */
     341        { ICU_IER03_ADDR, ICU_IEN4_BIT },       /* No.28  CMTユニット0 CMT0 */
     342        { ICU_IER03_ADDR, ICU_IEN5_BIT },       /* No.29  CMTユニット0 CMT1 */
     343        { ICU_IER03_ADDR, ICU_IEN6_BIT },       /* No.30  CMTユニット1 CMT2 */
     344        { ICU_IER03_ADDR, ICU_IEN7_BIT },       /* No.31  CMTユニット1 CMT3 */
    350345        { ICU_IER04_ADDR, ICU_IEN0_BIT },       /* No.32  ETHER */
    351346        { ICU_IER04_ADDR, ICU_IEN1_BIT },       /* No.33  USB0 D0FIFO0 */
     
    376371        { ICU_IER07_ADDR, ICU_IEN2_BIT },       /* No.58  CAN2 RXM2 */
    377372        { ICU_IER07_ADDR, ICU_IEN3_BIT },       /* No.59  CAN2 TXM2 */
    378         { NULL, INVALID_OFFSET },                       /* No.60  —\–ñ */
    379         { NULL, INVALID_OFFSET },                       /* No.61  —\–ñ */
     373        { NULL, INVALID_OFFSET },                       /* No.60  予約 */
     374        { NULL, INVALID_OFFSET },                       /* No.61  予約 */
    380375        { ICU_IER07_ADDR, ICU_IEN6_BIT },       /* No.62  RTC PRD */
    381         { NULL, INVALID_OFFSET },                       /* No.63  —\–ñ */
    382         { ICU_IER08_ADDR, ICU_IEN0_BIT },       /* No.64  ŠO•”’[Žq IRQ0 */
    383         { ICU_IER08_ADDR, ICU_IEN1_BIT },       /* No.65  ŠO•”’[Žq IRQ1 */
    384         { ICU_IER08_ADDR, ICU_IEN2_BIT },       /* No.66  ŠO•”’[Žq IRQ2 */
    385         { ICU_IER08_ADDR, ICU_IEN3_BIT },       /* No.67  ŠO•”’[Žq IRQ3 */
    386         { ICU_IER08_ADDR, ICU_IEN4_BIT },       /* No.68  ŠO•”’[Žq IRQ4 */
    387         { ICU_IER08_ADDR, ICU_IEN5_BIT },       /* No.69  ŠO•”’[Žq IRQ5 */
    388         { ICU_IER08_ADDR, ICU_IEN6_BIT },       /* No.70  ŠO•”’[Žq IRQ6 */
    389         { ICU_IER08_ADDR, ICU_IEN7_BIT },       /* No.71  ŠO•”’[Žq IRQ7 */
    390         { ICU_IER09_ADDR, ICU_IEN0_BIT },       /* No.72  ŠO•”’[Žq IRQ8 */
    391         { ICU_IER09_ADDR, ICU_IEN1_BIT },       /* No.73  ŠO•”’[Žq IRQ9 */
    392         { ICU_IER09_ADDR, ICU_IEN2_BIT },       /* No.74  ŠO•”’[Žq IRQ10 */
    393         { ICU_IER09_ADDR, ICU_IEN3_BIT },       /* No.75  ŠO•”’[Žq IRQ11 */
    394         { ICU_IER09_ADDR, ICU_IEN4_BIT },       /* No.76  ŠO•”’[Žq IRQ12 */
    395         { ICU_IER09_ADDR, ICU_IEN5_BIT },       /* No.77  ŠO•”’[Žq IRQ13 */
    396         { ICU_IER09_ADDR, ICU_IEN6_BIT },       /* No.78  ŠO•”’[Žq IRQ14 */
    397         { ICU_IER09_ADDR, ICU_IEN7_BIT },       /* No.79  ŠO•”’[Žq IRQ15 */
    398         { NULL, INVALID_OFFSET },                       /* No.80  —\–ñ */
    399         { NULL, INVALID_OFFSET },                       /* No.81  —\–ñ */
    400         { NULL, INVALID_OFFSET },                       /* No.82  —\–ñ */
    401         { NULL, INVALID_OFFSET },                       /* No.83  —\–ñ */
    402         { NULL, INVALID_OFFSET },                       /* No.84  —\–ñ */
    403         { NULL, INVALID_OFFSET },                       /* No.85  —\–ñ */
    404         { NULL, INVALID_OFFSET },                       /* No.86  —\–ñ */
    405         { NULL, INVALID_OFFSET },                       /* No.87  —\–ñ */
    406         { NULL, INVALID_OFFSET },                       /* No.88  —\–ñ */
    407         { NULL, INVALID_OFFSET },                       /* No.89  —\–ñ */
     376        { NULL, INVALID_OFFSET },                       /* No.63  予約 */
     377        { ICU_IER08_ADDR, ICU_IEN0_BIT },       /* No.64  外部端子 IRQ0 */
     378        { ICU_IER08_ADDR, ICU_IEN1_BIT },       /* No.65  外部端子 IRQ1 */
     379        { ICU_IER08_ADDR, ICU_IEN2_BIT },       /* No.66  外部端子 IRQ2 */
     380        { ICU_IER08_ADDR, ICU_IEN3_BIT },       /* No.67  外部端子 IRQ3 */
     381        { ICU_IER08_ADDR, ICU_IEN4_BIT },       /* No.68  外部端子 IRQ4 */
     382        { ICU_IER08_ADDR, ICU_IEN5_BIT },       /* No.69  外部端子 IRQ5 */
     383        { ICU_IER08_ADDR, ICU_IEN6_BIT },       /* No.70  外部端子 IRQ6 */
     384        { ICU_IER08_ADDR, ICU_IEN7_BIT },       /* No.71  外部端子 IRQ7 */
     385        { ICU_IER09_ADDR, ICU_IEN0_BIT },       /* No.72  外部端子 IRQ8 */
     386        { ICU_IER09_ADDR, ICU_IEN1_BIT },       /* No.73  外部端子 IRQ9 */
     387        { ICU_IER09_ADDR, ICU_IEN2_BIT },       /* No.74  外部端子 IRQ10 */
     388        { ICU_IER09_ADDR, ICU_IEN3_BIT },       /* No.75  外部端子 IRQ11 */
     389        { ICU_IER09_ADDR, ICU_IEN4_BIT },       /* No.76  外部端子 IRQ12 */
     390        { ICU_IER09_ADDR, ICU_IEN5_BIT },       /* No.77  外部端子 IRQ13 */
     391        { ICU_IER09_ADDR, ICU_IEN6_BIT },       /* No.78  外部端子 IRQ14 */
     392        { ICU_IER09_ADDR, ICU_IEN7_BIT },       /* No.79  外部端子 IRQ15 */
     393        { NULL, INVALID_OFFSET },                       /* No.80  予約 */
     394        { NULL, INVALID_OFFSET },                       /* No.81  予約 */
     395        { NULL, INVALID_OFFSET },                       /* No.82  予約 */
     396        { NULL, INVALID_OFFSET },                       /* No.83  予約 */
     397        { NULL, INVALID_OFFSET },                       /* No.84  予約 */
     398        { NULL, INVALID_OFFSET },                       /* No.85  予約 */
     399        { NULL, INVALID_OFFSET },                       /* No.86  予約 */
     400        { NULL, INVALID_OFFSET },                       /* No.87  予約 */
     401        { NULL, INVALID_OFFSET },                       /* No.88  予約 */
     402        { NULL, INVALID_OFFSET },                       /* No.89  予約 */
    408403        { ICU_IER0B_ADDR, ICU_IEN2_BIT },       /* No.90  USBR0 */
    409404        { ICU_IER0B_ADDR, ICU_IEN3_BIT },       /* No.91  USBR1 */
    410405        { ICU_IER0B_ADDR, ICU_IEN4_BIT },       /* No.92  RTC ALM */
    411406        { ICU_IER0B_ADDR, ICU_IEN5_BIT },       /* No.92  RTC PRD */
    412         { NULL, INVALID_OFFSET },                       /* No.94  —\–ñ */
    413         { NULL, INVALID_OFFSET },                       /* No.95  —\–ñ */
    414         { NULL, INVALID_OFFSET },                       /* No.96  —\–ñ */
    415         { NULL, INVALID_OFFSET },                       /* No.97  —\–ñ */
     407        { NULL, INVALID_OFFSET },                       /* No.94  予約 */
     408        { NULL, INVALID_OFFSET },                       /* No.95  予約 */
     409        { NULL, INVALID_OFFSET },                       /* No.96  予約 */
     410        { NULL, INVALID_OFFSET },                       /* No.97  予約 */
    416411        { ICU_IER0C_ADDR, ICU_IEN2_BIT },       /* No.98  AD0 ADI0 */
    417         { NULL, INVALID_OFFSET },                       /* No.99  —\–ñ */
    418         { NULL, INVALID_OFFSET },                       /* No.100 —\–ñ */
    419         { NULL, INVALID_OFFSET },                       /* No.101 —\–ñ */
     412        { NULL, INVALID_OFFSET },                       /* No.99  予約 */
     413        { NULL, INVALID_OFFSET },                       /* No.100 予約 */
     414        { NULL, INVALID_OFFSET },                       /* No.101 予約 */
    420415        { ICU_IER0C_ADDR, ICU_IEN6_BIT },       /* No.102 S12AD S12ADI00 */
    421         { NULL, INVALID_OFFSET },                       /* No.103 —\–ñ */
    422         { NULL, INVALID_OFFSET },                       /* No.104 —\–ñ */
    423         { NULL, INVALID_OFFSET },                       /* No.105 —\–ñ */
     416        { NULL, INVALID_OFFSET },                       /* No.103 予約 */
     417        { NULL, INVALID_OFFSET },                       /* No.104 予約 */
     418        { NULL, INVALID_OFFSET },                       /* No.105 予約 */
    424419        { ICU_IER0D_ADDR, ICU_IEN2_BIT },       /* No.106 ICU GROUP0 */
    425420        { ICU_IER0D_ADDR, ICU_IEN3_BIT },       /* No.107 ICU GROUP1 */
     
    429424        { ICU_IER0D_ADDR, ICU_IEN7_BIT },       /* No.111 ICU GROUP5 */
    430425        { ICU_IER0E_ADDR, ICU_IEN0_BIT },       /* No.112 ICU GROUP6 */
    431         { NULL, INVALID_OFFSET },                       /* No.113 —\–ñ */
     426        { NULL, INVALID_OFFSET },                       /* No.113 予約 */
    432427        { ICU_IER0E_ADDR, ICU_IEN1_BIT },       /* No.114 ICU GROUP12 */
    433         { NULL, INVALID_OFFSET },                       /* No.115 —\–ñ */
    434         { NULL, INVALID_OFFSET },                       /* No.116 —\–ñ */
    435         { NULL, INVALID_OFFSET },                       /* No.117 —\–ñ */
    436         { NULL, INVALID_OFFSET },                       /* No.118 —\–ñ */
    437         { NULL, INVALID_OFFSET },                       /* No.119 —\–ñ */
    438         { NULL, INVALID_OFFSET },                       /* No.120 —\–ñ */
    439         { NULL, INVALID_OFFSET },                       /* No.121 —\–ñ */
     428        { NULL, INVALID_OFFSET },                       /* No.115 予約 */
     429        { NULL, INVALID_OFFSET },                       /* No.116 予約 */
     430        { NULL, INVALID_OFFSET },                       /* No.117 予約 */
     431        { NULL, INVALID_OFFSET },                       /* No.118 予約 */
     432        { NULL, INVALID_OFFSET },                       /* No.119 予約 */
     433        { NULL, INVALID_OFFSET },                       /* No.120 予約 */
     434        { NULL, INVALID_OFFSET },                       /* No.121 予約 */
    440435        { ICU_IER0F_ADDR, ICU_IEN2_BIT },       /* No.122 SCI12 SCIX0 */
    441436        { ICU_IER0F_ADDR, ICU_IEN3_BIT },       /* No.123 SCI12 SCIX1 */
     
    484479        { ICU_IER14_ADDR, ICU_IEN6_BIT },       /* No.166 POE OEI1 */
    485480        { ICU_IER14_ADDR, ICU_IEN7_BIT },       /* No.167 POE OEI2 */
    486         { NULL, INVALID_OFFSET },                       /* No.168 —\–ñ */
    487         { NULL, INVALID_OFFSET },                       /* No.169 —\–ñ */
     481        { NULL, INVALID_OFFSET },                       /* No.168 予約 */
     482        { NULL, INVALID_OFFSET },                       /* No.169 予約 */
    488483        { ICU_IER15_ADDR, ICU_IEN2_BIT },       /* No.170 TMR0 CMIA0 */
    489484        { ICU_IER15_ADDR, ICU_IEN3_BIT },       /* No.171 TMR0 CMIB0 */
     
    520515        { ICU_IER19_ADDR, ICU_IEN2_BIT },       /* No.202 EXDMAC EXDMAC0I */
    521516        { ICU_IER19_ADDR, ICU_IEN3_BIT },       /* No.203 EXDMAC EXDMAC1I */
    522         { NULL, INVALID_OFFSET },                       /* No.204 —\–ñ */
    523         { NULL, INVALID_OFFSET },                       /* No.205 —\–ñ */
    524         { NULL, INVALID_OFFSET },                       /* No.206 —\–ñ */
    525         { NULL, INVALID_OFFSET },                       /* No.207 —\–ñ */
    526         { NULL, INVALID_OFFSET },                       /* No.208 —\–ñ */
    527         { NULL, INVALID_OFFSET },                       /* No.209 —\–ñ */
    528         { NULL, INVALID_OFFSET },                       /* No.210 —\–ñ */
    529         { NULL, INVALID_OFFSET },                       /* No.211 —\–ñ */
    530         { NULL, INVALID_OFFSET },                       /* No.212 —\–ñ */
    531         { NULL, INVALID_OFFSET },                       /* No.213 —\–ñ */
     517        { NULL, INVALID_OFFSET },                       /* No.204 予約 */
     518        { NULL, INVALID_OFFSET },                       /* No.205 予約 */
     519        { NULL, INVALID_OFFSET },                       /* No.206 予約 */
     520        { NULL, INVALID_OFFSET },                       /* No.207 予約 */
     521        { NULL, INVALID_OFFSET },                       /* No.208 予約 */
     522        { NULL, INVALID_OFFSET },                       /* No.209 予約 */
     523        { NULL, INVALID_OFFSET },                       /* No.210 予約 */
     524        { NULL, INVALID_OFFSET },                       /* No.211 予約 */
     525        { NULL, INVALID_OFFSET },                       /* No.212 予約 */
     526        { NULL, INVALID_OFFSET },                       /* No.213 予約 */
    532527        { ICU_IER1A_ADDR, ICU_IEN6_BIT },       /* No.214 SCI0 RXI0 */
    533528        { ICU_IER1A_ADDR, ICU_IEN7_BIT },       /* No.215 SCI0 TXI0 */
     
    570565        { ICU_IER1F_ADDR, ICU_IEN4_BIT },       /* No.252 SCI12 TEI12 */
    571566        { ICU_IER1F_ADDR, ICU_IEN5_BIT },       /* No.253 IEB IEBINT */
    572         { NULL, INVALID_OFFSET },                       /* No.254 —\–ñ */
    573         { NULL, INVALID_OFFSET },                       /* No.255 —\–ñ */
     567        { NULL, INVALID_OFFSET },                       /* No.254 予約 */
     568        { NULL, INVALID_OFFSET },                       /* No.255 予約 */
    574569};
    575570
    576571
    577572/*
    578  *  IRQƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^ƒAƒhƒŒƒXƒe[ƒuƒ‹
     573 *  IRQコントロールレジスタアドレステーブル
    579574 */
    580575volatile uint8_t __evenaccess * const irqcr_reg_addr[ IRQ_MAX ] = {
  • uKadecot/trunk/ssp/arch/rx630_ccrx/rx630_config.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 */
    4238
    4339/*
    44  *              ƒvƒƒZƒbƒTˆË‘¶ƒ‚ƒWƒ
    45 [ƒ‹iRX630—pj
     40 *              プロセッサ依存モジュール(RX630用)
    4641 *
    47  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Ctarget_config.hi‚Ü‚½‚́C‚»‚±‚©‚çƒCƒ“ƒN
    48  *  ƒ‹[ƒh‚³‚ê‚éƒtƒ@ƒCƒ‹j‚Ì‚Ý‚©‚çƒCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD‘¼‚̃tƒ@ƒCƒ‹‚©‚ç
    49  *  ’¼ÚƒCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚Í‚È‚ç‚È‚¢D
     42 *  このインクルードファイルは,target_config.h(または,そこからインク
     43 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     44 *  直接インクルードしてはならない.
    5045 */
    5146
     
    5651
    5752/*
    58  *  Š„ž‚Ý—vˆö”
     53 *  割込み要因数
    5954 */
    6055#define INHNO_MAX       UINT_C( 256 )
     
    6257
    6358/*
    64  *  Š„ž‚ݐ§Œä—pŒ^’è‹`
     59 *  割込み制御用型定義
    6560 */
    6661typedef struct ier_info {
     
    7166
    7267/*
    73  *  Š„ž‚ݐ§Œä—p’è‹`
     68 *  割込み制御用定義
    7469 */
    7570#define INVALID_OFFSET                          ( 0xFFU )
     
    8277
    8378/*
    84  *  Š„ž‚ݐ§Œä—pƒe[ƒuƒ‹
     79 *  割込み制御用テーブル
    8580 */
    8681
    87 /* Š„ž‚Ý—vˆöƒvƒ‰ƒCƒIƒŠƒeƒBƒŒƒWƒXƒ^ƒAƒhƒŒƒX */
     82/* 割込み要因プライオリティレジスタアドレス */
    8883extern volatile uint8_t __evenaccess * const ipr_reg_addr[];
    89 /* Š„ž‚Ý—v‹‹–‰ÂƒŒƒWƒXƒ^ƒAƒhƒŒƒX */
     84/* 割込み要求許可レジスタアドレス */
    9085extern const IER_INFO ier_reg_addr[];
    91 /* Š„ž‚Ý—v‹ƒŒƒWƒXƒ^ƒAƒhƒŒƒX */
     86/* 割込み要求レジスタアドレス */
    9287extern volatile uint8_t __evenaccess * const ir_reg_addr[];
    93 /* IRQƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^ƒAƒhƒŒƒX */
     88/* IRQコントロールレジスタアドレス */
    9489extern volatile uint8_t __evenaccess * const irqcr_reg_addr[];
    9590
    9691
    9792/*
    98  *  ƒvƒƒZƒbƒTˆË‘¶ƒ‚ƒWƒ
    99 [ƒ‹iRX630—pj
     93 *  プロセッサ依存モジュール(RX630用)
    10094 */
    10195#include "rx630_ccrx/prc_config.h"
  • 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
  • uKadecot/trunk/ssp/include/itron.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    11  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    12  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    13  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    14  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    15  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    16  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    17  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    18 ƒƒ“ƒgi—˜—p
    19  *      ŽÒƒ}ƒjƒ
    20 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    21  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    22  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    23  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    24  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    32  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    33  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    34  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    35  *      –Ɛӂ·‚邱‚ƁD
     10 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    3632 *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    38  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    39  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    40  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    41  *  ‚̐ӔC‚𕉂í‚È‚¢D
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    4238 *
    4339 *  @(#) $Id$
     
    4541
    4642/*
    47  *              ITRONŽd—l‹¤’Ê‹K’è‚̃f[ƒ^Œ^E’萔Eƒ}ƒNƒ
     43 *              ITRON仕様共通規定のデータ型・定数・マクロ
    4844 *
    49  *  ‚±‚̃wƒbƒ_ƒtƒ@ƒCƒ‹‚́CITRONŽd—l‹¤’Ê‹K’è‚̃f[ƒ^Œ^E’萔Eƒ}ƒNƒ‚Ì’†
    50  *  ‚ŁCTOPPERS‹¤’ʃwƒbƒ_ƒtƒ@ƒCƒ‹‚ÉŠÜ‚Ü‚ê‚È‚¢‚à‚Ì‚Ì’è‹`‚ðŠÜ‚ށDITRONŽd
    51  *  —l‚Ƃ̌݊·«‚ð•K—v‚Æ‚·‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ªƒCƒ“ƒNƒ‹[ƒh‚·‚邱‚Æ‚ð‘z
    52  *  ’肵‚Ä‚¢‚éD
     45 *  このヘッダファイルは,ITRON仕様共通規定のデータ型・定数・マクロの中
     46 *  で,TOPPERS共通ヘッダファイルに含まれないものの定義を含む.ITRON仕
     47 *  様との互換性を必要とするアプリケーションがインクルードすることを想
     48 *  定している.
    5349 *
    54  *  ƒAƒZƒ“ƒuƒŠŒ¾Œê‚̃\[ƒXƒtƒ@ƒCƒ‹‚©‚炱‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚鎞
    55  *  ‚́CTOPPERS_MACRO_ONLY‚ð’è‹`‚µ‚Ä‚¨‚­D‚±‚ê‚É‚æ‚èCƒ}ƒNƒ’è‹`ˆÈŠO‚ð
    56  *  œ‚­‚悤‚É‚È‚Á‚Ä‚¢‚éD
     50 *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
     51 *  は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を
     52 *  除くようになっている.
    5753 */
    5854
     
    6561
    6662/*
    67  *  TOPPERS‹¤’ʃwƒbƒ_ƒtƒ@ƒCƒ‹
     63 *  TOPPERS共通ヘッダファイル
    6864 */
    6965#include "t_stddef.h"
    7066
    7167/*
    72  *  ITRONŽd—l‹¤’ʃf[ƒ^Œ^
     68 *  ITRON仕様共通データ型
    7369 */
    7470#ifndef TOPPERS_MACRO_ONLY
    7571
    7672#ifdef INT8_MAX
    77 typedef int8_t                  B;                      /* •„†•t‚«8ƒrƒbƒg®” */
     73typedef int8_t                  B;                      /* 符号付き8ビット整数 */
    7874#endif /* INT8_MAX */
    7975
    8076#ifdef UINT8_MAX
    81 typedef uint8_t                 UB;                     /* •„†–³‚µ8ƒrƒbƒg®” */
    82 typedef uint8_t                 VB;                     /* Œ^‚ª’è‚Ü‚ç‚È‚¢8ƒrƒbƒg‚Ì’l */
     77typedef uint8_t                 UB;                     /* 符号無し8ビット整数 */
     78typedef uint8_t                 VB;                     /* 型が定まらない8ビットの値 */
    8379#endif /* UINT8_MAX */
    8480
    85 typedef int16_t                 H;                      /* •„†•t‚«16ƒrƒbƒg®” */
    86 typedef uint16_t                UH;                     /* •„†–³‚µ16ƒrƒbƒg®” */
    87 typedef uint16_t                VH;                     /* Œ^‚ª’è‚Ü‚ç‚È‚¢16ƒrƒbƒg‚Ì’l */
     81typedef int16_t                 H;                      /* 符号付き16ビット整数 */
     82typedef uint16_t                UH;                     /* 符号無し16ビット整数 */
     83typedef uint16_t                VH;                     /* 型が定まらない16ビットの値 */
    8884
    89 typedef int32_t                 W;                      /* •„†•t‚«32ƒrƒbƒg®” */
    90 typedef uint32_t                UW;                     /* •„†–³‚µ32ƒrƒbƒg®” */
    91 typedef uint32_t                VW;                     /* Œ^‚ª’è‚Ü‚ç‚È‚¢32ƒrƒbƒg‚Ì’l */
     85typedef int32_t                 W;                      /* 符号付き32ビット整数 */
     86typedef uint32_t                UW;                     /* 符号無し32ビット整数 */
     87typedef uint32_t                VW;                     /* 型が定まらない32ビットの値 */
    9288
    9389#ifdef INT64_MAX
    94 typedef int64_t                 D;                      /* •„†•t‚«64ƒrƒbƒg®” */
     90typedef int64_t                 D;                      /* 符号付き64ビット整数 */
    9591#endif /* INT64_MAX */
    9692
    9793#ifdef UINT64_MAX
    98 typedef uint64_t                UD;                     /* •„†–³‚µ64ƒrƒbƒg®” */
    99 typedef uint64_t                VD;                     /* Œ^‚ª’è‚Ü‚ç‚È‚¢64ƒrƒbƒg‚Ì’l */
     94typedef uint64_t                UD;                     /* 符号無し64ビット整数 */
     95typedef uint64_t                VD;                     /* 型が定まらない64ビットの値 */
    10096#endif /* UINT64_MAX */
    10197
    102 typedef void                    *VP;            /* Œ^‚ª’è‚Ü‚ç‚È‚¢‚à‚̂ւ̃|ƒCƒ“ƒ^ */
     98typedef void                    *VP;            /* 型が定まらないものへのポインタ */
    10399
    104 typedef int_t                   INT;            /* Ž©‘R‚ȃTƒCƒY‚Ì•„†•t‚«®” */
    105 typedef uint_t                  UINT;           /* Ž©‘R‚ȃTƒCƒY‚Ì•„†–³‚µ®” */
     100typedef int_t                   INT;            /* 自然なサイズの符号付き整数 */
     101typedef uint_t                  UINT;           /* 自然なサイズの符号無し整数 */
    106102
    107 typedef bool_t                  BOOL;           /* ^‹U’l */
     103typedef bool_t                  BOOL;           /* 真偽値 */
    108104
    109 typedef intptr_t                VP_INT;         /* ƒ|ƒCƒ“ƒ^‚Ü‚½‚Í•„†•t‚«®” */
     105typedef intptr_t                VP_INT;         /* ポインタまたは符号付き整数 */
    110106
    111107#endif /* TOPPERS_MACRO_ONLY */
    112108
    113109/*
    114  *  ITRONŽd—l‹¤’ʒ萔
     110 *  ITRON仕様共通定数
    115111 */
    116 #define TRUE            true                    /* ^ */
    117 #define FALSE           false                   /* ‹U */
     112#define TRUE            true                    /* */
     113#define FALSE           false                   /* */
    118114
    119115/*
    120  *  ƒIƒuƒWƒFƒNƒg‘®«‚Ì’è‹`
     116 *  オブジェクト属性の定義
    121117 */
    122 #define TA_HLNG                 UINT_C(0x00)    /* ‚‹‰Œ¾Œê—pƒCƒ“ƒ^ƒtƒF[ƒX */
    123 #define TA_TFIFO                UINT_C(0x00)    /* ƒ^ƒXƒN‚Ì‘Ò‚¿s—ñ‚ðFIFO‡‚É */
    124 #define TA_MFIFO                UINT_C(0x00)    /* ƒƒbƒZ[ƒWƒLƒ
    125 [‚ðFIFO‡‚É */
    126 #define TA_WSGL                 UINT_C(0x00)    /* ‘Ò‚¿ƒ^ƒXƒN‚Í1‚Â‚Ì‚Ý */
    127 #define TA_DISINT               UINT_C(0x00)    /* Š„ž‚Ý—v‹‹ÖŽ~ƒtƒ‰ƒO‚ðƒZƒbƒg */
    128 #define TA_LEVEL                UINT_C(0x00)    /* ƒŒƒxƒ‹ƒgƒŠƒK */
     118#define TA_HLNG                 UINT_C(0x00)    /* 高級言語用インタフェース */
     119#define TA_TFIFO                UINT_C(0x00)    /* タスクの待ち行列をFIFO順に */
     120#define TA_MFIFO                UINT_C(0x00)    /* メッセージキューをFIFO順に */
     121#define TA_WSGL                 UINT_C(0x00)    /* 待ちタスクは1つのみ */
     122#define TA_DISINT               UINT_C(0x00)    /* 割込み要求禁止フラグをセット */
     123#define TA_LEVEL                UINT_C(0x00)    /* レベルトリガ */
    129124
    130125/*
    131  *  ƒlƒXƒg‰ñ”‚̍őå’l
     126 *  ネスト回数の最大値
    132127 */
    133 #define TMAX_SUSCNT             UINT_C(1)               /* ‹­§‘Ò‚¿—v‹ƒlƒXƒg”‚̍őå’l */
     128#define TMAX_SUSCNT             UINT_C(1)               /* 強制待ち要求ネスト数の最大値 */
    134129
    135130/*
    136  *  ‹­§‘Ò‚¿ó‘Ô‚©‚ç‚Ì‹­§ÄŠJ
     131 *  強制待ち状態からの強制再開
    137132 */
    138133#define frsm_tsk(tskid)         rsm_tsk(tskid)
  • uKadecot/trunk/ssp/include/kernel.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2010-2012 by Meika Sugimoto
    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
    4642/*
    47  *              TOPPERS/SSPƒJ[ƒlƒ‹ •W€ƒwƒbƒ_ƒtƒ@ƒCƒ‹
    48  *
    49  *  TOPPERS/SSPƒJ[ƒlƒ‹‚ªƒTƒ|[ƒg‚·‚éƒT[ƒrƒXƒR[ƒ‹‚̐錾‚ƁC•K—v‚ȃf[
    50  *  ƒ^Œ^C’萔Cƒ}ƒNƒ‚Ì’è‹`‚ðŠÜ‚Þƒwƒbƒ_ƒtƒ@ƒCƒ‹D
    51  *
    52  *  ƒAƒZƒ“ƒuƒŠŒ¾Œê‚̃\[ƒXƒtƒ@ƒCƒ‹‚©‚炱‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚鎞
    53  *  ‚́CTOPPERS_MACRO_ONLY‚ð’è‹`‚µ‚Ä‚¨‚­D‚±‚ê‚É‚æ‚èCƒ}ƒNƒ’è‹`ˆÈŠO‚ð
    54  *  œ‚­‚悤‚É‚È‚Á‚Ä‚¢‚éD
    55  *
    56  *  ‚±‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚é‘O‚ɃCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚¨‚­‚ׂ«ƒtƒ@ƒCƒ‹
    57  *  ‚Í‚È‚¢D
     43 *              TOPPERS/SSPカーネル 標準ヘッダファイル
     44 *
     45 *  TOPPERS/SSPカーネルがサポートするサービスコールの宣言と,必要なデー
     46 *  タ型,定数,マクロの定義を含むヘッダファイル.
     47 *
     48 *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
     49 *  は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を
     50 *  除くようになっている.
     51 *
     52 *  このファイルをインクルードする前にインクルードしておくべきファイル
     53 *  はない.
    5854 */
    5955
     
    6258
    6359/*
    64  *      TOPPERS‹¤’ʂ̃f[ƒ^Œ^E’萔Eƒ}ƒNƒ
     60 *      TOPPERS共通のデータ型・定数・マクロ
    6561 */
    6662#include <t_stddef.h>
    6763
    6864/*
    69  *  ƒ^[ƒQƒbƒgˆË‘¶•”
     65 *  ターゲット依存部
    7066 */
    7167#include "target_kernel.h"
     
    7369
    7470/*
    75  *  ƒf[ƒ^Œ^‚Ì’è‹`
    76  */
    77 
    78 /*
    79  *  ƒrƒbƒgƒpƒ^[ƒ“‚âƒIƒuƒWƒFƒNƒg”ԍ†‚ÌŒ^’è‹`
    80  */
    81 typedef uint_t                  INTNO;          /* Š„ž‚ݔԍ† */
    82 typedef uint_t                  INHNO;          /* Š„ž‚݃nƒ“ƒhƒ‰”ԍ† */
    83 typedef uint_t                  EXCNO;          /* CPU—áŠOƒnƒ“ƒhƒ‰”ԍ† */
    84 typedef unsigned long   FLGPTN;         /* ƒCƒxƒ“ƒgƒtƒ‰ƒOƒpƒ^[ƒ“ */
    85 
    86 
    87 /*
    88  *  ˆ—’PˆÊ‚ÌŒ^’è‹`
     71 *  データ型の定義
     72 */
     73
     74/*
     75 *  ビットパターンやオブジェクト番号の型定義
     76 */
     77typedef uint_t                  INTNO;          /* 割込み番号 */
     78typedef uint_t                  INHNO;          /* 割込みハンドラ番号 */
     79typedef uint_t                  EXCNO;          /* CPU例外ハンドラ番号 */
     80typedef unsigned long   FLGPTN;         /* イベントフラグパターン */
     81
     82
     83/*
     84 *  処理単位の型定義
    8985 */
    9086typedef void    (*TASK)(intptr_t exinf);
     
    9894
    9995/*
    100  *  ƒƒ‚ƒŠ—̈æŠm•Û‚Ì‚½‚ß‚ÌŒ^’è‹`
     96 *  メモリ領域確保のための型定義
    10197 */
    10298#ifndef TOPPERS_STK_T
    10399#define TOPPERS_STK_T   intptr_t
    104100#endif /* TOPPERS_STK_T */
    105 typedef TOPPERS_STK_T   STK_T;  /* ƒXƒ^ƒbƒN—̈æ‚ðŠm•Û‚·‚邽‚ß‚ÌŒ^ */
    106 
    107 
    108 /*
    109  *  ƒT[ƒrƒXƒR[ƒ‹‚̐錾
    110  */
    111 
    112 /*
    113  *  ƒ^ƒXƒNŠÇ—‹@”\
     101typedef TOPPERS_STK_T   STK_T;  /* スタック領域を確保するための型 */
     102
     103
     104/*
     105 *  サービスコールの宣言
     106 */
     107
     108/*
     109 *  タスク管理機能
    114110 */
    115111extern ER               act_tsk(ID tskid);
     
    117113
    118114/*
    119  *  “¯ŠúE’ʐM‹@”\
    120  */
    121 
    122 /* ƒf[ƒ^ƒLƒ
    123 [ */
     115 *  同期・通信機能
     116 */
     117
     118/* データキュー */
    124119extern ER psnd_dtq(ID dtqid, intptr_t data);
    125120extern ER ipsnd_dtq(ID dtqid, intptr_t data);
    126121extern ER prcv_dtq(ID dtqid, intptr_t *p_data);
    127122
    128 /* ƒCƒxƒ“ƒgƒtƒ‰ƒO */
     123/* イベントフラグ */
    129124extern ER set_flg(ID flgid, FLGPTN setptn);
    130125extern ER iset_flg(ID flgid, FLGPTN setptn);
     
    133128
    134129/*
    135  *  ƒVƒXƒeƒ€ó‘ÔŠÇ—‹@”\
     130 *  システム状態管理機能
    136131 */
    137132extern ER               loc_cpu(void);
     
    149144
    150145/*
    151  *  Š„ž‚ÝŠÇ—‹@”\
     146 *  割込み管理機能
    152147 */
    153148extern ER               dis_int(INTNO intno);
     
    155150
    156151/*
    157  *  ŽüŠúƒnƒ“ƒhƒ‰‹@”\
     152 *  周期ハンドラ機能
    158153 */
    159154extern ER               sta_cyc(ID cycid);
     
    161156
    162157/*
    163  *  ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‹@”\
     158 *  アラームハンドラ機能
    164159 */
    165160extern ER               sta_alm(ID almid , RELTIM almtim);
     
    169164
    170165/*
    171  *  ƒVƒXƒeƒ€ŽžŠÇ—‹@”\
     166 *  システム時刻管理機能
    172167 */
    173168extern ER               get_tim(SYSTIM *p_systim);
     
    176171
    177172/*
    178  *  ƒIƒuƒWƒFƒNƒg‘®«‚Ì’è‹`
    179  */
    180 #define TA_RSTR                 UINT_C(0x04)    /* §–ñƒ^ƒXƒN */
    181 
    182 #define TA_CLR                  UINT_C(0x04)    /* ƒCƒxƒ“ƒgƒtƒ‰ƒO‚̃NƒŠƒAŽw’è */
    183 
    184 #define TA_ACT                  UINT_C(0x02)    /* ƒ^ƒXƒN‚ð‹N“®‚³‚ꂽó‘ԂŐ¶¬ */
    185 
    186 #define TA_STA                  UINT_C(0x02)    /* ŽüŠúƒnƒ“ƒhƒ‰‚𓮍ìó‘ԂŐ¶¬ */
    187 
    188 #define TA_NONKERNEL    UINT_C(0x02)    /* ƒJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚Ý */
    189 
    190 #define TA_ENAINT               UINT_C(0x01)    /* Š„ž‚Ý—v‹‹ÖŽ~ƒtƒ‰ƒO‚ðƒNƒŠƒA */
    191 #define TA_EDGE                 UINT_C(0x02)    /* ƒGƒbƒWƒgƒŠƒK */
    192 
    193 /*
    194  *  ƒT[ƒrƒXƒR[ƒ‹‚Ì“®ìƒ‚[ƒh‚Ì’è‹`
    195  */
    196 #define TWF_ORW                 UINT_C(0x01)    /* ƒCƒxƒ“ƒgƒtƒ‰ƒO‚ÌOR‘Ò‚¿ */
    197 #define TWF_ANDW                UINT_C(0x02)    /* ƒCƒxƒ“ƒgƒtƒ‰ƒO‚ÌAND‘Ò‚¿ */
    198 
    199 /*
    200  *  ‚»‚Ì‘¼‚̒萔‚Ì’è‹`
    201  */
    202 #define TSK_SELF                0                       /* Ž©ƒ^ƒXƒNŽw’è */
    203 #define TSK_NONE                0                       /* ŠY“–‚·‚éƒ^ƒXƒN‚ª‚È‚¢ */
    204 
    205 #define TPRI_INI                0                       /* ƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“x */
    206 
    207 #define TIPM_ENAALL             0                       /* Š„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœ */
    208 
    209 /*
    210  *  \¬’萔‚ƃ}ƒNƒ
    211  */
    212 
    213 /*
    214  *  —Dæ“x‚͈̔Í
    215  */
    216 #define TMIN_TPRI               1                       /* ƒ^ƒXƒN—Dæ“x‚̍ŏ¬’liÅ‚’lj*/
     173 *  オブジェクト属性の定義
     174 */
     175#define TA_RSTR                 UINT_C(0x04)    /* 制約タスク */
     176
     177#define TA_CLR                  UINT_C(0x04)    /* イベントフラグのクリア指定 */
     178
     179#define TA_ACT                  UINT_C(0x02)    /* タスクを起動された状態で生成 */
     180
     181#define TA_STA                  UINT_C(0x02)    /* 周期ハンドラを動作状態で生成 */
     182
     183#define TA_NONKERNEL    UINT_C(0x02)    /* カーネル管理外の割込み */
     184
     185#define TA_ENAINT               UINT_C(0x01)    /* 割込み要求禁止フラグをクリア */
     186#define TA_EDGE                 UINT_C(0x02)    /* エッジトリガ */
     187
     188/*
     189 *  サービスコールの動作モードの定義
     190 */
     191#define TWF_ORW                 UINT_C(0x01)    /* イベントフラグのOR待ち */
     192#define TWF_ANDW                UINT_C(0x02)    /* イベントフラグのAND待ち */
     193
     194/*
     195 *  その他の定数の定義
     196 */
     197#define TSK_SELF                0                       /* 自タスク指定 */
     198#define TSK_NONE                0                       /* 該当するタスクがない */
     199
     200#define TPRI_INI                0                       /* タスクの起動時優先度 */
     201
     202#define TIPM_ENAALL             0                       /* 割込み優先度マスク全解除 */
     203
     204/*
     205 *  構成定数とマクロ
     206 */
     207
     208/*
     209 *  優先度の範囲
     210 */
     211#define TMIN_TPRI               1                       /* タスク優先度の最小値(最高値)*/
    217212#ifndef TMAX_TPRI
    218         #define TMAX_TPRI               16                      /* ƒ^ƒXƒN—Dæ“x‚̍őå’liÅ’á’lj*/
     213        #define TMAX_TPRI               16                      /* タスク優先度の最大値(最低値)*/
    219214#elif (TMAX_TPRI != 8) && (TMAX_TPRI != 16)
    220215        #error "TMAX_TPRI must defined 8 or 16."
    221216#endif  /* TMAX_TPRI */
    222217
    223 #define TMIN_ISRPRI             1                       /* Š„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“—Dæ“x‚̍ŏ¬’l */
     218#define TMIN_ISRPRI             1                       /* 割込みサービスルーチン優先度の最小値 */
    224219#ifndef TMAX_ISRPRI
    225         #define TMAX_ISRPRI             16                      /* Š„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“—Dæ“x‚̍őå’l */
     220        #define TMAX_ISRPRI             16                      /* 割込みサービスルーチン優先度の最大値 */
    226221#elif (TMAX_ISRPRI != 8) && (TMAX_ISRPRI != 16)
    227222        #error "TMAX_ISRPRI must defined 8 or 16."
     
    229224
    230225/*
    231  *  ƒo[ƒWƒ‡ƒ“î•ñ
    232  */
    233 #define TKERNEL_MAKER   UINT_C(0x0118)  /* ƒJ[ƒlƒ‹‚̃[ƒJ[ƒR[ƒh */
    234 #define TKERNEL_PRID    UINT_C(0x0007)  /* ƒJ[ƒlƒ‹‚ÌŽ¯•Ê”ԍ† */
    235 #define TKERNEL_SPVER   UINT_C(0xf511)  /* ƒJ[ƒlƒ‹Žd—l‚̃o[ƒWƒ‡ƒ“”ԍ† */
    236 #define TKERNEL_PRVER   UINT_C(0x1030)  /* ƒJ[ƒlƒ‹‚̃o[ƒWƒ‡ƒ“”ԍ† */
    237 
    238 /*
    239  *  ƒLƒ
    240 [ƒCƒ“ƒO‰ñ”‚̍őå’l
    241  */
    242 #define TMAX_ACTCNT             UINT_C(1)               /* ‹N“®—v‹ƒLƒ
    243 [ƒCƒ“ƒO”‚̍őå’l */
    244 
    245 /*
    246  *  ƒrƒbƒgƒpƒ^[ƒ“‚̃rƒbƒg”
    247  */
    248 #ifndef TBIT_FLGPTN                     /* ƒCƒxƒ“ƒgƒtƒ‰ƒO‚̃rƒbƒg” */
     226 *  バージョン情報
     227 */
     228#define TKERNEL_MAKER   UINT_C(0x0118)  /* カーネルのメーカーコード */
     229#define TKERNEL_PRID    UINT_C(0x0007)  /* カーネルの識別番号 */
     230#define TKERNEL_SPVER   UINT_C(0xf511)  /* カーネル仕様のバージョン番号 */
     231#define TKERNEL_PRVER   UINT_C(0x1030)  /* カーネルのバージョン番号 */
     232
     233/*
     234 *  キューイング回数の最大値
     235 */
     236#define TMAX_ACTCNT             UINT_C(1)               /* 起動要求キューイング数の最大値 */
     237
     238/*
     239 *  ビットパターンのビット数
     240 */
     241#ifndef TBIT_FLGPTN                     /* イベントフラグのビット数 */
    249242#define TBIT_FLGPTN             (sizeof(FLGPTN) * CHAR_BIT)
    250243#endif /* TBIT_FLGPTN */
    251244
    252245/*
    253  *  ƒƒ‚ƒŠ—̈æŠm•Û‚Ì‚½‚߂̃}ƒNƒ
    254  *
    255  *  ˆÈ‰º‚ÌTOPPERS_COUNT_SZ‚ÆTOPPERS_ROUND_SZ‚Ì’è‹`‚́Cunit‚ª2‚̋Џæ‚Å‚ 
    256  *  ‚邱‚Æ‚ð‰¼’è‚µ‚Ä‚¢‚éD
     246 *  メモリ領域確保のためのマクロ
     247 *
     248 *  以下のTOPPERS_COUNT_SZとTOPPERS_ROUND_SZの定義は,unitが2の巾乗であ
     249 *  ることを仮定している.
    257250 */
    258251#ifndef TOPPERS_COUNT_SZ
     
    267260
    268261/*
    269  *  ‚»‚Ì‘¼‚̍\¬’萔
    270  */
    271 #define TMAX_MAXCYC             UINT_C(16)        /* ŽüŠúƒnƒ“ƒhƒ‰‚̍ő吔 */
    272 #define TMAX_MAXALM             UINT_C(16)        /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚̍ő吔 */
     262 *  その他の構成定数
     263 */
     264#define TMAX_MAXCYC             UINT_C(16)        /* 周期ハンドラの最大数 */
     265#define TMAX_MAXALM             UINT_C(16)        /* アラームハンドラの最大数 */
    273266
    274267#endif /* TOPPERS_KERNEL_H */
  • uKadecot/trunk/ssp/include/log_output.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1010 *              Nagoya Municipal Industrial Research Institute, JAPAN
    1111 *
    12  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    13  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    14  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    15  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    16  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    17  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    18  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    20 ƒƒ“ƒgi—˜—p
    21  *      ŽÒƒ}ƒjƒ
    22 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    23  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    24  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    25  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    26  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    34  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    35  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    36  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    37  *      –Ɛӂ·‚邱‚ƁD
     12 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17 *      スコード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21 *      の無保証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24 *      と.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28 *        報告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33 *      免責すること.
    3834 *
    39  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    40  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    41  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    42  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    43  *  ‚̐ӔC‚𕉂í‚È‚¢D
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39 *  の責任を負わない.
    4440 *
    4541 *  @(#) $Id$
     
    4743
    4844/*
    49  *              ƒVƒXƒeƒ€ƒƒO‚̃tƒH[ƒ}ƒbƒgo—Í
     45 *              システムログのフォーマット出力
    5046 */
    5147
     
    6056
    6157/*
    62  *  •¶Žš—ñ®Œ`o—Í
     58 *  文字列整形出力
    6359 *
    64  *  format‚ÅŽw’肳‚ê‚éƒtƒH[ƒ}ƒbƒg‹Lq‚Æp_args‚ÅŽw’肳‚ê‚éˆø”—ñ‚©‚çì
    65  *  ¬‚µ‚½ƒƒbƒZ[ƒW‚ðC1•¶Žšo—͊֐”putc‚ð—p‚¢‚ďo—Í‚·‚éD
     60 *  formatで指定されるフォーマット記述とp_argsで指定される引数列から作
     61 *  成したメッセージを,1文字出力関数putcを用いて出力する.
    6662 */
    6763extern void     syslog_printf(const char *format, const intptr_t *p_args,
     
    6965
    7066/*
    71  *  ƒƒOî•ñ‚̏o—Í
     67 *  ログ情報の出力
    7268 *
    73  *  p_syslog‚ÅŽw’肳‚ê‚郍ƒOî•ñ‚𕶎š—ñ‚ɐ®Œ`‚µC1•¶Žšo—͊֐”putc‚ð—p
    74  *  ‚¢‚ďo—Í‚·‚éD
     69 *  p_syslogで指定されるログ情報を文字列に整形し,1文字出力関数putcを用
     70 *  いて出力する.
    7571 */
    7672extern void     syslog_print(const SYSLOG *p_syslog, void (*putc)(char)) throw();
    7773
    7874/*
    79  *  ƒƒOî•ñ‘rŽ¸ƒƒbƒZ[ƒW•¶Žš—ñ
     75 *  ログ情報喪失メッセージ文字列
    8076 *
    81  *  lostŒÂ‚̃ƒOî•ñ‚ªŽ¸‚í‚ꂽŽ|‚̃ƒbƒZ[ƒW‚ðC1•¶Žšo—͊֐”putc‚ð—p‚¢
    82  *  ‚ďo—Í‚·‚éD
     77 *  lost個のログ情報が失われた旨のメッセージを,1文字出力関数putcを用い
     78 *  て出力する.
    8379 */
    8480extern void     syslog_lostmsg(uint_t lost, void (*putc)(char)) throw();
  • uKadecot/trunk/ssp/include/queue.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 */
    3935
    4036/*
    41  *  ƒLƒ
    42 [‘€ìƒwƒbƒ_
     37 *  キュー操作ヘッダ
    4338 *
    44  *  SSPƒJ[ƒlƒ‹‚ł̓ƒ‚ƒŠß–ñ‚Ì‚½‚߂ɃCƒ“ƒfƒbƒNƒX‚ðŽg—p‚µ‚½ƒLƒ
    45 [‚ð—p‚¢‚é
     39 *  SSPカーネルではメモリ節約のためにインデックスを使用したキューを用いる
    4640 */
    4741
     
    4943#define TOPPERS_QUEUE_H
    5044
    51 /* ƒLƒ
    52 [‚̃Cƒ“ƒfƒbƒNƒX */
     45/* キューのインデックス */
    5346typedef uint8_t QUEIDX;
    5447
    55 /* ƒLƒ
    56 [\‘¢‘Ì */
     48/* キュー構造体 */
    5749typedef struct
    5850{
     
    6254
    6355
    64 /* ƒLƒ
    65 [ƒwƒbƒ_‚̏‰Šú‰» */
     56/* キューヘッダの初期化 */
    6657Inline void
    6758queue_initialize(QUEUE *queue , QUEIDX queue_null)
     
    7061}
    7162
    72 /* Žw’肵‚½—v‘f‚Ì‘O‚ɐV‚½‚È—v‘f‚ð’ljÁ */
     63/* 指定した要素の前に新たな要素を追加 */
    7364Inline void
    7465queue_insert_prev(QUEUE *top , QUEIDX queue , QUEIDX entry)
     
    8172
    8273
    83 /* Žw’肵‚½ƒLƒ
    84 [‚ÌŽŸ‚Ì—v‘f‚ðíœ‚µC‚»‚̃Cƒ“ƒfƒbƒNƒX‚ð•Ô‚· */
     74/* 指定したキューの次の要素を削除し,そのインデックスを返す */
    8575Inline QUEIDX
    8676queue_delete_next(QUEUE *top , QUEIDX queue)
     
    9484
    9585/*
    96  *  ƒLƒ
    97 [‚ª‹ó‚©‚Ç‚¤‚©‚̃eƒXƒg
     86 *  キューが空かどうかのテスト
    9887 *
    99  *  queue‚ɂ̓Lƒ
    100 [ƒwƒbƒ_‚ðŽw’è‚·‚邱‚Æ
     88 *  queueにはキューヘッダを指定すること
    10189 */
    10290Inline bool_t
  • uKadecot/trunk/ssp/include/sil.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1010 *             Nagoya Municipal Industrial Research Institute, JAPAN
    1111 *
    12  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    13  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    14  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    15  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    16  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    17  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    18  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    20 ƒƒ“ƒgi—˜—p
    21  *      ŽÒƒ}ƒjƒ
    22 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    23  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    24  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    25  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    26  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    34  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    35  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    36  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    37  *      –Ɛӂ·‚邱‚ƁD
    38  *
    39  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    40  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    41  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    42  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    43  *  ‚̐ӔC‚𕉂í‚È‚¢D
     12 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17 *      スコード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21 *      の無保証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24 *      と.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28 *        報告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33 *      免責すること.
     34 *
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39 *  の責任を負わない.
    4440 *
    4541 *  @(#) $Id$
     
    4743
    4844/*
    49  *              ƒVƒXƒeƒ€ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒCƒ„
    50  *
    51  *  ƒVƒXƒeƒ€ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒCƒ„‚̃T[ƒrƒXƒR[ƒ‹‚Ì’è‹`EéŒ¾‚ƃ}ƒNƒ‚È
    52  *  ‚Ç‚Ì’è‹`‚ðŠÜ‚Þƒwƒbƒ_ƒtƒ@ƒCƒ‹D
    53  *
    54  *  ƒAƒZƒ“ƒuƒŠŒ¾Œê‚̃\[ƒXƒtƒ@ƒCƒ‹‚©‚炱‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚鎞
    55  *  ‚́CTOPPERS_MACRO_ONLY‚ð’è‹`‚µ‚Ä‚¨‚­‚±‚ƂŁCƒ}ƒNƒ’è‹`ˆÈŠO‚Ì‹Lq‚ð
    56  *  œ‚­‚±‚Æ‚ª‚Å‚«‚éD
    57  *
    58  *  ‚±‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚é‘O‚ɃCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚¨‚­‚ׂ«ƒtƒ@ƒCƒ‹
    59  *  ‚Í‚È‚¢D
     45 *              システムインタフェースレイヤ
     46 *
     47 *  システムインタフェースレイヤのサービスコールの定義・宣言とマクロな
     48 *  どの定義を含むヘッダファイル.
     49 *
     50 *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
     51 *  は,TOPPERS_MACRO_ONLYを定義しておくことで,マクロ定義以外の記述を
     52 *  除くことができる.
     53 *
     54 *  このファイルをインクルードする前にインクルードしておくべきファイル
     55 *  はない.
    6056 */
    6157
     
    6864
    6965/*
    70  *      TOPPERS‹¤’ʂ̃f[ƒ^Œ^E’萔Eƒ}ƒNƒ
     66 *      TOPPERS共通のデータ型・定数・マクロ
    7167 */
    7268#include <t_stddef.h>
    7369
    7470/*
    75  *  ƒ^[ƒQƒbƒgˆË‘¶•”
     71 *  ターゲット依存部
    7672 */
    7773#include "target_sil.h"
     
    8076
    8177/*
    82  *  ‘SŠ„ž‚݃ƒbƒNó‘Ԃ̐§Œä
    83  *
    84  *  SIL_PRE_LOCCSIL_LOC_INT()CSIL_UNL_INT()‚́Cƒ^[ƒQƒbƒgˆË‘¶•”‚Å—p
    85  *  ˆÓ‚·‚éDƒfƒtƒHƒ‹ƒg‚Ì’è‹`‚Í—pˆÓ‚µ‚Ä‚¢‚È‚¢D
    86  */
    87 
    88 /*
    89  *  ”÷­ŽžŠÔ‘Ò‚¿
     78 *  全割込みロック状態の制御
     79 *
     80 *  SIL_PRE_LOC,SIL_LOC_INT(),SIL_UNL_INT()は,ターゲット依存部で用
     81 *  意する.デフォルトの定義は用意していない.
     82 */
     83
     84/*
     85 *  微少時間待ち
    9086 */
    9187extern void     sil_dly_nse(ulong_t dlytim) throw();
    9288
    9389/*
    94  *  ƒGƒ“ƒfƒBƒAƒ“‚Ì”½“]
     90 *  エンディアンの反転
    9591 */
    9692#ifndef TOPPERS_SIL_REV_ENDIAN_UINT16
     
    106102
    107103/*
    108  *  ƒƒ‚ƒŠ‹óŠÔƒAƒNƒZƒXŠÖ”
     104 *  メモリ空間アクセス関数
    109105 */
    110106#ifndef TOPPERS_OMIT_SIL_ACCESS
    111107
    112108/*
    113  *  8ƒrƒbƒg’PˆÊ‚̓Ǐo‚µ^‘ž‚Ý
     109 *  8ビット単位の読出し/書込み
    114110 */
    115111#ifdef UINT8_MAX
     
    133129
    134130/*
    135  *  16ƒrƒbƒg’PˆÊ‚̓Ǐo‚µ^‘ž‚Ý
     131 *  16ビット単位の読出し/書込み
    136132 */
    137133
     
    151147}
    152148
    153 #ifdef SIL_ENDIAN_BIG                   /* ƒrƒbƒOƒGƒ“ƒfƒBƒAƒ“ƒvƒƒZƒbƒT */
     149#ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
    154150
    155151#define sil_reh_bem(mem)                sil_reh_mem(mem)
     
    177173
    178174#endif /* TOPPERS_OMIT_SIL_WRH_LEM */
    179 #else /* SIL_ENDIAN_BIG */              /* ƒŠƒgƒ‹ƒGƒ“ƒfƒBƒAƒ“ƒvƒƒZƒbƒT */
     175#else /* SIL_ENDIAN_BIG */              /* リトルエンディアンプロセッサ */
    180176
    181177#define sil_reh_lem(mem)                sil_reh_mem((mem))
     
    206202
    207203/*
    208  *  32ƒrƒbƒg’PˆÊ‚̓Ǐo‚µ^‘ž‚Ý
     204 *  32ビット単位の読出し/書込み
    209205 */
    210206
     
    224220}
    225221
    226 #ifdef SIL_ENDIAN_BIG                   /* ƒrƒbƒOƒGƒ“ƒfƒBƒAƒ“ƒvƒƒZƒbƒT */
     222#ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
    227223
    228224#define sil_rew_bem(mem)                sil_rew_mem(mem)
     
    250246
    251247#endif /* TOPPERS_OMIT_SIL_WRW_LEM */
    252 #else /* SIL_ENDIAN_BIG */              /* ƒŠƒgƒ‹ƒGƒ“ƒfƒBƒAƒ“ƒvƒƒZƒbƒT */
     248#else /* SIL_ENDIAN_BIG */              /* リトルエンディアンプロセッサ */
    253249
    254250#define sil_rew_lem(mem)                sil_rew_mem((mem))
  • uKadecot/trunk/ssp/include/t_stddef.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1010 *              Nagoya Municipal Industrial Research Institute, JAPAN
    1111 *
    12  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    13  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    14  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    15  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    16  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    17  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    18  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    20 ƒƒ“ƒgi—˜—p
    21  *      ŽÒƒ}ƒjƒ
    22 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    23  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    24  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    25  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    26  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    34  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    35  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    36  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    37  *      –Ɛӂ·‚邱‚ƁD
    38  *
    39  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    40  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    41  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    42  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    43  *  ‚̐ӔC‚𕉂í‚È‚¢D
     12 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17 *      スコード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21 *      の無保証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24 *      と.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28 *        報告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33 *      免責すること.
     34 *
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39 *  の責任を負わない.
    4440 *
    4541 *  @(#) $Id$
     
    4743
    4844/*
    49  *              TOPPERS‹¤’ʃwƒbƒ_ƒtƒ@ƒCƒ‹
    50  *
    51  *  TOPPERSŠÖ˜A‚Ì‚·‚ׂẴ\[ƒXƒtƒ@ƒCƒ‹‚ŃCƒ“ƒNƒ‹[ƒh‚·‚ׂ«ƒwƒbƒ_ƒtƒ@ƒC
    52  *  ƒ‹DŠeŽí‚̃J[ƒlƒ‹‚âƒ\ƒtƒgƒEƒFƒA•”•i‚Å‹¤’Ê‚É—p‚¢‚邱‚Æ‚ð‘z’肵‚Ä‚¢
    53  *  ‚éDTOPPERS‚ÌŠeŽí‚̃J[ƒlƒ‹‚âƒ\ƒtƒgƒEƒFƒA•”•i‚Å‹¤’Ê‚É—p‚¢‚éƒf[ƒ^Œ^C
    54  *  ’萔Cƒ}ƒNƒ‚Ì’è‹`‚È‚Ç‚ðŠÜ‚ށD
    55  *
    56  *  ƒAƒZƒ“ƒuƒŠŒ¾Œê‚̃\[ƒXƒtƒ@ƒCƒ‹‚©‚炱‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚鎞
    57  *  ‚́CTOPPERS_MACRO_ONLY‚ð’è‹`‚µ‚Ä‚¨‚­D‚±‚ê‚É‚æ‚èCƒ}ƒNƒ’è‹`ˆÈŠO‚ð
    58  *  œ‚­‚悤‚É‚È‚Á‚Ä‚¢‚éD
    59  *
    60  *  ‚±‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚é‘O‚ɃCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚¨‚­‚ׂ«ƒtƒ@ƒCƒ‹
    61  *  ‚Í‚È‚¢D
     45 *              TOPPERS共通ヘッダファイル
     46 *
     47 *  TOPPERS関連のすべてのソースファイルでインクルードすべきヘッダファイ
     48 *  ル.各種のカーネルやソフトウェア部品で共通に用いることを想定してい
     49 *  る.TOPPERSの各種のカーネルやソフトウェア部品で共通に用いるデータ型,
     50 *  定数,マクロの定義などを含む.
     51 *
     52 *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
     53 *  は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を
     54 *  除くようになっている.
     55 *
     56 *  このファイルをインクルードする前にインクルードしておくべきファイル
     57 *  はない.
    6258 */
    6359
     
    7066
    7167/*
    72  *  ƒ^[ƒQƒbƒgˆË‘¶•”
     68 *  ターゲット依存部
    7369 */
    7470#include "target_stddef.h"
    7571
    7672/*
    77  *  CŒ¾Œê/EC++‚Åthrow()‚ɑΏˆ‚·‚邽‚ß‚Ì’è‹`
     73 *  C言語/EC++でthrow()に対処するための定義
    7874 */
    7975#if !defined(__cplusplus) || defined(__embedded_cplusplus)
     
    8480
    8581/*
    86  *  ƒ^[ƒQƒbƒgˆË‘¶‚̃f[ƒ^Œ^‚̃}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
     82 *  ターゲット依存のデータ型のマクロのデフォルト定義
    8783 */
    8884#ifndef TOPPERS_bool
    89 #define TOPPERS_bool    int                             /* ƒu[ƒ‹Œ^ */
     85#define TOPPERS_bool    int                             /* ブール型 */
    9086#endif /* TOPPERS_bool */
    9187
    9288#ifndef TOPPERS_size
    93 #define TOPPERS_size    uintptr_t               /* ƒTƒCƒYŒ^ */
     89#define TOPPERS_size    uintptr_t               /* サイズ型 */
    9490#endif /* TOPPERS_size */
    9591
     
    9793struct TOPPERS_dummy_t { int TOPPERS_dummy_field; };
    9894typedef void                    (*TOPPERS_fp_t)(struct TOPPERS_dummy_t);
    99 #define TOPPERS_fp              TOPPERS_fp_t    /* ƒvƒƒOƒ‰ƒ€‚Ì‹N“®”Ô’n */
     95#define TOPPERS_fp              TOPPERS_fp_t    /* プログラムの起動番地 */
    10096#endif /* TOPPERS_fp */
    10197
    10298/*
    103  *  ‹¤’ʃf[ƒ^Œ^
    104  */
    105 typedef TOPPERS_bool    bool_t;         /* ^‹U’l */
    106 
    107 typedef signed int              int_t;          /* Ž©‘R‚ȃTƒCƒY‚Ì•„†•t‚«®” */
    108 typedef unsigned int    uint_t;         /* Ž©‘R‚ȃTƒCƒY‚Ì•„†–³‚µ®” */
    109 
    110 typedef signed long             long_t;         /* ’·‚߂̃TƒCƒY‚Ì•„†•t‚«®” */
    111 typedef unsigned long   ulong_t;        /* ’·‚߂̃TƒCƒY‚Ì•„†–³‚µ®” */
    112 
    113 typedef int_t                   FN;                     /* ‹@”\ƒR[ƒh */
    114 typedef int_t                   ER;                     /* ƒGƒ‰[ƒR[ƒh */
    115 typedef int_t                   ID;                     /* ƒIƒuƒWƒFƒNƒg‚ÌID”ԍ† */
    116 typedef uint_t                  ATR;            /* ƒIƒuƒWƒFƒNƒg‚Ì‘®« */
    117 typedef uint_t                  STAT;           /* ƒIƒuƒWƒFƒNƒg‚̏ó‘Ô */
    118 typedef uint_t                  MODE;           /* ƒT[ƒrƒXƒR[ƒ‹‚Ì“®ìƒ‚[ƒh */
    119 typedef int_t                   PRI;            /* —Dæ“x */
    120 typedef TOPPERS_size    SIZE;           /* ƒƒ‚ƒŠ—̈æ‚̃TƒCƒY */
    121 
    122 typedef int_t                   TMO;            /* ƒ^ƒCƒ€ƒAƒEƒgŽw’è */
    123 typedef uint_t                  RELTIM;         /* ‘Š‘ÎŽžŠÔ */
    124 typedef ulong_t                 SYSTIM;         /* ƒVƒXƒeƒ€Žž */
    125 typedef ulong_t                 SYSUTM;         /* «”\•]‰¿—pƒVƒXƒeƒ€Žž */
    126 
    127 typedef TOPPERS_fp              FP;                     /* ƒvƒƒOƒ‰ƒ€‚Ì‹N“®”Ô’n */
    128 
    129 typedef int_t                   ER_BOOL;        /* ƒGƒ‰[ƒR[ƒh‚Ü‚½‚͐^‹U’l */
    130 typedef int_t                   ER_ID;          /* ƒGƒ‰[ƒR[ƒh‚Ü‚½‚ÍID”ԍ† */
    131 typedef int_t                   ER_UINT;        /* ƒGƒ‰[ƒR[ƒh‚Ü‚½‚Í•„†–³‚µ®” */
    132 
    133 typedef uint32_t                ACPTN;          /* ƒAƒNƒZƒX‹–‰Âƒpƒ^[ƒ“ */
    134 typedef struct acvct {                          /* ƒAƒNƒZƒX‹–‰ÂƒxƒNƒ^ */
    135         ACPTN           acptn1;                         /* ’ʏ푀ì1‚̃AƒNƒZƒX‹–‰Âƒpƒ^[ƒ“ */
    136         ACPTN           acptn2;                         /* ’ʏ푀ì2‚̃AƒNƒZƒX‹–‰Âƒpƒ^[ƒ“ */
    137         ACPTN           acptn3;                         /* ŠÇ—‘€ì‚̃AƒNƒZƒX‹–‰Âƒpƒ^[ƒ“ */
    138         ACPTN           acptn4;                         /* ŽQÆ‘€ì‚̃AƒNƒZƒX‹–‰Âƒpƒ^[ƒ“ */
     99 *  共通データ型
     100 */
     101typedef TOPPERS_bool    bool_t;         /* 真偽値 */
     102
     103typedef signed int              int_t;          /* 自然なサイズの符号付き整数 */
     104typedef unsigned int    uint_t;         /* 自然なサイズの符号無し整数 */
     105
     106typedef signed long             long_t;         /* 長めのサイズの符号付き整数 */
     107typedef unsigned long   ulong_t;        /* 長めのサイズの符号無し整数 */
     108
     109typedef int_t                   FN;                     /* 機能コード */
     110typedef int_t                   ER;                     /* エラーコード */
     111typedef int_t                   ID;                     /* オブジェクトのID番号 */
     112typedef uint_t                  ATR;            /* オブジェクトの属性 */
     113typedef uint_t                  STAT;           /* オブジェクトの状態 */
     114typedef uint_t                  MODE;           /* サービスコールの動作モード */
     115typedef int_t                   PRI;            /* 優先度 */
     116typedef TOPPERS_size    SIZE;           /* メモリ領域のサイズ */
     117
     118typedef int_t                   TMO;            /* タイムアウト指定 */
     119typedef uint_t                  RELTIM;         /* 相対時間 */
     120typedef ulong_t                 SYSTIM;         /* システム時刻 */
     121typedef ulong_t                 SYSUTM;         /* 性能評価用システム時刻 */
     122
     123typedef TOPPERS_fp              FP;                     /* プログラムの起動番地 */
     124
     125typedef int_t                   ER_BOOL;        /* エラーコードまたは真偽値 */
     126typedef int_t                   ER_ID;          /* エラーコードまたはID番号 */
     127typedef int_t                   ER_UINT;        /* エラーコードまたは符号無し整数 */
     128
     129typedef uint32_t                ACPTN;          /* アクセス許可パターン */
     130typedef struct acvct {                          /* アクセス許可ベクタ */
     131        ACPTN           acptn1;                         /* 通常操作1のアクセス許可パターン */
     132        ACPTN           acptn2;                         /* 通常操作2のアクセス許可パターン */
     133        ACPTN           acptn3;                         /* 管理操作のアクセス許可パターン */
     134        ACPTN           acptn4;                         /* 参照操作のアクセス許可パターン */
    139135} ACVCT;
    140136
     
    142138
    143139/*
    144  *  ®”’萔‚ðì‚éƒ}ƒNƒ
     140 *  整数定数を作るマクロ
    145141 */
    146142#ifndef UINT_C
    147 #define UINT_C(val)             (val ## U)              /* uint_tŒ^‚̒萔‚ðì‚éƒ}ƒNƒ */
     143#define UINT_C(val)             (val ## U)              /* uint_t型の定数を作るマクロ */
    148144#endif /* UINT_C */
    149145
    150146#ifndef ULONG_C
    151 #define ULONG_C(val)    (val ## UL)             /* ulong_tŒ^‚̒萔‚ðì‚éƒ}ƒNƒ */
     147#define ULONG_C(val)    (val ## UL)             /* ulong_t型の定数を作るマクロ */
    152148#endif /* ULONG_C */
    153149
    154150/*
    155  *  ˆê”ʒ萔
     151 *  一般定数
    156152 */
    157153#ifndef NULL
    158 #define NULL            0                       /* –³Œøƒ|ƒCƒ“ƒ^ */
     154#define NULL            0                       /* 無効ポインタ */
    159155#endif /* NULL */
    160156
    161157#ifndef true
    162 #define true            1                       /* ^ */
     158#define true            1                       /* */
    163159#endif /* true */
    164160
    165161#ifndef false
    166 #define false           0                       /* ‹U */
     162#define false           0                       /* */
    167163#endif /* false */
    168164
    169 #define E_OK            0                       /* ³íI—¹ */
    170 
    171 /*
    172  *  ƒƒCƒ“ƒGƒ‰[ƒR[ƒh
    173  */
    174 #define E_SYS           (-5)            /* ƒVƒXƒeƒ€ƒGƒ‰[ */
    175 #define E_NOSPT         (-9)            /* –¢ƒTƒ|[ƒg‹@”\ */
    176 #define E_RSFN          (-10)           /* —\–ñ‹@”\ƒR[ƒh */
    177 #define E_RSATR         (-11)           /* —\–ñ‘®« */
    178 #define E_PAR           (-17)           /* ƒpƒ‰ƒ[ƒ^ƒGƒ‰[ */
    179 #define E_ID            (-18)           /* •s³ID”ԍ† */
    180 #define E_CTX           (-25)           /* ƒRƒ“ƒeƒLƒXƒgƒGƒ‰[ */
    181 #define E_MACV          (-26)           /* ƒƒ‚ƒŠƒAƒNƒZƒXˆá”½ */
    182 #define E_OACV          (-27)           /* ƒIƒuƒWƒFƒNƒgƒAƒNƒZƒXˆá”½ */
    183 #define E_ILUSE         (-28)           /* ƒT[ƒrƒXƒR[ƒ‹•s³Žg—p */
    184 #define E_NOMEM         (-33)           /* ƒƒ‚ƒŠ•s‘« */
    185 #define E_NOID          (-34)           /* ID”ԍ†•s‘« */
    186 #define E_NORES         (-35)           /* Ž‘Œ¹•s‘« */
    187 #define E_OBJ           (-41)           /* ƒIƒuƒWƒFƒNƒgó‘ÔƒGƒ‰[ */
    188 #define E_NOEXS         (-42)           /* ƒIƒuƒWƒFƒNƒg–¢¶¬ */
    189 #define E_QOVR          (-43)           /* ƒLƒ
    190 [ƒCƒ“ƒOƒI[ƒo[ƒtƒ[ */
    191 #define E_RLWAI         (-49)           /* ‘Ò‚¿ó‘Ô‚Ì‹­§‰ðœ */
    192 #define E_TMOUT         (-50)           /* ƒ|[ƒŠƒ“ƒOŽ¸”s‚Ü‚½‚̓^ƒCƒ€ƒAƒEƒg */
    193 #define E_DLT           (-51)           /* ‘Ò‚¿ƒIƒuƒWƒFƒNƒg‚̍폜 */
    194 #define E_CLS           (-52)           /* ‘Ò‚¿ƒIƒuƒWƒFƒNƒg‚̏ó‘ԕω» */
    195 #define E_WBLK          (-57)           /* ƒmƒ“ƒuƒƒbƒLƒ“ƒOŽó•t‚¯ */
    196 #define E_BOVR          (-58)           /* ƒoƒbƒtƒ@ƒI[ƒo[ƒtƒ[ */
    197 
    198 /*
    199  *  ƒIƒuƒWƒFƒNƒg‘®«
    200  */
    201 #define TA_NULL         UINT_C(0)       /* ƒIƒuƒWƒFƒNƒg‘®«‚ðŽw’肵‚È‚¢ */
    202 
    203 /*
    204  *  ƒ^ƒCƒ€ƒAƒEƒgŽw’è
    205  */
    206 #define TMO_POL         0                       /* ƒ|[ƒŠƒ“ƒO */
    207 #define TMO_FEVR        (-1)            /* ‰i‹v‘Ò‚¿ */
    208 #define TMO_NBLK        (-2)            /* ƒmƒ“ƒuƒƒbƒLƒ“ƒO */
    209 
    210 /*
    211  *  ƒAƒNƒZƒX‹–‰Âƒpƒ^[ƒ“
    212  */
    213 #define TACP_KERNEL             (0U)    /* ƒJ[ƒlƒ‹ƒhƒƒCƒ“‚¾‚¯‚ɃAƒNƒZƒX‚ð‹–‰Â */
    214 #define TACP_SHARED             (~0U)   /* ‚·‚ׂẴhƒƒCƒ“‚©‚çƒAƒNƒZƒX‚ð‹–‰Â */
    215 
    216 /*
    217  *  Œ^‚ÉŠÖ‚·‚éî•ñ‚ðŽæ‚èo‚·‚½‚߂̃}ƒNƒ
     165#define E_OK            0                       /* 正常終了 */
     166
     167/*
     168 *  メインエラーコード
     169 */
     170#define E_SYS           (-5)            /* システムエラー */
     171#define E_NOSPT         (-9)            /* 未サポート機能 */
     172#define E_RSFN          (-10)           /* 予約機能コード */
     173#define E_RSATR         (-11)           /* 予約属性 */
     174#define E_PAR           (-17)           /* パラメータエラー */
     175#define E_ID            (-18)           /* 不正ID番号 */
     176#define E_CTX           (-25)           /* コンテキストエラー */
     177#define E_MACV          (-26)           /* メモリアクセス違反 */
     178#define E_OACV          (-27)           /* オブジェクトアクセス違反 */
     179#define E_ILUSE         (-28)           /* サービスコール不正使用 */
     180#define E_NOMEM         (-33)           /* メモリ不足 */
     181#define E_NOID          (-34)           /* ID番号不足 */
     182#define E_NORES         (-35)           /* 資源不足 */
     183#define E_OBJ           (-41)           /* オブジェクト状態エラー */
     184#define E_NOEXS         (-42)           /* オブジェクト未生成 */
     185#define E_QOVR          (-43)           /* キューイングオーバーフロー */
     186#define E_RLWAI         (-49)           /* 待ち状態の強制解除 */
     187#define E_TMOUT         (-50)           /* ポーリング失敗またはタイムアウト */
     188#define E_DLT           (-51)           /* 待ちオブジェクトの削除 */
     189#define E_CLS           (-52)           /* 待ちオブジェクトの状態変化 */
     190#define E_WBLK          (-57)           /* ノンブロッキング受付け */
     191#define E_BOVR          (-58)           /* バッファオーバーフロー */
     192
     193/*
     194 *  オブジェクト属性
     195 */
     196#define TA_NULL         UINT_C(0)       /* オブジェクト属性を指定しない */
     197
     198/*
     199 *  タイムアウト指定
     200 */
     201#define TMO_POL         0                       /* ポーリング */
     202#define TMO_FEVR        (-1)            /* 永久待ち */
     203#define TMO_NBLK        (-2)            /* ノンブロッキング */
     204
     205/*
     206 *  アクセス許可パターン
     207 */
     208#define TACP_KERNEL             (0U)    /* カーネルドメインだけにアクセスを許可 */
     209#define TACP_SHARED             (~0U)   /* すべてのドメインからアクセスを許可 */
     210
     211/*
     212 *  型に関する情報を取り出すためのマクロ
    218213 */
    219214#ifndef offsetof
     
    225220#endif /* alignof */
    226221
    227 #ifndef ALIGN_TYPE                              /* ƒAƒ‰ƒCƒ“ƒƒ“ƒg‚̃`ƒFƒbƒN */
     222#ifndef ALIGN_TYPE                              /* アラインメントのチェック */
    228223#define ALIGN_TYPE(addr, type) \
    229224                                                ((((uintptr_t)(addr)) & (alignof(type) - 1)) == 0U)
     
    231226
    232227/*
    233  *  assertƒ}ƒNƒ
     228 *  assertマクロ
    234229 */
    235230#undef assert
     
    246241
    247242/*
    248  *  ƒGƒ‰[ƒR[ƒh¶¬E•ª‰ðƒ}ƒNƒ
    249  *
    250  *  ˆÈ‰º‚̃}ƒNƒ’è‹`‚́C•„†•t‚«®”‚ª2‚̕␔‚Å•\Œ»‚³‚ê‚Ä‚¨‚èC‰EƒVƒtƒg
    251  *  ‰‰ŽZŽqi>>j‚ªŽZpƒVƒtƒg‚³‚ê‚邱‚Æ‚ð‰¼’è‚µ‚Ä‚¢‚éD‚»‚¤‚Å‚È‚¢ŠJ”­ŠÂ
    252  *  ‹«‚ł́Ctarget_stddef.h‚Å‚±‚ê‚ç‚Ì’è‹`‚ðã‘‚«‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢D
    253  *
    254  *  MERCDƒ}ƒNƒ‚Ì’è‹`‚́CƒƒCƒ“ƒGƒ‰[ƒR[ƒh‚ª•‰‚Å‚ ‚邱‚Æ‚ð‰¼’è‚µ‚Ä‚¢‚éD
    255  *  ‚»‚¤‚Å‚È‚¢ê‡C2‚‚̒è‹`‚ªˆê’v‚µ‚È‚­‚È‚éD
     243 *  エラーコード生成・分解マクロ
     244 *
     245 *  以下のマクロ定義は,符号付き整数が2の補数で表現されており,右シフト
     246 *  演算子(>>)が算術シフトされることを仮定している.そうでない開発環
     247 *  境では,target_stddef.hでこれらの定義を上書きしなければならない.
     248 *
     249 *  MERCDマクロの定義は,メインエラーコードが負であることを仮定している.
     250 *  そうでない場合,2つの定義が一致しなくなる.
    256251 */
    257252#ifndef ERCD
     
    273268
    274269/*
    275  *  ‘Š‘ÎŽžŠÔiRELTIMj‚ÉŽw’è‚Å‚«‚éÅ‘å’l
     270 *  相対時間(RELTIM)に指定できる最大値
    276271 */
    277272#if UINT_MAX < LONG_MAX
  • uKadecot/trunk/ssp/include/t_syslog.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 *  @(#) $Id$
     
    4642
    4743/*
    48  *              ƒVƒXƒeƒ€ƒƒOo—Í‚ðs‚¤‚½‚ß‚Ì’è‹`
    49  *
    50  *  ƒVƒXƒeƒ€ƒƒOƒT[ƒrƒX‚́CƒVƒXƒeƒ€‚̃ƒOî•ñ‚ðo—Í‚·‚邽‚߂̃T[ƒrƒX
    51  *  ‚Å‚ ‚éDƒJ[ƒlƒ‹‚©‚ç‚̃ƒOî•ñ‚̏o—Í‚É‚à—p‚¢‚邽‚߁C“à•”‚Å‘Ò‚¿ó‘Ô
    52  *  ‚É‚Í‚¢‚邱‚Æ‚Í‚È‚¢D
    53  *
    54  *  ƒƒOî•ñ‚́CƒJ[ƒlƒ‹“à‚̃ƒOƒoƒbƒtƒ@‚ɏ‘‚«ž‚Þ‚©C’჌ƒxƒ‹‚Ì•¶Žšo
    55  *  —͊֐”‚ð—p‚¢‚ďo—Í‚·‚éD‚Ç‚¿‚ç‚ðŽg‚¤‚©‚́CŠg’£ƒT[ƒrƒXƒR[ƒ‹‚Ő؂è
    56  *  Š·‚¦‚邱‚Æ‚ª‚Å‚«‚éD
    57  *
    58  *  ƒƒOƒoƒbƒtƒ@—̈悪ƒI[ƒoƒtƒ[‚µ‚½ê‡‚ɂ́CŒÃ‚¢ƒƒOî•ñ‚ðÁ‚µ‚ďã
    59  *  ‘‚«‚·‚éD
    60  *
    61  *  ƒAƒZƒ“ƒuƒŠŒ¾Œê‚̃\[ƒXƒtƒ@ƒCƒ‹‚©‚炱‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚鎞
    62  *  ‚́CTOPPERS_MACRO_ONLY‚ð’è‹`‚µ‚Ä‚¨‚­‚±‚ƂŁCƒ}ƒNƒ’è‹`ˆÈŠO‚Ì‹Lq‚ð
    63  *  œ‚­‚±‚Æ‚ª‚Å‚«‚éD
    64  *
    65  *  ‚±‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚é‘O‚ɁCt_stddef.h‚ðƒCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚¨
    66  *  ‚­‚±‚Æ‚ª•K—v‚Å‚ ‚éD
     44 *              システムログ出力を行うための定義
     45 *
     46 *  システムログサービスは,システムのログ情報を出力するためのサービス
     47 *  である.カーネルからのログ情報の出力にも用いるため,内部で待ち状態
     48 *  にはいることはない.
     49 *
     50 *  ログ情報は,カーネル内のログバッファに書き込むか,低レベルの文字出
     51 *  力関数を用いて出力する.どちらを使うかは,拡張サービスコールで切り
     52 *  換えることができる.
     53 *
     54 *  ログバッファ領域がオーバフローした場合には,古いログ情報を消して上
     55 *  書きする.
     56 *
     57 *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
     58 *  は,TOPPERS_MACRO_ONLYを定義しておくことで,マクロ定義以外の記述を
     59 *  除くことができる.
     60 *
     61 *  このファイルをインクルードする前に,t_stddef.hをインクルードしてお
     62 *  くことが必要である.
    6763 */
    6864
     
    7571
    7672/*
    77  *  ƒƒOî•ñ‚ÌŽí•Ê‚Ì’è‹`
    78  */
    79 #define LOG_TYPE_COMMENT        UINT_C(0x01)    /* ƒRƒƒ“ƒg */
    80 #define LOG_TYPE_ASSERT         UINT_C(0x02)    /* ƒAƒT[ƒVƒ‡ƒ“‚ÌŽ¸”s */
    81 
    82 #define LOG_TYPE_INH            UINT_C(0x11)    /* Š„ž‚݃nƒ“ƒhƒ‰ */
    83 #define LOG_TYPE_ISR            UINT_C(0x12)    /* Š„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“ */
    84 #define LOG_TYPE_CYC            UINT_C(0x13)    /* ŽüŠúƒnƒ“ƒhƒ‰ */
    85 #define LOG_TYPE_ALM            UINT_C(0x14)    /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰ */
    86 #define LOG_TYPE_OVR            UINT_C(0x15)    /* ƒI[ƒoƒ‰ƒ“ƒnƒ“ƒhƒ‰ */
    87 #define LOG_TYPE_EXC            UINT_C(0x16)    /* CPU—áŠOƒnƒ“ƒhƒ‰ */
    88 #define LOG_TYPE_TEX            UINT_C(0x17)    /* ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“ */
    89 #define LOG_TYPE_TSKSTAT        UINT_C(0x18)    /* ƒ^ƒXƒNó‘ԕω» */
    90 #define LOG_TYPE_DSP            UINT_C(0x19)    /* ƒfƒBƒXƒpƒbƒ`ƒƒ */
    91 #define LOG_TYPE_SVC            UINT_C(0x1a)    /* ƒT[ƒrƒXƒR[ƒ‹ */
    92 
    93 #define LOG_ENTER                       UINT_C(0x00)    /* “üŒû^ŠJŽn */
    94 #define LOG_LEAVE                       UINT_C(0x80)    /* oŒû^I—¹ */
    95 
    96 /*
    97  *  ƒƒOî•ñ‚̏d—v“x‚Ì’è‹`
    98  */
    99 #define LOG_EMERG                       UINT_C(0)               /* ƒVƒƒƒbƒgƒ_ƒEƒ“‚É’l‚·‚éƒGƒ‰[ */
     73 *  ログ情報の種別の定義
     74 */
     75#define LOG_TYPE_COMMENT        UINT_C(0x01)    /* コメント */
     76#define LOG_TYPE_ASSERT         UINT_C(0x02)    /* アサーションの失敗 */
     77
     78#define LOG_TYPE_INH            UINT_C(0x11)    /* 割込みハンドラ */
     79#define LOG_TYPE_ISR            UINT_C(0x12)    /* 割込みサービスルーチン */
     80#define LOG_TYPE_CYC            UINT_C(0x13)    /* 周期ハンドラ */
     81#define LOG_TYPE_ALM            UINT_C(0x14)    /* アラームハンドラ */
     82#define LOG_TYPE_OVR            UINT_C(0x15)    /* オーバランハンドラ */
     83#define LOG_TYPE_EXC            UINT_C(0x16)    /* CPU例外ハンドラ */
     84#define LOG_TYPE_TEX            UINT_C(0x17)    /* タスク例外処理ルーチン */
     85#define LOG_TYPE_TSKSTAT        UINT_C(0x18)    /* タスク状態変化 */
     86#define LOG_TYPE_DSP            UINT_C(0x19)    /* ディスパッチャ */
     87#define LOG_TYPE_SVC            UINT_C(0x1a)    /* サービスコール */
     88
     89#define LOG_ENTER                       UINT_C(0x00)    /* 入口/開始 */
     90#define LOG_LEAVE                       UINT_C(0x80)    /* 出口/終了 */
     91
     92/*
     93 *  ログ情報の重要度の定義
     94 */
     95#define LOG_EMERG                       UINT_C(0)               /* シャットダウンに値するエラー */
    10096#define LOG_ALERT                       UINT_C(1)
    10197#define LOG_CRIT                        UINT_C(2)
    102 #define LOG_ERROR                       UINT_C(3)               /* ƒVƒXƒeƒ€ƒGƒ‰[ */
    103 #define LOG_WARNING                     UINT_C(4)               /* ŒxƒƒbƒZ[ƒW */
     98#define LOG_ERROR                       UINT_C(3)               /* システムエラー */
     99#define LOG_WARNING                     UINT_C(4)               /* 警告メッセージ */
    104100#define LOG_NOTICE                      UINT_C(5)
    105101#define LOG_INFO                        UINT_C(6)
    106 #define LOG_DEBUG                       UINT_C(7)               /* ƒfƒoƒbƒO—pƒƒbƒZ[ƒW */
     102#define LOG_DEBUG                       UINT_C(7)               /* デバッグ用メッセージ */
    107103
    108104#ifndef TOPPERS_MACRO_ONLY
    109105
    110106/*
    111  *  ƒƒOî•ñ‚̃f[ƒ^\‘¢
     107 *  ログ情報のデータ構造
    112108 */
    113109
     
    115111
    116112typedef struct {
    117         uint_t          logtype;                                /* ƒƒOî•ñ‚ÌŽí•Ê */
    118         SYSTIM          logtim;                                 /* ƒƒOŽž */
    119         intptr_t        loginfo[TMAX_LOGINFO];  /* ‚»‚Ì‘¼‚̃ƒOî•ñ */
     113        uint_t          logtype;                                /* ログ情報の種別 */
     114        SYSTIM          logtim;                                 /* ログ時刻 */
     115        intptr_t        loginfo[TMAX_LOGINFO];  /* その他のログ情報 */
    120116} SYSLOG;
    121117
    122118/*
    123  *  ƒƒOî•ñ‚̏d—v“x‚̃rƒbƒgƒ}ƒbƒv‚ðì‚邽‚߂̃}ƒNƒ
     119 *  ログ情報の重要度のビットマップを作るためのマクロ
    124120 */
    125121#define LOG_MASK(prio)          (1U << (prio))
     
    127123
    128124/*
    129  *  ƒƒOî•ñ‚ðo—Í‚·‚邽‚߂̃‰ƒCƒuƒ‰ƒŠŠÖ”
     125 *  ログ情報を出力するためのライブラリ関数
    130126 */
    131127
     
    223219
    224220/*
    225  *  ƒƒOî•ñiƒRƒƒ“ƒgj‚ðo—Í‚·‚邽‚߂̃‰ƒCƒuƒ‰ƒŠŠÖ”ivasyslog.cj
     221 *  ログ情報(コメント)を出力するためのライブラリ関数(vasyslog.c)
    226222 */
    227223extern void     syslog(uint_t prio, const char *format, ...) throw();
     
    230226
    231227/*
    232  *  ƒVƒXƒeƒ€ƒƒOo—Í‚ð—}Ž~‚·‚éê‡
     228 *  システムログ出力を抑止する場合
    233229 */
    234230
     
    280276
    281277/*
    282  *  ƒƒOî•ñiƒRƒƒ“ƒgj‚ðo—Í‚·‚邽‚߂̃}ƒNƒ
    283  *
    284  *  format‚¨‚æ‚ь㑱‚̈ø”‚©‚çì¬‚µ‚½ƒƒbƒZ[ƒW‚ðCd‘å“xprio‚эƒOî
    285  *  •ñ‚Æ‚µ‚ďo—Í‚·‚邽‚߂̃}ƒNƒDarg1`argn‚Íintptr_tŒ^‚ɃLƒƒƒXƒg‚·‚é
    286  *  ‚½‚߁Cintptr_tŒ^‚ÉŒ^•ÏŠ·‚Å‚«‚é”CˆÓ‚ÌŒ^‚Å‚æ‚¢D
     278 *  ログ情報(コメント)を出力するためのマクロ
     279 *
     280 *  formatおよび後続の引数から作成したメッセージを,重大度prioでログ情
     281 *  報として出力するためのマクロ.arg1〜argnはintptr_t型にキャストする
     282 *  ため,intptr_t型に型変換できる任意の型でよい.
    287283 */
    288284
     
    313309
    314310/*
    315  *  ƒƒOî•ñiƒAƒT[ƒVƒ‡ƒ“‚ÌŽ¸”sj‚ðo—Í‚·‚邽‚߂̃}ƒNƒ
     311 *  ログ情報(アサーションの失敗)を出力するためのマクロ
    316312 */
    317313#ifndef TOPPERS_assert_fail
  • uKadecot/trunk/ssp/kernel/allfunc.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2011-2012 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  *              ‚·‚ׂĂ̊֐”‚ðƒRƒ“ƒpƒCƒ‹‚·‚邽‚ß‚Ì’è‹`
     41 *              すべての関数をコンパイルするための定義
    4642 */
    4743
  • uKadecot/trunk/ssp/kernel/check.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2011 by Meika Sugimoto
    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‰ü
    15  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔ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
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    36  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    37  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    38  *      –Ɛӂ·‚邱‚ƁD
    39  *
    40  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    41  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    42  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    43  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    44  *  ‚̐ӔC‚𕉂í‚È‚¢D
     13 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34 *      免責すること.
     35 *
     36 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40 *  の責任を負わない.
    4541 *
    4642 *  @(#) $Id$
     
    5652 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    5753 *
    58  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    59  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    60  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    61  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    62  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    63  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    64  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    65  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    66 ƒƒ“ƒgi—˜—p
    67  *      ŽÒƒ}ƒjƒ
    68 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    69  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    70  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    71  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    72  *      ‚ƁD
    73  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    74 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    75 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    76  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    77  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    78  *        •ñ‚·‚邱‚ƁD
    79  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    80  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    81  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    82  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    83  *      –Ɛӂ·‚邱‚ƁD
    84  *
    85  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    86  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    87  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    88  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    89  *  ‚̐ӔC‚𕉂í‚È‚¢D
     54 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     55 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     56 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     57 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     58 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     59 *      スコード中に含まれていること.
     60 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     61 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     62 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     63 *      の無保証規定を掲載すること.
     64 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     65 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     66 *      と.
     67 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     68 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     69 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     70 *        報告すること.
     71 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     72 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     73 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     74 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     75 *      免責すること.
     76 *
     77 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     78 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     79 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     80 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     81 *  の責任を負わない.
    9082 *
    9183 *  @(#) $Id$
     
    9385
    9486/*
    95  *              ƒGƒ‰[ƒ`ƒFƒbƒN—pƒ}ƒNƒ
     87 *              エラーチェック用マクロ
    9688 */
    9789
     
    10092
    10193/*
    102  *  ƒ^ƒXƒN—Dæ“x‚͈̔͂̔»’è
     94 *  タスク優先度の範囲の判定
    10395 */
    10496#define VALID_TPRI(tpri)        (TMIN_TPRI <= (tpri) && (tpri) <= TMAX_TPRI)
    10597
    10698/*
    107  *  Š„ž‚ݔԍ†‚̃`ƒFƒbƒNiE_PARj
     99 *  割込み番号のチェック(E_PAR)
    108100 */
    109101#define CHECK_INTNO_DISINT(intno) {                                                     \
     
    115107
    116108/*
    117  *  ‚»‚Ì‘¼‚̃pƒ‰ƒ[ƒ^ƒGƒ‰[‚̃`ƒFƒbƒNiE_PARj
     109 *  その他のパラメータエラーのチェック(E_PAR)
    118110 */
    119111#define CHECK_PAR(exp) {                                                                        \
     
    125117
    126118/*
    127  *  ƒIƒuƒWƒFƒNƒgID‚͈̔͂̔»’è
     119 *  オブジェクトIDの範囲の判定
    128120 */
    129121#define VALID_TSKID(tskid)      \
     
    139131
    140132/*
    141  *  ƒIƒuƒWƒFƒNƒgID‚̃`ƒFƒbƒNiE_IDj
     133 *  オブジェクトIDのチェック(E_ID)
    142134 */
    143135#define CHECK_TSKID(tskid) {                                                            \
     
    185177
    186178/*
    187  *  ŒÄo‚µƒRƒ“ƒeƒLƒXƒg‚̃`ƒFƒbƒNiE_CTXj
     179 *  呼出しコンテキストのチェック(E_CTX)
    188180 */
    189181#define CHECK_TSKCTX() {                                                                        \
     
    202194
    203195/*
    204  *  ŒÄo‚µƒRƒ“ƒeƒLƒXƒg‚ÆCPUƒƒbƒNó‘Ԃ̃`ƒFƒbƒNiE_CTXj
     196 *  呼出しコンテキストとCPUロック状態のチェック(E_CTX)
    205197 */
    206198#define CHECK_TSKCTX_UNL() {                                                            \
     
    219211
    220212/*
    221  *  ‚»‚Ì‘¼‚̃Rƒ“ƒeƒLƒXƒgƒGƒ‰[‚̃`ƒFƒbƒNiE_CTXj
     213 *  その他のコンテキストエラーのチェック(E_CTX)
    222214 */
    223215#define CHECK_CTX(exp) {                                                                        \
  • uKadecot/trunk/ssp/kernel/exception.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2010 by Meika Sugimoto
    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
    4642/*
    47  *              CPU—áŠOŠÇ—‹@”\
     43 *              CPU例外管理機能
    4844 */
    4945
     
    5248
    5349/*
    54  *  CPU—áŠOƒnƒ“ƒhƒ‰ŠÇ—‹@”\‚̏‰Šú‰»
     50 *  CPU例外ハンドラ管理機能の初期化
    5551 */
    5652
  • uKadecot/trunk/ssp/kernel/exception.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2011 by Meika Sugimoto
    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‰ü
    15  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔ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
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    36  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    37  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    38  *      –Ɛӂ·‚邱‚ƁD
     13 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34 *      免責すること.
    3935 *
    40  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    41  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    42  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    43  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    44  *  ‚̐ӔC‚𕉂í‚È‚¢D
     36 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40 *  の責任を負わない.
    4541 *
    4642 */
    4743
    4844/*
    49  *              CPU—áŠOŠÇ—‹@”\
     45 *              CPU例外管理機能
    5046 */
    5147
     
    5551#ifndef OMIT_INITIALIZE_EXCEPTION
    5652
    57 extern const EXCNO      excinib_excno[];        /* CPU—áŠOƒnƒ“ƒhƒ‰”ԍ† */
    58 extern const ATR        excinib_excatr[];       /* CPU—áŠOƒnƒ“ƒhƒ‰‘®« */
    59 extern const FP         excinib_entry[];        /* CPU—áŠOƒnƒ“ƒhƒ‰‚̏o“üŒûˆ—‚̔Ԓn */
     53extern const EXCNO      excinib_excno[];        /* CPU例外ハンドラ番号 */
     54extern const ATR        excinib_excatr[];       /* CPU例外ハンドラ属性 */
     55extern const FP         excinib_entry[];        /* CPU例外ハンドラの出入口処理の番地 */
    6056
    6157/*
    62  *  CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚̐”ikernel_cfg.cj
     58 *  CPU例外ハンドラ番号の数(kernel_cfg.c)
    6359 */
    6460extern const uint_t     tnum_excno;
     
    6864
    6965/*
    70  *  CPU—áŠOƒnƒ“ƒhƒ‰ŠÇ—‹@”\‚̏‰Šú‰»
     66 *  CPU例外ハンドラ管理機能の初期化
    7167 */
    7268extern void
  • uKadecot/trunk/ssp/kernel/interrupt.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2010-2011 by Meika Sugimoto
    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
    4642/*
    47  *              Š„ž‚ÝŠÇ—‹@”\
     43 *              割込み管理機能
    4844 */
    4945
     
    5551
    5652/*
    57  *  Š„ž‚ÝŠÇ—‹@”\‚̏‰Šú‰»
     53 *  割込み管理機能の初期化
    5854 */
    5955#ifdef TOPPERS_intini
     
    7773
    7874/*
    79  *  Š„ž‚Ý‚Ì‹ÖŽ~
     75 *  割込みの禁止
    8076 */
    8177#ifdef TOPPERS_dis_int
     
    117113
    118114/*
    119  *  Š„ž‚Ý‚Ì‹–‰Â
     115 *  割込みの許可
    120116 */
    121117#ifdef TOPPERS_ena_int
  • uKadecot/trunk/ssp/kernel/interrupt.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1010 *             Nagoya Municipal Industrial Research Institute, JAPAN
    1111 *
    12  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    13  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    14  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    15  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    16  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    17  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    18  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    20 ƒƒ“ƒgi—˜—p
    21  *      ŽÒƒ}ƒjƒ
    22 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    23  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    24  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    25  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    26  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    34  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    35  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    36  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    37  *      –Ɛӂ·‚邱‚ƁD
     12 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17 *      スコード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21 *      の無保証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24 *      と.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28 *        報告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33 *      免責すること.
    3834 *
    39  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    40  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    41  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    42  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    43  *  ‚̐ӔC‚𕉂í‚È‚¢D
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39 *  の責任を負わない.
    4440 *
    4541 */
    4642
    4743/*
    48  *              Š„ž‚ÝŠÇ—‹@”\
     44 *              割込み管理機能
    4945 */
    5046
     
    5551
    5652/*
    57  *  Š„ž‚݃nƒ“ƒhƒ‰‰Šú‰»ƒuƒƒbƒN‚̃GƒŠƒAikernel_cfg.cj
     53 *  割込みハンドラ初期化ブロックのエリア(kernel_cfg.c)
    5854 */
    59 extern const INHNO      inhinib_inhno[];                /* Š„ž‚݃nƒ“ƒhƒ‰”ԍ† */
    60 extern const ATR        inhinib_inhatr[];               /* Š„ž‚݃nƒ“ƒhƒ‰‘®« */
    61 extern const FP         inhinib_entry[];                /* Š„ž‚݃nƒ“ƒhƒ‰‚̏o“üŒûˆ—‚̔Ԓn */
     55extern const INHNO      inhinib_inhno[];                /* 割込みハンドラ番号 */
     56extern const ATR        inhinib_inhatr[];               /* 割込みハンドラ属性 */
     57extern const FP         inhinib_entry[];                /* 割込みハンドラの出入口処理の番地 */
    6258
    6359/*
    64  *  Š„ž‚Ý—v‹ƒ‰ƒCƒ“‰Šú‰»ƒuƒƒbƒN‚̃GƒŠƒAikernel_cfg.cj
     60 *  割込み要求ライン初期化ブロックのエリア(kernel_cfg.c)
    6561 */
    66 extern const INTNO      intinib_intno[];                /* Š„ž‚ݔԍ† */
    67 extern const ATR        intinib_intatr[];               /* Š„ž‚Ý‘®« */
    68 extern const PRI        intinib_intpri[];               /* Š„ž‚Ý—Dæ“x */
     62extern const INTNO      intinib_intno[];                /* 割込み番号 */
     63extern const ATR        intinib_intatr[];               /* 割込み属性 */
     64extern const PRI        intinib_intpri[];               /* 割込み優先度 */
    6965
    7066/*
    71  *  Š„ž‚݃nƒ“ƒhƒ‰”ԍ†‚̐”ikernel_cfg.cj
     67 *  割込みハンドラ番号の数(kernel_cfg.c)
    7268 */
    7369extern const uint_t     tnum_inhno;
    7470
    7571/*
    76  *  Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚̐”ikernel_cfg.cj
     72 *  割込み要求ラインの数(kernel_cfg.c)
    7773 */
    7874extern const uint_t     tnum_intno;
     
    8278
    8379/*
    84  *  Š„ž‚ÝŠÇ—‹@”\‚̏‰Šú‰»
     80 *  割込み管理機能の初期化
    8581 */
    8682extern void
  • uKadecot/trunk/ssp/kernel/kernel.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1010$               Nagoya Municipal Industrial Research Institute, JAPAN
    1111$
    12 $  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    13 $  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    14 $  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    15 $  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    16 $      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    17 $      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    18 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    19 $      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    20 ƒƒ“ƒgi—˜—pŽÒƒ}
    21 $      ƒjƒ
    22 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    23 $      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    24 $  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    25 $      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    33 $      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    34 $      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    35 $      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    36 $
    37 $  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    38 $  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    39 $  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    40 $  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    41 $  ‚í‚È‚¢D
     12$  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     13$  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     14$  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15$  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     16$      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     17$      コード中に含まれていること.
     18$  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     19$      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     20$      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     21$      証規定を掲載すること.
     22$  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     23$      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     24$    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     25$        権表示,この利用条件および下記の無保証規定を掲載すること.
     26$    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     27$        告すること.
     28$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     29$      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     30$      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     31$      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32$
     33$  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     34$  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     35$  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     36$  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     37$  わない.
    4238$
    4339$ ======================================================================
    4440
    45 $ ƒƒOo—Í
    46 $   Žw’肵‚½”‚¾‚¯s“ª‚Ƀ^ƒu‚ð‚‚¯‚Ä•\Ž¦‚·‚éD
    47 $   ƒR[ƒh‹y‚яo—͂̉“ǐ«‚ð‹“‚°‚邽‚ß‚ÉŽg‚¤D
    48 $     ˆø” : ARGV[1] : s“ª‚É‘}“ü‚·‚éƒ^ƒu‚̐”
    49 $     •Ô’l : ‹ó•¶Žš—ñ
    50 $     ’ˆÓ : RESULT‚𑀍삵‚Ä‚¢‚邽‚߁C‘¼‚̊֐”‚̏o—Í‚ð•Û‘¶‚·‚é‘O‚ɌĂяo‚·‚Ə㏑‚«‚³‚ê‚éD
     41$ ログ出力
     42$   指定した数だけ行頭にタブをつけて表示する.
     43$   コード及び出力の可読性を挙げるために使う.
     44$     引数 : ARGV[1] : 行頭に挿入するタブの数
     45$     返値 : 空文字列
     46$     注意 : RESULTを操作しているため,他の関数の出力を保存する前に呼び出すと上書きされる.
    5147$
    5248$FUNCTION LOG$
     
    5652
    5753$ =====================================================================
    58 $ ˆ—‘O‚̃`ƒFƒbƒN
     54$ 処理前のチェック
    5955$ =====================================================================
    6056
    61 $ ƒ^ƒXƒN‚ª1ŒÂˆÈã‘¶Ý‚·‚邱‚Ƃ̃`ƒFƒbƒN
     57$ タスクが1個以上存在することのチェック
    6258$IF !LENGTH(TSK.ID_LIST)$
    6359        $ERROR$$FORMAT("no task is registered")$$END$
     
    6561
    6662$ =====================================================================
    67 $ kernel_cfg.h ‚̐¶¬
     63$ kernel_cfg.h の生成
    6864$ =====================================================================
    6965
     
    8177$NL$
    8278
    83 $ // ƒ^ƒXƒNID‚ð‹N“®—Dæ“x(tskapri)‚̍‚‚¢‡‚É reallocate_tskapri ‚ÖŠ„‚è“–‚āC
    84 $ // ’è‹`‚ð kernel_cfg.h ‚֏o—Í‚·‚éD
     79$ // タスクIDを起動優先度(tskapri)の高い順に reallocate_tskapri へ割り当て,
     80$ // 定義を kernel_cfg.h へ出力する.
    8581$tsk_apriorder_list={}$
    8682$tsk_epri_list={}$
     
    9187        #define $TSK.TSKID[id]$ $tsk_index$$NL$
    9288
    93 $       DEF_EPR ‚Å’è‹`‚³‚ê‚Ä‚¢‚È‚¢ƒ^ƒXƒN‚ÌŽÀsŽž—Dæ“x‚ªC‹N“®—Dæ“x‚Æ“¯‚¶‚É‚È‚é‚悤‚É‚·‚éD
     89$       DEF_EPR で定義されていないタスクの実行時優先度が,起動優先度と同じになるようにする.
    9490        $tsk_epri_list = APPEND(tsk_epri_list, ALT(TSK.EXEPRI[TSK.TSKID[id]], TSK.ATSKPRI[TSK.TSKID[id]]))$
    9591        $tsk_index = tsk_index + 1$
     
    111107
    112108$ =====================================================================
    113 $ kernel_cfg.c‚̐¶¬
     109$ kernel_cfg.cの生成
    114110$ =====================================================================
    115111
     
    126122
    127123$ ---------------------------------------------------------------------
    128 ƒCƒ“ƒNƒ‹[ƒhƒfƒBƒŒƒNƒeƒBƒui#includej
     124インクルードディレクティブ(#include)
    129125$ ---------------------------------------------------------------------
    130126/*$NL$
     
    136132
    137133$ ---------------------------------------------------------------------
    138 ƒIƒuƒWƒFƒNƒg‚ÌID”ԍ†‚ð•ÛŽ‚·‚é•Ï”
     134オブジェクトのID番号を保持する変数
    139135$ ---------------------------------------------------------------------
    140136$IF USE_EXTERNAL_ID$
     
    161157
    162158$ ---------------------------------------------------------------------
    163 ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
     159トレースログマクロのデフォルト定義
    164160$ ---------------------------------------------------------------------
    165161/*$NL$
     
    178174
    179175$ ---------------------------------------------------------------------
    180 $  ƒ^ƒXƒN‚ÉŠÖ‚·‚éo—Í
    181 $ ---------------------------------------------------------------------
    182 
    183 $
    184 $ ŽÀsŽž—Dæ“x‚̃Rƒ“ƒtƒBƒMƒ
    185 ƒŒ[ƒVƒ‡ƒ“‚ɐ¬Œ÷‚µ‚½‚©‚Ç‚¤‚©
    186 $
    187 $ DEF_EPR ˆ—’†‚ɃGƒ‰[‚ª”­¶‚µ‚½ê‡C‚±‚̕ϐ”‚ª0‚É‚È‚éD
    188 $ DEF_EPR ˆ—’†‚ɃGƒ‰[‚ª”­¶‚µ‚½‚©‚Ç‚¤‚©‚ð”»’f‚µ‚Ä
    189 $ “Á’菈—‚ÌŽÀs‚ðƒuƒƒbƒN‚·‚邽‚ß‚ÉŽg—p‚·‚éD
     176$  タスクに関する出力
     177$ ---------------------------------------------------------------------
     178
     179$
     180$ 実行時優先度のコンフィギュレーションに成功したかどうか
     181$
     182$ DEF_EPR 処理中にエラーが発生した場合,この変数が0になる.
     183$ DEF_EPR 処理中にエラーが発生したかどうかを判断して
     184$ 特定処理の実行をブロックするために使用する.
    190185$
    191186$configurated_defepr_successfully = 1$
     
    196191$NL$
    197192
    198 $ ƒ^ƒXƒNID”ԍ†‚̍őå’l
     193$ タスクID番号の最大値
    199194const ID _kernel_tmax_tskid = (TMIN_TSKID + TNUM_TSKID - 1);$NL$
    200195$NL$
    201196
    202 $ ready_primap ‚̏‰Šú’l
     197$ ready_primap の初期値
    203198$init_rdypmap = 0$
    204199$tsk_index = 1$
    205200
    206 $ ƒ^ƒXƒN‘®«D
     201$ タスク属性.
    207202const ATR       _kernel_tinib_tskatr[TNUM_TSKID]    = {
    208203$JOINEACH tskid tsk_apriorder_list ","$
    209 $       // TA_ACT , TA_RSTR ‚Ü‚½‚Í TA_NULL ‚Å‚ ‚éiE_RSATRj
     204$       // TA_ACT , TA_RSTR または TA_NULL である(E_RSATR)
    210205        $IF (TSK.TSKATR[tskid] & ~(TA_ACT | TA_RSTR | ALT(TARGET_TSKATR,0))) != 0$
    211206                $ERROR TSK.TEXT_LINE[tskid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "tskatr", TSK.TSKATR[tskid], tskid, "CRE_TSK")$$END$
     
    223218const uint_t$TAB$_kernel_init_rdypmap = $init_rdypmap$U;$NL$
    224219
    225 $ Šg’£î•ñ(exinf)D ƒGƒ‰[‚̓Rƒ“ƒpƒCƒ‹Žž‚Ü‚½‚̓AƒvƒŠ‚̃eƒXƒg‚ÅŒŸo‚·‚邽‚߁C‚±‚±‚Å‚Í‚µ‚È‚¢D
     220$ 拡張情報(exinf). エラーはコンパイル時またはアプリのテストで検出するため,ここではしない.
    226221const intptr_t  _kernel_tinib_exinf[TNUM_TSKID]     = {
    227222$JOINEACH tskid tsk_apriorder_list ","$
     
    230225};$NL$
    231226
    232 $ ‹N“®”Ô’n(task)DƒGƒ‰[‚̓Rƒ“ƒpƒCƒ‹Žž‚Ü‚½‚̓AƒvƒŠ‚̃eƒXƒg‚ÅŒŸo‚·‚邽‚߁C‚±‚±‚Å‚Í‚µ‚È‚¢D
     227$ 起動番地(task).エラーはコンパイル時またはアプリのテストで検出するため,ここではしない.
    233228const TASK      _kernel_tinib_task[TNUM_TSKID]      = {
    234229$JOINEACH tskid tsk_apriorder_list ","$
     
    237232};$NL$
    238233
    239 $ ‹N“®—Dæ“x(atskpri)D
     234$ 起動優先度(atskpri).
    240235$FOREACH tskid tsk_apriorder_list$
    241 $       // atskpri ‚Í TMIN_TPRI ˆÈãCTMAX_TPRI ˆÈ‰º‚Å‚ ‚éDiE_PARj
     236$       // atskpri は TMIN_TPRI 以上,TMAX_TPRI 以下である.(E_PAR)
    242237        $IF !(TMIN_TPRI <= TSK.ATSKPRI[tskid] && TSK.ATSKPRI[tskid] <= TMAX_TPRI)$
    243238                $ERROR TSK.TEXT_LINE[tskid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "atskpri", TSK.ATSKPRI[tskid], tskid, "CRE_TSK")$$END$
    244239        $END$
    245240
    246 $       // atskpri ‚͏d•¡‚ª‚È‚¢DiE_PARj
     241$       // atskpri は重複がない.(E_PAR)
    247242        $FOREACH tskid2 tsk_apriorder_list$
    248243                $IF tskid != tskid2 && TSK.ATSKPRI[tskid] == TSK.ATSKPRI[tskid2] $
     
    252247$END$
    253248
    254 $ ŽÀsŽž—Dæ“x(exepri)D
     249$ 実行時優先度(exepri).
    255250const uint_t    _kernel_tinib_epriority[TNUM_TSKID] = {
    256251$epri_allocated = 0$
     
    259254        $epri = AT(tsk_epri_list, tsk_index)$
    260255
    261 $       // exepri ‚Í TMIN_TPRI ˆÈã‚©‚ TMAX_TPRI ˆÈ‰º‚Å‚ ‚éD(E_PAR)
     256$       // exepri は TMIN_TPRI 以上かつ TMAX_TPRI 以下である.(E_PAR)
    262257        $IF TMIN_TPRI > epri || TMAX_TPRI < epri$
    263258                $configurated_defepr_successfully = 0$
     
    265260        $END$
    266261
    267 $       // exepri ‚Í atskpri ˆÈ‰º‚Ì’l‚ð‚à‚Â(—Dæ“x‚Æ‚µ‚Ä‚Í“¯‚¶‚©‚»‚ê‚æ‚荂‚¢)D(E_ILUSE)
     262$       // exepri は atskpri 以下の値をもつ(優先度としては同じかそれより高い).(E_ILUSE)
    268263        $IF epri <= TMAX_TPRI && epri > TSK.ATSKPRI[tskid]$
    269264                $configurated_defepr_successfully = 0$
     
    271266        $END$
    272267
    273 $       // exepri ‚Ì“à•”•\Œ»‚ðŒˆ’è‚µ reallocate_tskepri ‚ÉŠi”[D
     268$       // exepri の内部表現を決定し reallocate_tskepri に格納.
    274269        $FOREACH tskid2 tsk_apriorder_list $
    275270                $IF epri_allocated != 1 && epri <= TSK.ATSKPRI[tskid2]$
     
    285280
    286281$
    287 $ // —Dæ“xŠ„‚è“–‚ÄŒ‹‰Ê‚ðo—Í
     282$ // 優先度割り当て結果を出力
    288283$
    289284/*$NL$
     
    295290
    296291$
    297 ƒ^ƒXƒN‚̍őåƒXƒ^ƒbƒNŽg—p—Ê‚ÌŒvŽZ
    298 $
    299 
    300 $ ƒXƒ^ƒbƒNƒTƒCƒY‚ÉŠÖ‚·‚éƒGƒ‰[ƒ`ƒFƒbƒN
     292タスクの最大スタック使用量の計算
     293$
     294
     295$ スタックサイズに関するエラーチェック
    301296$FOREACH tskid TSK.ID_LIST$
    302 $       // stksz‚ª0‚©Cƒ^[ƒQƒbƒg’è‹`‚̍ŏ¬’liTARGET_MIN_STKSZj‚æ‚è‚à¬‚³‚¢ê‡iE_PARj
     297$       // stkszが0か,ターゲット定義の最小値(TARGET_MIN_STKSZ)よりも小さい場合(E_PAR)
    303298        $IF TSK.STKSZ[tskid] == 0 || (LENGTH(TARGET_MIN_STKSZ) &&
    304299                                                                                TSK.STKSZ[tskid] < TARGET_MIN_STKSZ)$
     
    308303
    309304
    310 $ ŠÖ”’è‹`
    311 $
    312 $
    313 $ ŠÖ”1: ‹N“®Žž—Dæ“x‚Ì’á‚¢‡‚Ƀ\[ƒeƒBƒ“ƒO‚·‚邽‚ß‚Ì”äŠrŠÖ”
     305$ 関数定義
     306$
     307$
     308$ 関数1: 起動時優先度の低い順にソーティングするための比較関数
    314309$
    315310$FUNCTION compare_tskapri_rev$
     
    318313
    319314$
    320 $ ŠÖ”2: Žw’肵‚½ƒ^ƒXƒN‚ɑ΂·‚éƒXƒ^ƒbƒNŽg—p—ʂ̍őå‚ðŒvŽZ‚·‚éŠÖ”
    321 $    ˆø” : ARGV[1] : ƒ^ƒXƒNID(“à•”•\Œ», ‹N“®Žž—Dæ“x‚Ì“à•”•\Œ»‚É“™‚µ‚¢)
    322 $    •Ô’l : RESULT  : “–ŠYƒ^ƒXƒN‚ɑ΂·‚éƒXƒ^ƒbƒNŽg—p—ʂ̍őå’lD
    323 $                     ‚±‚Ì’l‚́C“–ŠYƒ^ƒXƒN‚ÌŽÀsŠJŽn‚©‚çI—¹‚Ü‚Å‚ÌŠÔ‚É
    324 $                     ‚»‚̃^ƒXƒN‚ɑ΂·‚éƒvƒŠƒGƒ“ƒvƒg‚ðl—¶‚µ‚ăXƒ^ƒbƒNŽg—p—Ê‚ð
    325 $                     ŒvŽZ‚µ‚½ê‡‚ɁC‰Â”\«‚Ì‚ ‚é‘g‚ݍ‡‚킹‚Ì’†‚ōőå‚Æ‚È‚é’l‚ð•Ô‚·D
     315$ 関数2: 指定したタスクに対するスタック使用量の最大を計算する関数
     316$    引数 : ARGV[1] : タスクID(内部表現, 起動時優先度の内部表現に等しい)
     317$    返値 : RESULT  : 当該タスクに対するスタック使用量の最大値.
     318$                     この値は,当該タスクの実行開始から終了までの間に
     319$                     そのタスクに対するプリエンプトを考慮してスタック使用量を
     320$                     計算した場合に,可能性のある組み合わせの中で最大となる値を返す.
    326321$
    327322$nest_level = 0$
    328323$
    329324$FUNCTION calc_stksz$
    330 $       // •Ï”ƒŠƒXƒg
     325$       // 変数リスト
    331326        $nest_level = nest_level + 1$
    332327        $arg[nest_level] = ARGV[1]$
    333328        $calculated_stack_size = 0$
    334329
    335 $       // ˆ—ŠJŽn
     330$       // 処理開始
    336331$SPC$* $LOG(nest_level-1)$Calculation start (Task ID = $arg[nest_level]$, StackSize[$arg[nest_level]$]=$TSK.STKSZ[arg[nest_level]]$)$NL$
    337332
    338 $       // Žw’肵‚½ƒ^ƒXƒNID ‚̃Xƒ^ƒbƒNŒvŽZ‚ªŠ®—¹‚µ‚Ä‚¢‚é‚©
     333$       // 指定したタスクID のスタック計算が完了しているか
    339334        $IF     LENGTH(done[arg[nest_level]]) == 0$
    340335
    341336$SPC$* $LOG(nest_level)$Task list with higher priority than $arg[nest_level]$ = $higher_pri_tsklist[arg[nest_level]]$$NL$
    342337
    343 $               // (1) Š®—¹‚µ‚Ä‚¢‚È‚¢ê‡
    344 $               // •Ï”‚̏‰Šú‰»
     338$               // (1) 完了していない場合
     339$               // 変数の初期化
    345340                $max_stksz[arg[nest_level]] = 0$
    346341                $higher_pri_maxstksz[arg[nest_level]] = 0$
    347342
    348 $               // “–ŠYƒ^ƒXƒNID ‚ÌŽÀsŽž—Dæ“x‚æ‚荂‚¢‹N“®—Dæ“x‚ðŽ‚Âƒ^ƒXƒN‚ª‘¶Ý‚·‚éê‡
     343$               // 当該タスクID の実行時優先度より高い起動優先度を持つタスクが存在する場合
    349344                $IF LENGTH(higher_pri_tsklist[arg[nest_level]]) > 0$
    350 $                       // ‚»‚ꂼ‚ê‚̍‚—Dæ“xƒ^ƒXƒN‚ɑ΂µ
     345$                       // それぞれの高優先度タスクに対し
    351346                        $FOREACH id higher_pri_tsklist[arg[nest_level]]$
    352 $                               // Ä‹AŒÄo‚·‚é‚ƕϐ”‚ªã‘‚«‚³‚ê‚邽‚߁C•Û‘¶‚µ‚Ä‚¨‚­
     347$                               // 再帰呼出すると変数が上書きされるため,保存しておく
    353348                                $id_saved[nest_level] = id$
    354 $                               // ƒXƒ^ƒbƒNŒvŽZ‚ðŽÀs‚·‚é
     349$                               // スタック計算を実行する
    355350                                $calculated_stack_size = calc_stksz(id_saved[nest_level])$
    356 $                               // •Û‘¶‚µ‚½•Ï”‚𕜋A
     351$                               // 保存した変数を復帰
    357352                                $id = id_saved[nest_level]$
    358353
    359354                                $IF higher_pri_maxstksz[arg[nest_level]] < calculated_stack_size$
    360 $                                       // ‹L‰¯‚µ‚Ä‚¨‚­
     355$                                       // 記憶しておく
    361356                                        $higher_pri_maxstksz[arg[nest_level]] = calculated_stack_size$
    362357                                $END$
     
    366361$SPC$* $LOG(nest_level)$higher_pri_maxstksz[$arg[nest_level]$] = $higher_pri_maxstksz[arg[nest_level]]$$NL$
    367362
    368 $               // ‚—Dæ“xƒ^ƒXƒN‚̃Xƒ^ƒbƒNŽg—p—ʂɁC“–ŠYƒ^ƒXƒN‚ÌŽg—p—Ê‚ð‰ÁŽZ‚·‚é
     363$               // 高優先度タスクのスタック使用量に,当該タスクの使用量を加算する
    369364                $max_stksz[arg[nest_level]] = higher_pri_maxstksz[arg[nest_level]] + TSK.STKSZ[arg[nest_level]]$
    370365
    371366$SPC$* $LOG(nest_level)$DONE(max_stksz[$arg[nest_level]$] = $max_stksz[arg[nest_level]]$)$NL$
    372367
    373 $               // “–ŠYƒ^ƒXƒNID‚ɑ΂µ‚Ä‚ÍŒvŽZ‚ðÏ‚Ü‚¹‚½‚Æ‚¢‚¤‹L˜^‚ðŽc‚µ‚Ä‚¨‚­
     368$               // 当該タスクIDに対しては計算を済ませたという記録を残しておく
    374369                $done[arg[nest_level]] = 1$
    375370
    376371        $ELSE$
    377 $               // (2) ŒvŽZ‚ªŠù‚ÉŠ®—¹‚µ‚Ä‚¢‚éê‡CŒvŽZ‚ðƒXƒLƒbƒv‚·‚éD
     372$               // (2) 計算が既に完了している場合,計算をスキップする.
    378373
    379374$SPC$* $LOG(nest_level)$SKIP(max_stksz[$arg[nest_level]$] = $max_stksz[arg[nest_level]]$)$NL$
    380375        $END$
    381376
    382 $       // Œ©Ï‚à‚è‚̍őå’l‚ð•Ô‚·
     377$       // 見積もりの最大値を返す
    383378        $RESULT = max_stksz[arg[nest_level]]$
    384379        $nest_level = nest_level - 1$
     
    386381
    387382$
    388 $ ŠÖ”’è‹`‚±‚±‚܂ŁC‚±‚±‚©‚çƒXƒ^ƒbƒNŒvŽZˆ—‚ÌŠJŽn
    389 $
    390 
    391 $
    392 $ ‚Ü‚¸‚͖؍\‘¢‚̃f[ƒ^\‘¢ì¬
     383$ 関数定義ここまで,ここからスタック計算処理の開始
     384$
     385
     386$
     387$ まずは木構造のデータ構造作成
    393388$
    394389$FOREACH id LSORT(tsk_apriorder_list, "compare_tskapri_rev")$
    395390
    396 $       // Šeƒ^ƒXƒN–ˆ‚ɁC‚»‚ÌŽÀsŽž—Dæ“x‚æ‚è‚à‚‚¢‹N“®Žž—Dæ“x‚ðŽ‚Âƒ^ƒXƒN‚̃ŠƒXƒg‚ðì‚éD
    397 $       // ‚»‚ê‚̓vƒŠƒGƒ“ƒvƒg‚³‚ê‚é‰Â”\«‚Ì‚ ‚éƒ^ƒXƒN‚̈ꗗ‚Æ‚È‚éD
     391$       // 各タスク毎に,その実行時優先度よりも高い起動時優先度を持つタスクのリストを作る.
     392$       // それはプリエンプトされる可能性のあるタスクの一覧となる.
    398393        $FOREACH id2 LSORT(tsk_apriorder_list, "compare_tskapri_rev")$
    399394                $IF reallocate_tskepri[id] > reallocate_tskapri[id2]$
     
    402397        $END$
    403398
    404 $       // ƒvƒŠƒGƒ“ƒvƒg‚·‚éE‚³‚ê‚éŠÖŒW‚ðŽ¦‚·–؍\‘¢‚̍ª(root)‚Æ‚È‚éƒ^ƒXƒN‚Ì’TõD
    405 $       //   ‘Ώۃ^ƒXƒN(id)‚Ì‹N“®Žž—Dæ“x(reallocate_tskapri[id])‚æ‚è’á‚¢
    406 $       //   (’l‚Æ‚µ‚Ä‚Í‘å‚«‚¢)‹N“®Žž—Dæ“x‚ð‚à‚ƒ^ƒXƒN‚Ì higher_pri_tsklist ‚ɁC
    407 $       //   ‘Ώۃ^ƒXƒN(id) ‚ªŠÜ‚Ü‚ê‚È‚¯‚ê‚΁Cª‚Æ‚È‚éD
     399$       // プリエンプトする・される関係を示す木構造の根(root)となるタスクの探索.
     400$       //   対象タスク(id)の起動時優先度(reallocate_tskapri[id])より低い
     401$       //   (値としては大きい)起動時優先度をもつタスクの higher_pri_tsklist に,
     402$       //   対象タスク(id) が含まれなければ,根となる.
    408403        $is_root = 1$
    409404        $FOREACH id2 LSORT(tsk_apriorder_list, "compare_tskapri_rev")$
     
    414409                $END$
    415410        $END$
    416 $       // ª(root)‚Æ‚È‚éƒ^ƒXƒN‚È‚ç‚΁CƒŠƒXƒg‚֒ljÁ
     411$       // 根(root)となるタスクならば,リストへ追加
    417412        $IF is_root == 1$
    418413                $root_apri = APPEND(root_apri, id)$
     
    421416
    422417$
    423 $ o—ÍŠJŽn
     418$ 出力開始
    424419$
    425420
     
    428423$SPC$* $NL$
    429424
    430 $ // ª‚Æ‚È‚éŠeƒ^ƒXƒN‚ɑ΂µ‚āC‚»‚̍őåƒ^ƒXƒNŽg—p—Ê‚ðŒvŽZ‚µCƒŠƒXƒg‚֒ljÁ‚·‚éD
     425$ // 根となる各タスクに対して,その最大タスク使用量を計算し,リストへ追加する.
    431426$FOREACH root_id root_apri$
    432427        $stksz_estimated = APPEND(stksz_estimated, calc_stksz(root_id))$
    433428$END$
    434429
    435 $ // ƒ^ƒXƒN‚̃Xƒ^ƒbƒNŽg—p—ʂ̍őå’l‚ðŒˆ’è
    436 $ // ƒŠƒXƒg’†‚Ì—v‘f‚̍őå’l‚ªƒ^ƒXƒN‚̍őåƒXƒ^ƒbƒNŽg—p—Ê‚Æ‚È‚éD
     430$ // タスクのスタック使用量の最大値を決定
     431$ // リスト中の要素の最大値がタスクの最大スタック使用量となる.
    437432$max_tsk_stksz = 0$
    438433$FOREACH size stksz_estimated$
     
    442437$END$
    443438
    444 $ // Šm”F
     439$ // 確認
    445440$SPC$* List of Estimated Total Stack Sizes of Tasks = $stksz_estimated$$NL$
    446441$SPC$* Estimated Maximum Total Stack Size of Tasks = $max_tsk_stksz$$NL$
     
    449444
    450445
    451 $ ‘S‚Ă̏ˆ—’PˆÊ‚̃Xƒ^ƒbƒN‚Í‹¤—L‚³‚ê‚éD
    452 $ ‚»‚Ì‚½‚߁CƒXƒ^ƒbƒNƒTƒCƒY‚ÉŠÖ‚·‚éƒ`ƒFƒbƒN‚Í
    453 $ ‹¤—LƒXƒ^ƒbƒNÝ’è‚Ì‚Æ‚±‚ë‚ł܂Ƃ߂čs‚¤D
    454 
    455 $ ƒXƒ^ƒbƒN‚̐擪”Ô’n(stk)D
     446$ 全ての処理単位のスタックは共有される.
     447$ そのため,スタックサイズに関するチェックは
     448$ 共有スタック設定のところでまとめて行う.
     449
     450$ スタックの先頭番地(stk).
    456451$FOREACH tskid tsk_apriorder_list$
    457 $       // í‚É NULL ‚Å‚ ‚éD(E_PAR)
     452$       // 常に NULL である.(E_PAR)
    458453        $IF !EQ(TSK.STK[tskid], "NULL")$
    459454                $ERROR TSK.TEXT_LINE[tskid]$E_PAR: $FORMAT(("'%1%' of %2% must be NULL."), "stk", "CRE_TSK")$$END$
     
    462457
    463458$ ---------------------------------------------------------------------
    464 ƒCƒxƒ“ƒgƒtƒ‰ƒO
     459イベントフラグ
    465460$ ---------------------------------------------------------------------
    466461/*$NL$
     
    469464$NL$
    470465
    471 $ ƒGƒ“ƒgƒŠ‚ª (UINT8_MAX - TMIN_FLGID)ŒÂ‚æ‚葽‚¢ê‡‚́CƒGƒ‰[‚Æ‚·‚é --> Œ»Žž“_‚ł̓Rƒƒ“ƒgƒAƒEƒg
     466$ エントリが (UINT8_MAX - TMIN_FLGID)個より多い場合は,エラーとする --> 現時点ではコメントアウト
    472467$ $IF LENGTH(ALM.ORDER_LIST) > (UINT8_MAX - TMIN_FLGID)$
    473468$       $ERROR$$FORMAT("The number of CRE_FLG must be equal to or less than (UINT8_MAX - TMIN_FLGID).")$$END$
    474469$ $END$
    475470
    476 $ ƒCƒxƒ“ƒgƒtƒ‰ƒOID”ԍ†‚̍őå’l
     471$ イベントフラグID番号の最大値
    477472const ID _kernel_tmax_flgid = (TMIN_FLGID + TNUM_FLGID - 1);$NL$
    478473$NL$
    479474
    480 $       // iflgptn‚ªFLGPTN‚ÉŠi”[‚Å‚«‚È‚¢ê‡iE_PARj
     475$       // iflgptnがFLGPTNに格納できない場合(E_PAR)
    481476$FOREACH flgid FLG.ORDER_LIST$
    482477        $IF (FLG.IFLGPTN[flgid] & ~((1 << TBIT_FLGPTN) - 1)) != 0$
     
    485480$END$
    486481
    487 $ ƒCƒxƒ“ƒgƒtƒ‰ƒO‰Šú‰»ƒuƒƒbƒN‚̐¶¬
     482$ イベントフラグ初期化ブロックの生成
    488483$IF LENGTH(FLG.ID_LIST)$
    489484
    490 $       ƒCƒxƒ“ƒgƒtƒ‰ƒO‘®«
     485$       イベントフラグ属性
    491486        const ATR _kernel_flginib_atr[TNUM_FLGID] = {
    492487                $JOINEACH flgid FLG.ORDER_LIST ","$
    493 $                       // flgatr‚ªimTA_CLRnj‚Å‚È‚¢ê‡iE_RSATRj
     488$                       // flgatrが([TA_CLR])でない場合(E_RSATR)
    494489                        $IF (FLG.FLGATR[flgid] & ~(TA_CLR)) != 0$
    495490                                $ERROR FLG.TEXT_LINE[flgid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "flgatr", FLG.FLGATR[flgid], flgid, "CRE_FLG")$$END$
     
    499494        };$NL$
    500495       
    501 $       ƒCƒxƒ“ƒgƒtƒ‰ƒOƒpƒ^[ƒ“‚̏‰Šú’l
     496$       イベントフラグパターンの初期値
    502497        const FLGPTN _kernel_flginib_iflgptn[TNUM_FLGID] = {
    503498                $JOINEACH flgid FLG.ORDER_LIST ","$
     
    506501        };$NL$
    507502
    508 $       // ƒCƒxƒ“ƒgƒtƒ‰ƒO‚ÌŒ»Ý‚̃tƒ‰ƒOƒpƒ^[ƒ“‚ðŠi”[‚·‚é•Ï”
     503$       // イベントフラグの現在のフラグパターンを格納する変数
    509504        FLGPTN _kernel_flgcb_flgptn[TNUM_FLGID];$NL$
    510505$ELSE$
     
    516511
    517512$ ---------------------------------------------------------------------
    518 $  ƒf[ƒ^ƒLƒ
    519 [
     513$  データキュー
    520514$ ---------------------------------------------------------------------
    521515/*$NL$
     
    524518$NL$
    525519
    526 $ ƒf[ƒ^ƒLƒ
    527 [ID”ԍ†‚̍őå’l
     520$ データキューID番号の最大値
    528521const ID _kernel_tmax_dtqid = (TMIN_DTQID + TNUM_DTQID - 1);$NL$
    529522$NL$
     
    531524$IF LENGTH(DTQ.ID_LIST)$
    532525        $FOREACH dtqid DTQ.ORDER_LIST$
    533 $               // dtqatr‚ª TA_NULL ‚Å‚È‚¢ê‡iE_RSATRj
     526$               // dtqatrが TA_NULL でない場合(E_RSATR)
    534527                $IF (DTQ.DTQATR[dtqid] != TA_NULL) $
    535528                        $ERROR DTQ.TEXT_LINE[dtqid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "dtqatr", DTQ.DTQATR[dtqid], dtqid, "CRE_DTQ")$$END$
    536529                $END$
    537530
    538 $               // dtqmb‚ªNULL‚Å‚È‚¢ê‡iE_NOSPTj
     531$               // dtqmbがNULLでない場合(E_NOSPT)
    539532                $IF !EQ(DTQ.DTQMB[dtqid], "NULL")$
    540533                        $ERROR DTQ.TEXT_LINE[dtqid]$E_NOSPT: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "dtqmb", DTQ.DTQMB[dtqid], dtqid, "CRE_DTQ")$$END$
    541534                $END$
    542535
    543 $               // dtqcnt‚ª0‚Å‚ ‚éê‡
     536$               // dtqcntが0である場合
    544537                $IF EQ(+DTQ.DTQCNT[dtqid], 0)$
    545538                        $ERROR DTQ.TEXT_LINE[dtqid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "dtqmb", DTQ.DTQCNT[dtqid], dtqid, "CRE_DTQ")$$END$
     
    547540                               
    548541
    549 $               // ƒf[ƒ^ƒLƒ
    550 [—̈æ
     542$               // データキュー領域
    551543                $IF DTQ.DTQCNT[dtqid]$
    552544                        static intptr_t _kernel_dtqmb_$dtqid$[$DTQ.DTQCNT[dtqid]$];$NL$
     
    554546        $END$
    555547
    556 $       // ƒf[ƒ^ƒLƒ
    557 [‰Šú‰»ƒuƒƒbƒN‚̐¶¬(‘®«)
     548$       // データキュー初期化ブロックの生成(属性)
    558549        const ATR _kernel_dtqinib_atr[TNUM_DTQID] = {
    559550                $JOINEACH dtqid DTQ.ORDER_LIST ",\n"$
     
    563554        $NL$
    564555
    565 $       // ƒf[ƒ^ƒLƒ
    566 [‰Šú‰»ƒuƒƒbƒN‚̐¶¬(ƒTƒCƒY)
     556$       // データキュー初期化ブロックの生成(サイズ)
    567557        const uint8_t _kernel_dtqinib_size[TNUM_DTQID] = {
    568558                $JOINEACH dtqid DTQ.ORDER_LIST ",\n"$
     
    572562        $NL$
    573563
    574 $       // ƒf[ƒ^ƒLƒ
    575 [‰Šú‰»ƒuƒƒbƒN‚̐¶¬(ŠÇ——̈æ)
     564$       // データキュー初期化ブロックの生成(管理領域)
    576565        intptr_t * const _kernel_dtqinib_data[TNUM_DTQID] = {
    577566                $JOINEACH dtqid DTQ.ORDER_LIST ",\n"$
     
    581570        $NL$
    582571
    583 $       // ƒf[ƒ^ƒLƒ
    584 [ƒRƒ“ƒgƒ[ƒ‹ƒuƒƒbƒN
     572$       // データキューコントロールブロック
    585573        uint8_t _kernel_dtqcb_count[TNUM_DTQID];$NL$
    586574        uint8_t _kernel_dtqcb_head[TNUM_DTQID];$NL$
     
    598586
    599587$ ---------------------------------------------------------------------
    600 Š„ž‚ÝŠÇ—‹@”\
     588割込み管理機能
    601589$ ---------------------------------------------------------------------
    602590/*$NL$
     
    605593$NL$
    606594
    607 $ // INTNO_ATTISR_VALID ‚Ì—v‘f‚ªd•¡‚µ‚Ä‚¢‚È‚¢‚©‚Ç‚¤‚©‚̃`ƒFƒbƒN
     595$ // INTNO_ATTISR_VALID の要素が重複していないかどうかのチェック
    608596$i = 0$
    609597$FOREACH intno INTNO_ATTISR_VALID$
     
    618606$END$
    619607
    620 $ // INHNO_ATTISR_VALID ‚Ì—v‘f‚ªd•¡‚µ‚Ä‚¢‚È‚¢‚©‚Ç‚¤‚©‚̃`ƒFƒbƒN
     608$ // INHNO_ATTISR_VALID の要素が重複していないかどうかのチェック
    621609$i = 0$
    622610$FOREACH intno INHNO_ATTISR_VALID$
     
    632620
    633621
    634 $ // ATT_ISR ‚ÅŽg—p‰Â”\‚ÈŠ„ž‚ݔԍ†‚ƁC‚»‚ê‚ɑΉž‚·‚銄ž‚݃nƒ“ƒhƒ‰”ԍ†‚̐”‚ª“¯‚¶‚©‚Ç‚¤‚©
    635 $ // ŠeƒŠƒXƒg‚Ì—v‘f‚͏d•¡‚µ‚Ä‚¢‚È‚¢‚±‚Æ‚ð‘O’ñ‚Æ‚µ‚Ä‚¢‚éD
     622$ // ATT_ISR で使用可能な割込み番号と,それに対応する割込みハンドラ番号の数が同じかどうか
     623$ // 各リストの要素は重複していないことを前提としている.
    636624$IF LENGTH(INTNO_ATTISR_VALID) != LENGTH(INHNO_ATTISR_VALID)$
    637625        $ERROR$length of `INTNO_ATTISR_VALID' is different from length of `INHNO_ATTISR_VALID'$END$
     
    639627
    640628
    641 $ // Š„ž‚ݔԍ†‚ÆŠ„ž‚݃nƒ“ƒhƒ‰”ԍ†‚Ì•ÏŠ·ƒe[ƒuƒ‹‚̍쐬
    642 $ //  Š„ž‚ݔԍ†‚̃ŠƒXƒg‚ÆŠ„ž‚݃nƒ“ƒhƒ‰”ԍ†‚̃ŠƒXƒg‚͑Ήž‚·‚é—v‘f‚ª“¯‚¶‡”Ô‚Å
    643 $ //  Œ»‚ê‚é‚悤‚É•À‚ׂç‚ê‚Ä‚¢‚邱‚Æ‚ð‘O’ñ‚Æ‚·‚éD
     629$ // 割込み番号と割込みハンドラ番号の変換テーブルの作成
     630$ //  割込み番号のリストと割込みハンドラ番号のリストは対応する要素が同じ順番で
     631$ //  現れるように並べられていることを前提とする.
    644632$i = 0$
    645633$FOREACH intno INTNO_ATTISR_VALID$
    646634
    647 $       // INTNO_ATTISR_VALID ‚ÉŠÜ‚Ü‚ê‚é’l‚Í INTNO_CFGINT_VALID ‚É‚àŠÜ‚Ü‚ê‚é‚ׂ«‚Å‚ ‚éD
    648 $       // INTNO_ATTISR_VALID ‚Í INTNO_CFGINT_VALID ‚Ì•”•ªW‡‚É‚È‚é‚Í‚¸D
     635$       // INTNO_ATTISR_VALID に含まれる値は INTNO_CFGINT_VALID にも含まれるべきである.
     636$       // INTNO_ATTISR_VALID は INTNO_CFGINT_VALID の部分集合になるはず.
    649637        $IF LENGTH(FIND(INTNO_CFGINT_VALID, intno)) == 0$
    650638                $ERROR$all elements of `INTNO_ATTISR_VALID' must be included in `INTNO_CFGINT_VALID'$END$
     
    658646
    659647
    660 $ // INTNO_CFGINT_VALID ‚Ì—v‘f‚ª INTNO_VALID ‚ÉŠÜ‚Ü‚ê‚é‚©‚Ç‚¤‚©‚̃`ƒFƒbƒN
    661 $ // INTNO_CFGINT_VALID ‚Í INTNO_VALID ‚Ì•”•ªW‡‚É‚È‚é‚Í‚¸D
     648$ // INTNO_CFGINT_VALID の要素が INTNO_VALID に含まれるかどうかのチェック
     649$ // INTNO_CFGINT_VALID は INTNO_VALID の部分集合になるはず.
    662650$FOREACH intno INTNO_CFGINT_VALID$
    663651        $IF LENGTH(FIND(INTNO_VALID, intno)) == 0$
     
    667655
    668656
    669 $ // INHNO_ATTISR_VALID ‚Ì—v‘f‚ª INHNO_VALID ‚ÉŠÜ‚Ü‚ê‚é‚©‚Ç‚¤‚©‚̃`ƒFƒbƒN
    670 $ // INHNO_ATTISR_VALID ‚Í INHNO_VALID ‚Ì•”•ªW‡‚É‚È‚é‚Í‚¸D
     657$ // INHNO_ATTISR_VALID の要素が INHNO_VALID に含まれるかどうかのチェック
     658$ // INHNO_ATTISR_VALID は INHNO_VALID の部分集合になるはず.
    671659$FOREACH inhno INHNO_ATTISR_VALID$
    672660        $IF LENGTH(FIND(INHNO_VALID, inhno)) == 0$
     
    676664
    677665
    678 $ // Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚ÉŠÖ‚·‚éƒGƒ‰[ƒ`ƒFƒbƒN
     666$ // 割込み要求ラインに関するエラーチェック
    679667$i = 0$
    680668$FOREACH intno INT.ORDER_LIST$
    681 $       // intno‚ªCFG_INT‚ɑ΂·‚銄ž‚ݔԍ†‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
     669$       // intnoがCFG_INTに対する割込み番号として正しくない場合(E_PAR)
    682670        $IF !LENGTH(FIND(INTNO_CFGINT_VALID, INT.INTNO[intno]))$
    683671                $ERROR INT.TEXT_LINE[intno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "intno", INT.INTNO[intno], "CFG_INT")$$END$
    684672        $END$
    685673
    686 $       // intno‚ªCFG_INT‚É‚æ‚Á‚ĐݒèÏ‚݂̏ꍇiE_OBJj
     674$       // intnoがCFG_INTによって設定済みの場合(E_OBJ)
    687675        $j = 0$
    688676        $FOREACH intno2 INT.ORDER_LIST$
     
    693681        $END$
    694682
    695 $       // intatr‚ª TA_ENAINT, TA_EDGE, ‚Ü‚½‚Í‚»‚Ì‘¼ƒ^[ƒQƒbƒg‚Å—˜—p‰Â”\‚È‘®«‚Ì‚¢‚¸‚ê‚Å‚à‚È‚¢ê‡iE_RSATRj
     683$       // intatrが TA_ENAINT, TA_EDGE, またはその他ターゲットで利用可能な属性のいずれでもない場合(E_RSATR)
    696684        $IF (INT.INTATR[intno] & ~(TA_ENAINT|TA_EDGE|ALT(TARGET_INTATR,0))) != 0$
    697685                $ERROR INT.TEXT_LINE[intno]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of %3% `%4%\' in %5%"), "intatr", INT.INTATR[intno], "intno", INT.INTNO[intno], "CFG_INT")$$END$
    698686        $END$
    699687
    700 $       // intpri‚ªCFG_INT‚ɑ΂·‚銄ž‚Ý—Dæ“x‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
     688$       // intpriがCFG_INTに対する割込み優先度として正しくない場合(E_PAR)
    701689        $IF !LENGTH(FIND(INTPRI_CFGINT_VALID, INT.INTPRI[intno]))$
    702690                $ERROR INT.TEXT_LINE[intno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "intpri", INT.INTPRI[intno], "CFG_INT")$$END$
    703691        $END$
    704692
    705 $       // ƒJ[ƒlƒ‹ŠÇ—‚ÌŠ„ž‚Ý‚Æ‚µ‚ČŒ肳‚ê‚Ä‚¢‚銄ž‚݂ɁCTMIN_INTPRI ‚æ‚è‚à¬‚³‚¢’l‚ªŽw’肳‚ꂽê‡iE_OBJj
     693$       // カーネル管理の割込みとして固定されている割込みに,TMIN_INTPRI よりも小さい値が指定された場合(E_OBJ)
    706694        $IF LENGTH(FIND(INTNO_FIX_KERNEL, intno))$
    707695                $IF INT.INTPRI[intno] < TMIN_INTPRI$
     
    710698        $END$
    711699
    712 $       // ƒJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚Ý‚Æ‚µ‚ČŒ肳‚ê‚Ä‚¢‚銄ž‚݂ɁCTMIN_INTPRI ‚æ‚è‚à¬‚³‚¢’l‚ªŽw’肳‚ê‚È‚©‚Á‚½ê‡iE_OBJj
     700$       // カーネル管理外の割込みとして固定されている割込みに,TMIN_INTPRI よりも小さい値が指定されなかった場合(E_OBJ)
    713701        $IF LENGTH(FIND(INTNO_FIX_NONKERNEL, intno))$
    714702                $IF INT.INTPRI[intno] >= TMIN_INTPRI$
     
    720708
    721709
    722 $ Š„ž‚݃nƒ“ƒhƒ‰‚ÉŠÖ‚·‚éƒGƒ‰[ƒ`ƒFƒbƒN
     710$ 割込みハンドラに関するエラーチェック
    723711$i = 0$
    724712$FOREACH inhno INH.ORDER_LIST$
    725 $       // Š„ž‚݃nƒ“ƒhƒ‰”ԍ†(inhno)‚ª³‚µ‚­‚È‚¢ê‡iE_PARj
     713$       // 割込みハンドラ番号(inhno)が正しくない場合(E_PAR)
    726714        $IF !LENGTH(FIND(INHNO_DEFINH_VALID, INH.INHNO[inhno]))$
    727715                $ERROR INH.TEXT_LINE[inhno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "inhno", INH.INHNO[inhno], "DEF_INH")$$END$
    728716        $END$
    729717
    730 $       // “¯‚¶Š„ž‚݃nƒ“ƒhƒ‰”ԍ†‚ɑ΂·‚éDEF_INH‚ª•¡”‘¶Ý‚·‚éê‡iE_OBJj
     718$       // 同じ割込みハンドラ番号に対するDEF_INHが複数存在する場合(E_OBJ)
    731719        $j = 0$
    732720        $FOREACH inhno2 INH.ORDER_LIST$
     
    737725        $END$
    738726
    739 $       // Š„ž‚݃nƒ“ƒhƒ‰‘®«(inhatr) ‚ª TA_NULL, TA_NONKERNEL, ‹y‚Ñ‚»‚Ì‘¼ƒ^[ƒQƒbƒgˆË‘¶‚Å—˜—p‰Â”\‚È‘®«‚Ì‚¢‚¸‚ê‚Å‚à‚È‚¢iE_RSATRj
     727$       // 割込みハンドラ属性(inhatr) が TA_NULL, TA_NONKERNEL, 及びその他ターゲット依存で利用可能な属性のいずれでもない(E_RSATR)
    740728        $IF (INH.INHATR[inhno] & ~(TA_NONKERNEL|ALT(TARGET_INHATR,0))) != 0$
    741729                $ERROR INH.TEXT_LINE[inhno]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of %3% `%4%\' in %5%"), "inhatr", INH.INHATR[inhno], "inhno", INH.INHNO[inhno], "DEF_INH")$$END$
    742730        $END$
    743731
    744 $       // ƒJ[ƒlƒ‹ŠÇ—‚ɌŒ肳‚ê‚Ä‚¢‚銄ž‚݃nƒ“ƒhƒ‰‚ɁCTA_NONKERNEL ‘®«‚ªÝ’肳‚ê‚Ä‚¢‚éiE_RSATRj
     732$       // カーネル管理に固定されている割込みハンドラに,TA_NONKERNEL 属性が設定されている(E_RSATR)
    745733        $IF LENGTH(FIND(INHNO_FIX_KERNEL, inhno))$
    746734                $IF (INH.INHATR[inhno] & TA_NONKERNEL) != 0$
     
    749737        $END$
    750738
    751 $       // ƒJ[ƒlƒ‹ŠÇ—ŠO‚ɌŒ肳‚ê‚Ä‚¢‚銄ž‚݃nƒ“ƒhƒ‰‚ɁCTA_NONKERNEL ‘®«‚ªÝ’肳‚ê‚Ä‚¢‚È‚¢iE_RSATRj
     739$       // カーネル管理外に固定されている割込みハンドラに,TA_NONKERNEL 属性が設定されていない(E_RSATR)
    752740        $IF LENGTH(FIND(INHNO_FIX_NONKERNEL, inhno))$
    753741                $IF (INH.INHATR[inhno] & TA_NONKERNEL) == 0$
     
    757745
    758746
    759 $       // Š„ž‚ݔԍ†‚Æ1‘Î1‘Ήž‚·‚銄ž‚݃nƒ“ƒhƒ‰”ԍ†(ATT_ISR‚ÅŽw’è‰Â”\‚ÈŠ„ž‚݃nƒ“ƒhƒ‰”ԍ†)‚́CˆÈ‰º‚̃`ƒFƒbƒN‚às‚¤D
    760 $       // INHNO_ATTISR_VALID ‚ÉŠÜ‚Ü‚ê‚È‚¢Š„ž‚݃nƒ“ƒhƒ‰”ԍ†‚̓`ƒFƒbƒN‚³‚ê‚È‚¢‚±‚Æ‚É‚È‚éD
     747$       // 割込み番号と1対1対応する割込みハンドラ番号(ATT_ISRで指定可能な割込みハンドラ番号)は,以下のチェックも行う.
     748$       // INHNO_ATTISR_VALID に含まれない割込みハンドラ番号はチェックされないことになる.
    761749        $IF LENGTH(INTNO[INH.INHNO[inhno]]) > 0$
    762750                $intno = INTNO[INH.INHNO[inhno]]$
    763751
    764 $               // Š„ž‚݃nƒ“ƒhƒ‰“o˜^æ‚ÌŠ„ž‚Ý—v‹ƒ‰ƒCƒ“‚ª‘®«Ý’肳‚ê‚Ä‚¢‚È‚¢(CFG_INT‚ª‚È‚¢)iE_OBJj
     752$               // 割込みハンドラ登録先の割込み要求ラインが属性設定されていない(CFG_INTがない)(E_OBJ)
    765753                $IF !LENGTH(INT.INTNO[intno])$
    766754                        $ERROR INH.TEXT_LINE[inhno]$E_OBJ: $FORMAT(_("%1% `%2%\' corresponding to %3% `%4%\' is not configured with %5%"), "intno", INT.INTNO[intno], "inhno", INH.INHNO[inhno], "CFG_INT")$$END$
    767755                $ELSE$
    768756                        $IF (INH.INHATR[inhno] & TA_NONKERNEL) == 0$
    769 $                               // inhatr‚ÉTA_NONKERNEL‚ªŽw’肳‚ê‚Ä‚¨‚炸Cinhno‚ɑΉž
    770 $                               // ‚·‚éintno‚ɑ΂µ‚ÄCFG_INT‚Őݒ肳‚ꂽŠ„ž‚Ý—Dæ“x‚ª
    771 $                               // TMIN_INTPRI‚æ‚è‚à¬‚³‚¢ê‡iE_OBJj
     757$                               // inhatrにTA_NONKERNELが指定されておらず,inhnoに対応
     758$                               // するintnoに対してCFG_INTで設定された割込み優先度が
     759$                               // TMIN_INTPRIよりも小さい場合(E_OBJ)
    772760                                $IF INT.INTPRI[intno] < TMIN_INTPRI$
    773761                                        $ERROR INT.TEXT_LINE[intno]$E_OBJ: $FORMAT(_("%1% `%2%\' configured for %3% `%4%\' is higher than %5%"), "intpri", INT.INTPRI[intno], "inhno", INH.INHNO[inhno], "TMIN_INTPRI")$$END$
    774762                                $END$
    775763                        $ELSE$
    776 $                               // inhatr‚ÉTA_NONKERNEL‚ªŽw’肳‚ê‚Ä‚¨‚èCinhno‚ɑΉž
    777 $                               // ‚·‚éintno‚ɑ΂µ‚ÄCFG_INT‚Őݒ肳‚ꂽŠ„ž‚Ý—Dæ“x‚ª
    778 $                               // TMIN_INTPRIˆÈã‚Å‚ ‚éê‡iE_OBJj
     764$                               // inhatrにTA_NONKERNELが指定されており,inhnoに対応
     765$                               // するintnoに対してCFG_INTで設定された割込み優先度が
     766$                               // TMIN_INTPRI以上である場合(E_OBJ)
    779767                                $IF INT.INTPRI[intno] >= TMIN_INTPRI$
    780768                                        $ERROR INT.TEXT_LINE[intno]$E_OBJ: $FORMAT(_("%1% `%2%\' configured for %3% `%4%\' is lower than or equal to %5%"), "intpri", INT.INTPRI[intno], "inhno", INH.INHNO[inhno], "TMIN_INTPRI")$$END$
     
    786774$END$
    787775
    788 $ Š„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“iISRj‚ÉŠÖ‚·‚éƒGƒ‰[ƒ`ƒFƒbƒN‚ÆŠ„ž‚݃nƒ“ƒhƒ‰‚̐¶¬
     776$ 割込みサービスルーチン(ISR)に関するエラーチェックと割込みハンドラの生成
    789777$FOREACH order ISR.ORDER_LIST$
    790 $       // isratr‚ªiTA_NULLj‚Å‚È‚¢ê‡iE_RSATRj
     778$       // isratrが(TA_NULL)でない場合(E_RSATR)
    791779        $IF (ISR.ISRATR[order] & ~ALT(TARGET_ISRATR,0)) != 0$
    792780                $ERROR ISR.TEXT_LINE[order]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of %3% `%4%\' in %5%"), "isratr", ISR.ISRATR[order], "isr", ISR.ISR[order], "ATT_ISR")$$END$
    793781        $END$
    794782
    795 $       // intno‚ªATT_ISR‚ɑ΂·‚銄ž‚ݔԍ†‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
     783$       // intnoがATT_ISRに対する割込み番号として正しくない場合(E_PAR)
    796784        $IF !LENGTH(FIND(INTNO_ATTISR_VALID, ISR.INTNO[order]))$
    797785                $ERROR ISR.TEXT_LINE[order]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "intno", ISR.INTNO[order], "ATT_ISR")$$END$
    798786        $END$
    799787
    800 $       // (TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)‚Å‚È‚¢ê‡iE_PARj
     788$       // (TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)でない場合(E_PAR)
    801789        $IF !(TMIN_ISRPRI <= ISR.ISRPRI[order] && ISR.ISRPRI[order] <= TMAX_ISRPRI)$
    802790                $ERROR ISR.TEXT_LINE[order]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "isrpri", ISR.ISRPRI[order], "ATT_ISR")$$END$
     
    808796        $inhno = INHNO[intno]$
    809797
    810 $       // Š„ž‚ݔԍ†intno‚ɑ΂µ‚Ä“o˜^‚³‚ꂽISR‚̃ŠƒXƒg‚̍쐬
     798$       // 割込み番号intnoに対して登録されたISRのリストの作成
    811799        $isr_order_list = {}$
    812800        $FOREACH order ISR.ORDER_LIST$
     
    817805        $END$
    818806
    819 $       // Š„ž‚ݔԍ†intno‚ɑ΂µ‚Ä“o˜^‚³‚ꂽISR‚ª‘¶Ý‚·‚éê‡
     807$       // 割込み番号intnoに対して登録されたISRが存在する場合
    820808        $IF LENGTH(isr_order_list) > 0$
    821 $               // intno‚ɑΉž‚·‚éinhno‚ɑ΂µ‚ÄDEF_INH‚ª‚ ‚éê‡iE_OBJj
     809$               // intnoに対応するinhnoに対してDEF_INHがある場合(E_OBJ)
    822810                $IF LENGTH(INH.INHNO[inhno])$
    823811                        $ERROR ISR.TEXT_LINE[order_for_error]$E_OBJ: $FORMAT(_("%1% `%2%\' in %3% is duplicated with %4% `%5%\'"), "intno", ISR.INTNO[order_for_error], "ATT_ISR", "inhno", INH.INHNO[inhno])$$END$
    824812                $END$
    825813
    826 $               // intno‚ɑ΂·‚éCFG_INT‚ª‚È‚¢ê‡iE_OBJj
     814$               // intnoに対するCFG_INTがない場合(E_OBJ)
    827815                $IF !LENGTH(INT.INTNO[intno])$
    828816                        $ERROR ISR.TEXT_LINE[order_for_error]$E_OBJ: $FORMAT(_("%1% `%2%\' is not configured with %3%"), "intno", ISR.INTNO[order_for_error], "CFG_INT")$$END$
    829817                $ELSE$
    830 $                       // intno‚ɑ΂µ‚ÄCFG_INT‚Őݒ肳‚ꂽŠ„ž‚Ý—Dæ“x‚ªTMIN_INTPRI
    831 $                       // ‚æ‚è‚à¬‚³‚¢ê‡iE_OBJj
     818$                       // intnoに対してCFG_INTで設定された割込み優先度がTMIN_INTPRI
     819$                       // よりも小さい場合(E_OBJ)
    832820                        $IF INT.INTPRI[intno] < TMIN_INTPRI$
    833821                                $ERROR INT.TEXT_LINE[intno]$E_OBJ: $FORMAT(_("%1% `%2%\' configured for %3% `%4%\' is higher than %5%"), "intpri", INT.INTPRI[intno], "intno", ISR.INTNO[order_for_error], "TMIN_INTPRI")$$END$
     
    841829                $INH.ORDER_LIST = APPEND(INH.ORDER_LIST, inhno)$
    842830
    843 $               // ISR—p‚ÌŠ„ž‚݃nƒ“ƒhƒ‰
     831$               // ISR用の割込みハンドラ
    844832                void$NL$
    845833                _kernel_inthdr_$intno$(void)$NL$
     
    853841                        $TAB$i_begin_int($intno$);$NL$
    854842                $END$
    855 $               // ISR‚ð—Dæ“x‡‚ɌĂяo‚·
     843$               // ISRを優先度順に呼び出す
    856844                $JOINEACH order SORT(isr_order_list, "ISR.ISRPRI") "\tif (i_sense_lock()) {\n\t\ti_unlock_cpu();\n\t}\n\ti_set_ipm(saved_ipm);\n"$
    857845                        $TAB$LOG_ISR_ENTER($intno$);$NL$
     
    866854
    867855$
    868 $ Š„ž‚ÝŠÇ—‹@”\‚Ì‚½‚ß‚Ì•W€“I‚ȏ‰Šú‰»î•ñ‚̐¶¬
    869 $
    870 $ Š„ž‚݃nƒ“ƒhƒ‰‚̏‰Šú‰»‚É•K—v‚ȏî•ñ
     856$ 割込み管理機能のための標準的な初期化情報の生成
     857$
     858$ 割込みハンドラの初期化に必要な情報
    871859$IF !OMIT_INITIALIZE_INTERRUPT || ALT(USE_INHINIB_TABLE,0)$
    872860
    873 $ Š„ž‚݃nƒ“ƒhƒ‰”
     861$ 割込みハンドラ数
    874862#define TNUM_INHNO      $LENGTH(INH.ORDER_LIST)$$NL$
    875863const uint_t _kernel_tnum_inhno = TNUM_INHNO;$NL$
     
    879867$END$
    880868
    881 $ Š„ž‚݃nƒ“ƒhƒ‰‰Šú‰»ƒe[ƒuƒ‹
     869$ 割込みハンドラ初期化テーブル
    882870$IF LENGTH(INH.ORDER_LIST)$
    883871        const INHNO _kernel_inhinib_inhno[TNUM_INHNO] = {
     
    905893$END$
    906894
    907 $ Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚̏‰Šú‰»‚É•K—v‚ȏî•ñ
     895$ 割込み要求ラインの初期化に必要な情報
    908896$IF !OMIT_INITIALIZE_INTERRUPT || ALT(USE_INTINIB_TABLE,0)$
    909897
    910 $ Š„ž‚Ý—v‹ƒ‰ƒCƒ“”
     898$ 割込み要求ライン数
    911899#define TNUM_INTNO      $LENGTH(INT.ORDER_LIST)$$NL$
    912900const uint_t _kernel_tnum_intno = TNUM_INTNO;$NL$
    913901$NL$
    914902
    915 $ Š„ž‚Ý—v‹ƒ‰ƒCƒ“‰Šú‰»ƒe[ƒuƒ‹
     903$ 割込み要求ライン初期化テーブル
    916904$IF LENGTH(INT.ORDER_LIST)$
    917905        const INTNO _kernel_intinib_intno[TNUM_INTNO] = {
     
    941929
    942930$ ---------------------------------------------------------------------
    943 $  CPU—áŠOƒnƒ“ƒhƒ‰
     931$  CPU例外ハンドラ
    944932$ ---------------------------------------------------------------------
    945933/*$NL$
     
    948936$NL$
    949937
    950 $ // EXCNO_DEFEXC_VALID ‚Ì—v‘f‚ª EXCNO_VALID ‚ÉŠÜ‚Ü‚ê‚é‚©‚Ç‚¤‚©‚̃`ƒFƒbƒN
    951 $ // EXCNO_DEFEXC_VALID ‚Í EXCNO_VALID ‚Ì•”•ªW‡‚É‚È‚é‚Í‚¸D
     938$ // EXCNO_DEFEXC_VALID の要素が EXCNO_VALID に含まれるかどうかのチェック
     939$ // EXCNO_DEFEXC_VALID は EXCNO_VALID の部分集合になるはず.
    952940$FOREACH excno EXCNO_DEFEXC_VALID$
    953941        $IF LENGTH(FIND(EXCNO_VALID, excno)) == 0$
     
    957945
    958946
    959 $ CPU—áŠOƒnƒ“ƒhƒ‰‚ÉŠÖ‚·‚éƒGƒ‰[ƒ`ƒFƒbƒN
     947$ CPU例外ハンドラに関するエラーチェック
    960948$i = 0$
    961949$FOREACH excno EXC.ORDER_LIST$
    962 $       // excno‚ªDEF_EXC‚ɑ΂·‚éCPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚Æ‚µ‚Đ³‚µ‚­‚È‚¢ê‡iE_PARj
     950$       // excnoがDEF_EXCに対するCPU例外ハンドラ番号として正しくない場合(E_PAR)
    963951        $IF !LENGTH(FIND(EXCNO_DEFEXC_VALID, EXC.EXCNO[excno]))$
    964952                $ERROR EXC.TEXT_LINE[excno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "excno", EXC.EXCNO[excno], "DEF_EXC")$$END$
    965953        $END$
    966954
    967 $       // excno‚ªDEF_EXC‚É‚æ‚Á‚ĐݒèÏ‚݂̏ꍇiE_OBJj
     955$       // excnoがDEF_EXCによって設定済みの場合(E_OBJ)
    968956        $j = 0$
    969957        $FOREACH excno2 EXC.ORDER_LIST$
     
    974962        $END$
    975963
    976 $       // excatr‚ªiTA_NULLj‚Å‚È‚¢ê‡iE_RSATRj
     964$       // excatrが(TA_NULL)でない場合(E_RSATR)
    977965        $IF (EXC.EXCATR[excno] & ~ALT(TARGET_EXCATR,0)) != 0$
    978966                $ERROR EXC.TEXT_LINE[excno]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of %3% `%4%\' in %5%"), "excatr", EXC.EXCATR[excno], "excno", EXC.EXCNO[excno], "DEF_EXC")$$END$
     
    981969$END$
    982970
    983 $ CPU—áŠOƒnƒ“ƒhƒ‰‚Ì‚½‚ß‚Ì•W€“I‚ȏ‰Šú‰»î•ñ‚̐¶¬
     971$ CPU例外ハンドラのための標準的な初期化情報の生成
    984972$IF !ALT(OMIT_INITIALIZE_EXCEPTION,0)$
    985973
    986 $ CPU—áŠOƒnƒ“ƒhƒ‰”
     974$ CPU例外ハンドラ数
    987975#define TNUM_EXCNO      $LENGTH(EXC.ORDER_LIST)$$NL$
    988976const uint_t _kernel_tnum_excno = TNUM_EXCNO;$NL$
     
    992980$END$
    993981
    994 $ CPU—áŠOƒnƒ“ƒhƒ‰‰Šú‰»ƒe[ƒuƒ‹
     982$ CPU例外ハンドラ初期化テーブル
    995983$IF LENGTH(EXC.ORDER_LIST)$
    996984        const EXCNO _kernel_excinib_excno[TNUM_EXCNO] = {
     
    10211009
    10221010$ ---------------------------------------------------------------------
    1023 ŽüŠúƒnƒ“ƒhƒ‰
     1011周期ハンドラ
    10241012$ ---------------------------------------------------------------------
    10251013
     
    10291017$NL$
    10301018
    1031 $ ŽüŠúƒnƒ“ƒhƒ‰ID”ԍ†‚̍őå’l
     1019$ 周期ハンドラID番号の最大値
    10321020const ID _kernel_tmax_cycid = (TMIN_CYCID + TNUM_CYCID - 1);$NL$
    10331021
    1034 $ ŽüŠúƒnƒ“ƒhƒ‰‚̃^ƒCƒ€ƒCƒxƒ“ƒgIDƒIƒtƒZƒbƒg
    1035 $ ŽüŠúƒnƒ“ƒhƒ‰‚̃^ƒCƒ€ƒCƒxƒ“ƒgID‚Í0‚©‚çŠJŽn
     1022$ 周期ハンドラのタイムイベントIDオフセット
     1023$ 周期ハンドラのタイムイベントIDは0から開始
    10361024const uint_t _kernel_cycevtid_offset = 0;$NL$
    10371025$NL$
    10381026
    1039 $ ƒGƒ“ƒgƒŠ‚ª TMAX_MAXCYC(kernel.h) ŒÂ‚æ‚葽‚¢ê‡‚́CƒGƒ‰[‚Æ‚·‚é
     1027$ エントリが TMAX_MAXCYC(kernel.h) 個より多い場合は,エラーとする
    10401028$IF LENGTH(CYC.ORDER_LIST) > TMAX_MAXCYC$
    10411029        $ERROR$$FORMAT(_("The number of CRE_CYC must be equal to or less than %1%."), +VALUE("TMAX_MAXCYC", TMAX_MAXCYC))$$END$
     
    10431031
    10441032$IF LENGTH(CYC.ORDER_LIST)$
    1045 $       ŽüŠúƒnƒ“ƒhƒ‰‘®«
     1033$       周期ハンドラ属性
    10461034        $CYCACT = 0$
    10471035        $FOREACH cycid CYC.ORDER_LIST$
    1048 $               // ŽüŠúƒnƒ“ƒhƒ‰‘®«(cycatr) ‚ª TA_NULL, TA_STA ‚Ì‚¢‚¸‚ê‚Å‚à‚È‚¢iE_RSATRj
     1036$               // 周期ハンドラ属性(cycatr) が TA_NULL, TA_STA のいずれでもない(E_RSATR)
    10491037                $IF (CYC.CYCATR[cycid] & ~TA_STA) != 0$
    10501038                        $ERROR CYC.TEXT_LINE[cycid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "cycatr", CYC.CYCATR[cycid], cycid, "CRE_CYC")$$END$
     
    10571045        const uint16_t _kernel_cycinib_cycact = $CYCACT$;$NL$
    10581046
    1059 $       ŽüŠúƒnƒ“ƒhƒ‰Šg’£î•ñ
     1047$       周期ハンドラ拡張情報
    10601048        const intptr_t _kernel_cycinib_exinf[TNUM_CYCID] = {
    10611049        $JOINEACH cycid CYC.ORDER_LIST ","$
     
    10641052        };$NL$
    10651053
    1066 $       ŽüŠúƒnƒ“ƒhƒ‰ƒAƒhƒŒƒX
     1054$       周期ハンドラアドレス
    10671055        const CYCHDR _kernel_cycinib_cychdr[TNUM_CYCID] = {
    10681056        $JOINEACH cycid CYC.ORDER_LIST ","$
     
    10711059        };$NL$
    10721060
    1073 $       ŽüŠúƒnƒ“ƒhƒ‰ŽüŠú
     1061$       周期ハンドラ周期
    10741062        const RELTIM _kernel_cycinib_cyctim[TNUM_CYCID] = {
    10751063        $JOINEACH cycid CYC.ORDER_LIST ","$
    1076 $               // cyctim ‚Í 0 ‚æ‚è‘å‚«‚­CTMAX_RELTIM ˆÈ‰º‚Å‚ ‚éD(E_PAR)
     1064$               // cyctim は 0 より大きく,TMAX_RELTIM 以下である.(E_PAR)
    10771065                $IF CYC.CYCTIM[cycid] <= 0 || TMAX_RELTIM < CYC.CYCTIM[cycid] $
    10781066                        $ERROR CYC.TEXT_LINE[cycid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "cyctim", CYC.CYCTIM[cycid], cycid, "CRE_CYC")$$END$
     
    10831071        };$NL$
    10841072
    1085 $       ŽüŠúƒnƒ“ƒhƒ‰ˆÊ‘Š
     1073$       周期ハンドラ位相
    10861074        const RELTIM _kernel_cycinib_cycphs[TNUM_CYCID] = {
    10871075        $JOINEACH cycid CYC.ORDER_LIST ","$
    1088 $               // cycphs ‚Í 0 ˆÈãCTMAX_RELTIM ˆÈ‰º‚Å‚ ‚éD(E_PAR)
     1076$               // cycphs は 0 以上,TMAX_RELTIM 以下である.(E_PAR)
    10891077                $IF CYC.CYCPHS[cycid] < 0 || TMAX_RELTIM < CYC.CYCPHS[cycid] $
    10901078                        $ERROR CYC.TEXT_LINE[cycid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "cycphs", CYC.CYCPHS[cycid], cycid, "CRE_CYC")$$END$
    10911079                $END$
    10921080
    1093 $               // ˆÊ‘Š‚ª0‚©‚C‘®«‚ª TA_STA ‚̏ꍇ‚ÍŒx
     1081$               // 位相が0かつ,属性が TA_STA の場合は警告
    10941082                $IF CYC.CYCPHS[cycid] == 0 && (CYC.CYCATR[cycid] & TA_STA) != 0$
    10951083                        $WARNING CYC.TEXT_LINE[cycid]$$FORMAT(_("%1% is not recommended when %2% is set to %3% in %4%"), "cycphs==0", "TA_STA", "cycatr", "CRE_CYC")$$END$
     
    11011089        $NL$
    11021090
    1103 $       ŽüŠúƒnƒ“ƒhƒ‰‚ÌŽŸ‰ñ‹N“®Žž
     1091$       周期ハンドラの次回起動時刻
    11041092EVTTIM _kernel_cyccb_evttim[TNUM_CYCID];$NL$
    11051093
     
    11131101$END$
    11141102
    1115 $       ŽüŠúƒnƒ“ƒhƒ‰“®ìó‘Ô
     1103$       周期ハンドラ動作状態
    11161104uint16_t _kernel_cyccb_cycact;$NL$
    11171105
     
    11201108
    11211109$ ---------------------------------------------------------------------
    1122 ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰
     1110アラームハンドラ
    11231111$ ---------------------------------------------------------------------
    11241112
     
    11281116$NL$
    11291117
    1130 $ ƒGƒ“ƒgƒŠ‚ª TMAX_MAXALM(kernel.h) ŒÂ‚æ‚葽‚¢ê‡‚́CƒGƒ‰[‚Æ‚·‚é
     1118$ エントリが TMAX_MAXALM(kernel.h) 個より多い場合は,エラーとする
    11311119$IF LENGTH(ALM.ORDER_LIST) > TMAX_MAXALM$
    11321120        $ERROR$$FORMAT(_("The number of CRE_ALM must be equal to or less than %1%."), +VALUE("TMAX_MAXALM",TMAX_MAXALM))$$END$
    11331121$END$
    11341122
    1135 $ ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚̍őåID’l
     1123$ アラームハンドラの最大ID値
    11361124const ID _kernel_tmax_almid = (TMIN_ALMID + TNUM_ALMID - 1);$NL$
    11371125
    1138 $ ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚̃^ƒCƒ€ƒCƒxƒ“ƒgIDƒIƒtƒZƒbƒg
     1126$ アラームハンドラのタイムイベントIDオフセット
    11391127const uint_t _kernel_almevtid_offset = $LENGTH(CYC.ORDER_LIST)$;$NL$
    11401128$NL$
    11411129
    11421130$FOREACH almid ALM.ORDER_LIST$
    1143 $       // almatr‚ªiTA_NULLj‚Å‚È‚¢ê‡iE_RSATRj
     1131$       // almatrが(TA_NULL)でない場合(E_RSATR)
    11441132        $IF ALM.ALMATR[almid] != 0$
    11451133                $ERROR ALM.TEXT_LINE[almid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "almatr", ALM.ALMATR[almid], almid, "CRE_ALM")$$END$
     
    11481136
    11491137$IF LENGTH(ALM.ORDER_LIST)$
    1150 $       ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰æ“ª”Ô’n
     1138$       アラームハンドラ先頭番地
    11511139        const ALMHDR _kernel_alminib_almhdr[TNUM_ALMID] = {
    11521140        $JOINEACH almid ALM.ORDER_LIST ","$
     
    11551143        };$NL$
    11561144
    1157 $       ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰Šg’£î•ñ
     1145$       アラームハンドラ拡張情報
    11581146        const intptr_t _kernel_alminib_exinf[TNUM_ALMID] = {
    11591147        $JOINEACH almid ALM.ORDER_LIST ","$
     
    11681156$END$
    11691157
    1170 $ ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰ó‘Ô
     1158$ アラームハンドラ状態
    11711159uint16_t _kernel_almcb_almact;$NL$
    11721160$NL$
     
    11741162
    11751163$ ---------------------------------------------------------------------
    1176 ƒ^ƒCƒ€ƒCƒxƒ“ƒgŠÇ—
     1164タイムイベント管理
    11771165$ ---------------------------------------------------------------------
    11781166
     
    11871175$NL$
    11881176
    1189 $ ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚̃TƒCƒY
     1177$ タイムイベントブロックのサイズ
    11901178const uint_t _kernel_tnum_tmevt_queue = TNUM_TMEVT;$NL$$NL$
    11911179
    11921180$IF TNUM_TMEVT != 0$
    1193 $       ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒLƒ
    1194 [
     1181$       タイムイベントキュー
    11951182        QUEUE _kernel_tmevt_queue[TNUM_TMEVT+1];$NL$
    1196 $       ƒ^ƒCƒ€ƒCƒxƒ“ƒgŽžŠÔ
     1183$       タイムイベント時間
    11971184        EVTTIM _kernel_tmevt_time[TNUM_TMEVT];$NL$
    1198 $       ƒ^ƒCƒ€ƒCƒxƒ“ƒg‚̃R[ƒ‹ƒoƒbƒN
     1185$       タイムイベントのコールバック
    11991186        CBACK _kernel_tmevt_callback[TNUM_TMEVT];$NL$
    1200 $       ƒ^ƒCƒ€ƒCƒxƒ“ƒgƒR[ƒ‹ƒoƒbƒN‚̈ø”
     1187$       タイムイベントコールバックの引数
    12011188        uintptr_t _kernel_tmevt_arg[TNUM_TMEVT];$NL$
    12021189        $NL$$NL$
     
    12101197
    12111198$ ---------------------------------------------------------------------
    1212 ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—pƒXƒ^ƒbƒN—̈æ
     1199非タスクコンテキスト用スタック領域
    12131200$ ---------------------------------------------------------------------
    12141201/*$NL$
     
    12161203$SPC$*/$NL$$NL$
    12171204
    1218 $ // •Ï”’è‹`
    1219 $ // ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—pƒXƒ^ƒbƒN—̈æ‚̃TƒCƒY
     1205$ // 変数定義
     1206$ // 非タスクコンテキスト用スタック領域のサイズ
    12201207$interrupt_context_stksz = 0$
    12211208
    1222 $ // DEF_ICS ‚̃Gƒ“ƒgƒŠ‚ª‘¶Ý‚·‚é‚©?
     1209$ // DEF_ICS のエントリが存在するか?
    12231210$IF !LENGTH(ICS.ORDER_LIST)$
    1224 $       // ‚È‚¢ê‡DƒTƒCƒY‚ÍŠù’è’l (DEFAULT_ISTKSZ) ‚ðŽg‚¤
     1211$       // ない場合.サイズは既定値 (DEFAULT_ISTKSZ) を使う
    12251212        #define TOPPERS_ISTKSZ          DEFAULT_ISTKSZ$NL$$NL$
    12261213        $interrupt_context_stksz = DEFAULT_ISTKSZ$
    12271214$ELSE$
    1228 $       // DEF_ICS ‚̃Gƒ“ƒgƒŠ‚ª‚ ‚éê‡
    1229 
    1230 $
    1231 $       // ƒGƒ‰[ƒ`ƒFƒbƒN
    1232 $
    1233 $       // Ã“IAPIuDEF_ICSv‚ª•¡”‚ ‚éiE_OBJj
     1215$       // DEF_ICS のエントリがある場合
     1216
     1217$
     1218$       // エラーチェック
     1219$
     1220$       // 静的API「DEF_ICS」が複数ある(E_OBJ)
    12341221        $IF LENGTH(ICS.ORDER_LIST) > 1$
    12351222                $ERROR$E_OBJ: $FORMAT(_("too many %1%"), "DEF_ICS")$$END$
    12361223        $END$
    1237 $       // DEF_ICS ‚Å0‚ðŽw’肵‚½ê‡(E_PAR)
     1224$       // DEF_ICS で0を指定した場合(E_PAR)
    12381225        $IF ICS.ISTKSZ[1] == 0$
    12391226                $ERROR ICS.TEXT_LINE[1]$E_PAR: $FORMAT(_("%1% in %2% is 0"), "istksz", "DEF_ICS")$$END$
    12401227        $END$
    1241 $       // í‚É NULL ‚Å‚ ‚éD(E_PAR)
     1228$       // 常に NULL である.(E_PAR)
    12421229        $IF !EQ(ICS.ISTK[1], "NULL")$
    12431230                $ERROR ICS.TEXT_LINE[1]$E_PAR: $FORMAT(("'%1%' of %2% must be NULL."), "istk", "DEF_ICS")$$END$
     
    12511238
    12521239$ ---------------------------------------------------------------------
    1253 $  ‹¤—LƒXƒ^ƒbƒN—̈æ
    1254 $      SSP‚Å‚Í‚·‚ׂĂ̏ˆ—’PˆÊ‚̃Xƒ^ƒbƒN‚ð‹¤—L‚·‚邽‚߁C
    1255 $      ‚±‚±‚ŃVƒXƒeƒ€‘S‘̂̃Xƒ^ƒbƒN—̈æ‚ðŠm•Û‚·‚éD
    1256 $ ---------------------------------------------------------------------
    1257 
    1258 $
    1259 $ ‹¤—LƒXƒ^ƒbƒN‚̃Rƒ“ƒtƒBƒMƒ
    1260 ƒŒ[ƒVƒ‡ƒ“‚ɐ¬Œ÷‚µ‚½‚©‚Ç‚¤‚©
    1261 $
    1262 $ DEF_STK ˆ—’†‚ɃGƒ‰[‚ª”­¶‚µ‚½ê‡C‚±‚̕ϐ”‚ª0‚É‚È‚éD
    1263 $ DEF_STK ˆ—’†‚ɃGƒ‰[‚ª”­¶‚µ‚½‚©‚Ç‚¤‚©‚ð”»’f‚µ‚Ä
    1264 $ “Á’菈—‚ÌŽÀs‚ðƒuƒƒbƒN‚·‚邽‚ß‚ÉŽg—p‚·‚éD
     1240$  共有スタック領域
     1241$      SSPではすべての処理単位のスタックを共有するため,
     1242$      ここでシステム全体のスタック領域を確保する.
     1243$ ---------------------------------------------------------------------
     1244
     1245$
     1246$ 共有スタックのコンフィギュレーションに成功したかどうか
     1247$
     1248$ DEF_STK 処理中にエラーが発生した場合,この変数が0になる.
     1249$ DEF_STK 処理中にエラーが発生したかどうかを判断して
     1250$ 特定処理の実行をブロックするために使用する.
    12651251$
    12661252$configurated_defstk_successfully = 1$
     
    12711257$NL$
    12721258
    1273 $ // •Ï”’è‹`
    1274 $ // Š„‚è“–‚Ä‚ç‚ꂽ‹¤—LƒXƒ^ƒbƒN—̈æ‚̃TƒCƒY
     1259$ // 変数定義
     1260$ // 割り当てられた共有スタック領域のサイズ
    12751261$allocated_stack_size = 0$
    12761262
    1277 $ // DEF_STK ‚̃Gƒ“ƒgƒŠ‚ª‘¶Ý‚·‚é‚©?
     1263$ // DEF_STK のエントリが存在するか?
    12781264$IF !LENGTH(STK.ORDER_LIST)$
    1279 $       // (1) DEF_STK ‚̃Gƒ“ƒgƒŠ‚ª‚È‚¢ê‡
     1265$       // (1) DEF_STK のエントリがない場合
    12801266        static STK_T                    _kernel_stack[COUNT_STK_T(TOPPERS_TSTKSZ+TOPPERS_ISTKSZ)];$NL$
    12811267        #define TOPPERS_STK             _kernel_stack$NL$
     
    12851271        $allocated_stack_size = max_tsk_stksz + interrupt_context_stksz$
    12861272$ELSE$
    1287 $       // (2) DEF_STK ‚̃Gƒ“ƒgƒŠ‚ª‚ ‚éê‡
    1288 
    1289 $       // ƒGƒ‰[ƒ`ƒFƒbƒN
    1290 $       // Ã“IAPIuDEF_STKv‚ª•¡”‚ ‚éiE_OBJj
     1273$       // (2) DEF_STK のエントリがある場合
     1274
     1275$       // エラーチェック
     1276$       // 静的API「DEF_STK」が複数ある(E_OBJ)
    12911277        $IF LENGTH(STK.ORDER_LIST) > 1$
    12921278                $configurated_defstk_successfully = 0$
    12931279                $ERROR$E_OBJ: $FORMAT(_("too many %1%"), "DEF_STK")$$END$
    12941280        $END$
    1295 $       // DEF_STK ‚Ì stksz ‚Å 0 ‚ðŽw’肵‚½ê‡(E_PAR)
     1281$       // DEF_STK の stksz で 0 を指定した場合(E_PAR)
    12961282        $IF STK.STKSZ[1] == 0$
    12971283                $configurated_defstk_successfully = 0$
     
    13001286
    13011287        $IF EQ(STK.STK[1], "NULL")$
    1302 $               // stk ‚ª NULL ‚̏ꍇCƒXƒ^ƒbƒN—̈æ‚ðŽ©“®Š„•t‚¯
     1288$               // stk が NULL の場合,スタック領域を自動割付け
    13031289                static STK_T                    _kernel_stack[COUNT_STK_T($STK.STKSZ[1]$)];$NL$
    13041290                #define TOPPERS_STK             _kernel_stack$NL$
    13051291                #define TOPPERS_STKSZ           ROUND_STK_T($STK.STKSZ[1]$)$NL$
    13061292        $ELSE$
    1307 $               // stk ‚ª NULL ˆÈŠO‚̏ꍇiƒAƒvƒŠ‘¤‚ŃXƒ^ƒbƒN—̈æ‚ð—pˆÓ‚·‚éê‡j
    1308 
    1309 $               // stksz‚ªƒ^[ƒQƒbƒg–ˆ‚É’è‚Ü‚éƒAƒ‰ƒCƒƒ“ƒgƒTƒCƒY‚Ì”{”‚ɃAƒ‰ƒCƒƒ“ƒg‚³‚ê‚Ä‚¢‚È‚¢ê‡iE_PARj
     1293$               // stk が NULL 以外の場合(アプリ側でスタック領域を用意する場合)
     1294
     1295$               // stkszがターゲット毎に定まるアライメントサイズの倍数にアライメントされていない場合(E_PAR)
    13101296                $IF LENGTH(CHECK_STKSZ_ALIGN) && (STK.STKSZ[1] & (CHECK_STKSZ_ALIGN - 1))$
    13111297                        $configurated_defstk_successfully = 0$
     
    13211307$NL$
    13221308
    1323 $ ‹¤—LƒXƒ^ƒbƒN—p‚̃Xƒ^ƒbƒN—̈æ
     1309$ 共有スタック用のスタック領域
    13241310const SIZE              _kernel_stksz = TOPPERS_STKSZ;$NL$
    13251311STK_T *const    _kernel_stk = TOPPERS_STK;$NL$
     
    13311317
    13321318$
    1333 $ // —Dæ“xŠ„‚è“–‚Ä‚¨‚æ‚уXƒ^ƒbƒNÝ’è‚ÉŠÖ‚·‚錋‰Ê‚ð•W€o—Í‚Ö•\Ž¦
     1319$ // 優先度割り当ておよびスタック設定に関する結果を標準出力へ表示
    13341320$
    13351321$IF configurated_defepr_successfully == 1 && configurated_defstk_successfully == 1$
     
    13471333        $TAB$Specified interrupt stack size = $interrupt_context_stksz$(value=$FORMAT("%d",+interrupt_context_stksz)$)$NL$
    13481334        $TAB$Allocated total stack size = $allocated_stack_size$(value=$FORMAT("%d",+allocated_stack_size)$)$NL$
    1349 $       // ƒTƒCƒY‚̃`ƒFƒbƒNDƒXƒ^ƒbƒNƒTƒCƒY‚̐„’è’l‚ªŽÀÛ‚ÉŠ„“–‚Ä‚ç‚ꂽƒTƒCƒY‚æ‚è‘å‚«‚¢ê‡CŒx‚·‚éD
     1335$       // サイズのチェック.スタックサイズの推定値が実際に割当てられたサイズより大きい場合,警告する.
    13501336        $IF (max_tsk_stksz+interrupt_context_stksz) > allocated_stack_size$
    13511337                $TAB$!!!WARNING!!!: Estimated stack size is more than the allocated stack size.$NL$
     
    13551341$END$
    13561342$
    1357 $ // o—͐æ‚ðŒ³‚É–ß‚µ‚Ä‚¨‚­
     1343$ // 出力先を元に戻しておく
    13581344$
    13591345$FILE "kernel_cfg.c"$
     
    13611347
    13621348$ ---------------------------------------------------------------------
    1363 $  Šeƒ‚ƒWƒ
    1364 [ƒ‹‚̏‰Šú‰»ŠÖ”
     1349$  各モジュールの初期化関数
    13651350$ ---------------------------------------------------------------------
    13661351/*$NL$
     
    13931378
    13941379$ ---------------------------------------------------------------------
    1395 ‰Šú‰»ƒ‹[ƒ`ƒ“‚ÌŽÀsŠÖ”
     1380初期化ルーチンの実行関数
    13961381$ ---------------------------------------------------------------------
    13971382/*$NL$
     
    14031388{$NL$
    14041389$FOREACH order INI.ORDER_LIST$
    1405 $       // iniatr‚ªiTA_NULLj‚Å‚È‚¢ê‡iE_RSATRj
     1390$       // iniatrが(TA_NULL)でない場合(E_RSATR)
    14061391        $IF INI.INIATR[order] != 0$
    14071392                $ERROR INI.TEXT_LINE[order]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of %3% `%4%\' in %5%"), "iniatr", INI.INIATR[order], "inirtn", INI.INIRTN[order], "ATT_INI")$$END$
     
    14131398
    14141399$ ---------------------------------------------------------------------
    1415 I—¹ˆ—ƒ‹[ƒ`ƒ“‚ÌŽÀsŠÖ”
     1400終了処理ルーチンの実行関数
    14161401$ ---------------------------------------------------------------------
    14171402/*$NL$
     
    14231408{$NL$
    14241409$FOREACH rorder TER.RORDER_LIST$
    1425 $       // teratr‚ªiTA_NULLj‚Å‚È‚¢ê‡iE_RSATRj
     1410$       // teratrが(TA_NULL)でない場合(E_RSATR)
    14261411        $IF TER.TERATR[rorder] != 0$
    14271412                $ERROR TER.TEXT_LINE[rorder]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of %3% `%4%\' in %5%"), "teratr", TER.TERATR[rorder], "terrtn", TER.TERRTN[rorder], "ATT_TER")$$END$
  • uKadecot/trunk/ssp/kernel/kernel_impl.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1010 *             Nagoya Municipal Industrial Research Institute, JAPAN
    1111 *
    12  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    13  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏE
    14  *  Ä”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    15  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ìŒ 
    16  *      •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[ƒX
    17  *      ƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    18  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    19  *      ‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    20 ƒƒ“ƒgi—˜—pŽÒƒ}
    21  *      ƒjƒ
    22 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•Û
    23  *      Ø‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    24  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg—p
    25  *      ‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹ŠQ
    33  *      ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD‚Ü‚½C
    34  *      –{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝—R‚ÉŠî‚Ã
    35  *      ‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     12 *  上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
     14 *  再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
     16 *      表示,この利用条件および下記の無保証規定が,そのままの形でソース
     17 *      コード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
     19 *      できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
     20 *      ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
     21 *      証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
     23 *      できない形で再配布する場合には,次のいずれかの条件を満たすこと.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     25 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
     27 *        告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
     29 *      からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
     30 *      本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
     31 *      く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3632 *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨‚æ
    38  *  ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I‚ɑ΂·
    39  *  ‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p
    40  *  ‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚ð•‰
    41  *  ‚í‚È‚¢D
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
     34 *  びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
     35 *  る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
     36 *  により直接的または間接的に生じたいかなる損害に関しても,その責任を負
     37 *  わない.
    4238 *
    4339 */
    4440
    4541/*
    46  *              TOPPERS/SSPƒJ[ƒlƒ‹“à•”Œü‚¯•W€ƒwƒbƒ_ƒtƒ@ƒCƒ‹
     42 *              TOPPERS/SSPカーネル内部向け標準ヘッダファイル
    4743 *
    48  *  ‚±‚̃wƒbƒ_ƒtƒ@ƒCƒ‹‚́CƒJ[ƒlƒ‹‚ð\¬‚·‚éƒvƒƒOƒ‰ƒ€‚̃\[ƒXƒtƒ@ƒCƒ‹
    49  *  ‚Å•K‚¸ƒCƒ“ƒNƒ‹[ƒh‚·‚é‚ׂ«•W€ƒwƒbƒ_ƒtƒ@ƒCƒ‹‚Å‚ ‚éD
     44 *  このヘッダファイルは,カーネルを構成するプログラムのソースファイル
     45 *  で必ずインクルードするべき標準ヘッダファイルである.
    5046 *
    51  *  ƒAƒZƒ“ƒuƒŠŒ¾Œê‚̃\[ƒXƒtƒ@ƒCƒ‹‚©‚炱‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚鎞
    52  *  ‚́CTOPPERS_MACRO_ONLY‚ð’è‹`‚µ‚Ä‚¨‚­D‚±‚ê‚É‚æ‚èCƒ}ƒNƒ’è‹`ˆÈŠO‚ð
    53  *  œ‚­‚悤‚É‚È‚Á‚Ä‚¢‚éD
     47 *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
     48 *  は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を
     49 *  除くようになっている.
    5450 */
    5551
     
    5854
    5955/*
    60  *  ƒJ[ƒlƒ‹‚Ì“à•”Ž¯•Ê–¼‚̃Šƒl[ƒ€
     56 *  カーネルの内部識別名のリネーム
    6157 */
    6258#include "kernel_rename.h"
    6359
    6460/*
    65  *  ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Æ‹¤’ʂ̃wƒbƒ_ƒtƒ@ƒCƒ‹
     61 *  アプリケーションと共通のヘッダファイル
    6662 */
    6763#include <kernel.h>
    6864
    6965/*
    70  *  ƒVƒXƒeƒ€ƒƒO‹@”\‚Ì‚½‚ß‚Ì’è‹`
     66 *  システムログ機能のための定義
    7167 */
    7268#include <t_syslog.h>
    7369
    7470/*
    75  *  Œ^ƒLƒƒƒXƒg‚ðs‚¤ƒ}ƒNƒ‚Ì’è‹`
     71 *  型キャストを行うマクロの定義
    7672 */
    7773#ifndef CAST
     
    8076
    8177/*
    82  *  ƒ^[ƒQƒbƒgˆË‘¶î•ñ‚Ì’è‹`
     78 *  ターゲット依存情報の定義
    8379 */
    8480#include "target_config.h"
    8581
    8682/*
    87  *  ‚·‚ׂĂ̊֐”‚ðƒRƒ“ƒpƒCƒ‹‚·‚邽‚ß‚Ì’è‹`
     83 *  すべての関数をコンパイルするための定義
    8884 */
    8985#ifdef ALLFUNC
     
    9288
    9389/*
    94  *  ƒrƒbƒgƒtƒB[ƒ‹ƒh‚Å‚Ì•„†–³‚µ®”Œ^
     90 *  ビットフィールドでの符号無し整数型
    9591 *
    96  *  8ƒrƒbƒgˆÈ‰º‚Ì•‚̃rƒbƒgƒtƒB[ƒ‹ƒh‚ŁC•„†–³‚µ®”’l‚ð•ÛŽ‚µ‚½‚¢ê‡
    97  *  ‚É—p‚¢‚é‚ׂ«ƒf[ƒ^Œ^DANSI C‚ł́CƒrƒbƒgƒtƒB[ƒ‹ƒh‚̃f[ƒ^Œ^‚É‚Í
    98  *  int‚Æunsigned int‚µ‚©‹–‚³‚ê‚È‚¢‚½‚߁CƒfƒtƒHƒ‹ƒg‚Ì’è‹`‚Íunsigned
    99  *  int‚Æ‚µ‚Ä‚¢‚邪Cƒ^[ƒQƒbƒg‚¨‚æ‚уc[ƒ‹ˆË‘¶‚ŁCunsigned char‚Ü‚½‚Í
    100  *  unsigned short‚É’è‹`‚µ‚½•û‚ªŒø—¦‚ª—Ç‚¢ê‡‚ª‚ ‚éD
     92 *  8ビット以下の幅のビットフィールドで,符号無し整数値を保持したい場合
     93 *  に用いるべきデータ型.ANSI Cでは,ビットフィールドのデータ型には
     94 *  intとunsigned intしか許されないため,デフォルトの定義はunsigned
     95 *  intとしているが,ターゲットおよびツール依存で,unsigned charまたは
     96 *  unsigned shortに定義した方が効率が良い場合がある.
    10197 */
    10298#ifndef BIT_FIELD_UINT
     
    105101
    106102/*
    107  *  ƒrƒbƒgƒtƒB[ƒ‹ƒh‚ł̃u[ƒ‹Œ^
     103 *  ビットフィールドでのブール型
    108104 *
    109  *  1ƒrƒbƒg•‚̃rƒbƒgƒtƒB[ƒ‹ƒh‚ŁCƒu[ƒ‹’l‚ð•ÛŽ‚µ‚½‚¢ê‡‚É—p‚¢‚é‚ׂ«
    110  *  ƒf[ƒ^Œ^DƒfƒtƒHƒ‹ƒg‚Å‚ÍBIT_FIELD_UINT‚Æ“¯ˆê‚É’è‹`‚µ‚Ä‚¢‚邪Cƒu[
    111  *  ƒ‹’l‚ð•ÛŽ‚·‚邱‚Ƃ𖾎¦‚·‚邽‚ß‚É•Ê‚Ì–¼Ì‚Æ‚µ‚Ä‚¢‚éD
     105 *  1ビット幅のビットフィールドで,ブール値を保持したい場合に用いるべき
     106 *  データ型.デフォルトではBIT_FIELD_UINTと同一に定義しているが,ブー
     107 *  ル値を保持することを明示するために別の名称としている.
    112108 */
    113109#ifndef BIT_FIELD_BOOL
     
    116112
    117113/*
    118  *  ƒIƒuƒWƒFƒNƒgID‚̍ŏ¬’l‚Ì’è‹`
     114 *  オブジェクトIDの最小値の定義
    119115 */
    120 #define TMIN_TSKID              1               /* ƒ^ƒXƒNID‚̍ŏ¬’l */
    121 #define TMIN_FLGID              1               /* ƒCƒxƒ“ƒgƒtƒ‰ƒOID‚̍ŏ¬’l */
    122 #define TMIN_DTQID              1               /* ƒf[ƒ^ƒLƒ
    123 [ID‚̍ŏ¬’l */
    124 #define TMIN_CYCID              1               /* ŽüŠúƒnƒ“ƒhƒ‰ID‚̍ŏ¬’l */
    125 #define TMIN_ALMID              1               /* ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰ID‚̍ŏ¬’l */
     116#define TMIN_TSKID              1               /* タスクIDの最小値 */
     117#define TMIN_FLGID              1               /* イベントフラグIDの最小値 */
     118#define TMIN_DTQID              1               /* データキューIDの最小値 */
     119#define TMIN_CYCID              1               /* 周期ハンドラIDの最小値 */
     120#define TMIN_ALMID              1               /* アラームハンドラIDの最小値 */
    126121
    127122/*
    128  *  —Dæ“x‚Ì’iŠK”‚Ì’è‹`
     123 *  優先度の段階数の定義
    129124 */
    130125#define TNUM_TPRI               (TMAX_TPRI - TMIN_TPRI + 1)
     
    132127
    133128/*
    134  *  ƒwƒbƒ_ƒtƒ@ƒCƒ‹‚ðŽ‚½‚È‚¢ƒ‚ƒWƒ
    135 [ƒ‹‚̊֐”E•Ï”‚̐錾
     129 *  ヘッダファイルを持たないモジュールの関数・変数の宣言
    136130 */
    137131#ifndef TOPPERS_MACRO_ONLY
    138132
    139133/*
    140  *  Šeƒ‚ƒWƒ
    141 [ƒ‹‚̏‰Šú‰»ikernel_cfg.cj
     134 *  各モジュールの初期化(kernel_cfg.c)
    142135 */
    143136extern void     initialize_object(void);
    144137
    145138/*
    146  *  ‰Šú‰»ƒ‹[ƒ`ƒ“‚ÌŽÀsikernel_cfg.cj
     139 *  初期化ルーチンの実行(kernel_cfg.c)
    147140 */
    148141extern void     call_inirtn(void);
    149142
    150143/*
    151  *  I—¹ˆ—ƒ‹[ƒ`ƒ“‚ÌŽÀsikernel_cfg.cj
     144 *  終了処理ルーチンの実行(kernel_cfg.c)
    152145 */
    153146extern void     call_terrtn(void);
    154147
    155148/*
    156  *  ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p‚̃Xƒ^ƒbƒN—̈æikernel_cfg.cj
     149 *  非タスクコンテキスト用のスタック領域(kernel_cfg.c)
    157150 */
    158 extern const SIZE       istksz;         /* ƒXƒ^ƒbƒN—̈æ‚̃TƒCƒYiŠÛ‚ß‚½’lj */
    159 extern STK_T *const     istk;           /* ƒXƒ^ƒbƒN—̈æ‚̐擪”Ô’n */
     151extern const SIZE       istksz;         /* スタック領域のサイズ(丸めた値) */
     152extern STK_T *const     istk;           /* スタック領域の先頭番地 */
    160153#ifdef TOPPRES_ISTKPT
    161 extern STK_T *const     istkpt;         /* ƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^‚̏‰Šú’l */
     154extern STK_T *const     istkpt;         /* スタックポインタの初期値 */
    162155#endif /* TOPPERS_ISTKPT */
    163156
    164157/*
    165  *  ƒJ[ƒlƒ‹“®ìó‘Ôƒtƒ‰ƒOistartup.cj
     158 *  カーネル動作状態フラグ(startup.c)
    166159 */
    167160extern bool_t   kerflg;
    168161
    169162/*
    170  *  ƒJ[ƒlƒ‹‚Ì‹N“®istartup.cj
     163 *  カーネルの起動(startup.c)
    171164 */
    172165extern void     sta_ker(void);
    173166
    174167/*
    175  *  ƒJ[ƒlƒ‹‚̏I—¹ˆ—istartup.cj
     168 *  カーネルの終了処理(startup.c)
    176169 */
    177170extern void     exit_kernel(void);
  • uKadecot/trunk/ssp/kernel/kernel_int.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2011 by Meika Sugimoto
    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
    4642/*
    47  *              kernel_cfg.ci‚¨‚æ‚Ñcfg1_out.cj—pƒwƒbƒ_ƒtƒ@ƒCƒ‹
     43 *              kernel_cfg.c(およびcfg1_out.c)用ヘッダファイル
    4844 */
    4945
     
    5248
    5349/*
    54  *  ƒJ[ƒlƒ‹•W€ƒwƒbƒ_ƒtƒ@ƒCƒ‹
     50 *  カーネル標準ヘッダファイル
    5551 */
    5652#include "kernel_impl.h"
    5753
    5854/*
    59  *  ƒJ[ƒlƒ‹‚ÌŠeƒwƒbƒ_ƒtƒ@ƒCƒ‹
     55 *  カーネルの各ヘッダファイル
    6056 */
    6157#include "task.h"
     
    6460
    6561/*
    66  *  Šg’£ƒpƒbƒP[ƒW‚̃wƒbƒ_ƒtƒ@ƒCƒ‹
     62 *  拡張パッケージのヘッダファイル
    6763 */
    6864#include "extension/time_event.h"
     
    7369
    7470/*
    75  *  ƒŠƒl[ƒ€‚µ‚½ƒVƒ“ƒ{ƒ‹‚ðŒ³‚É–ß‚·‚½‚߂̃wƒbƒ_ƒtƒ@ƒCƒ‹
     71 *  リネームしたシンボルを元に戻すためのヘッダファイル
    7672 */
    7773#include "kernel_unrename.h"
  • uKadecot/trunk/ssp/kernel/kernel_rename.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/ssp/kernel/kernel_unrename.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/ssp/kernel/ssp_kernel_check.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99$              Nagoya Municipal Industrial Research Institute, 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‰ü•Ï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 ŠÖ”‚̐擪”Ô’n‚̃`ƒFƒbƒN
     41関数の先頭番地のチェック
    4642$
    4743$IF LENGTH(CHECK_FUNC_ALIGN) || LENGTH(CHECK_FUNC_NONNULL)$
    48 $       // ƒ^ƒXƒN‚ƃ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚̐擪”Ô’n‚̃`ƒFƒbƒN
     44$       // タスクとタスク例外処理ルーチンの先頭番地のチェック
    4945        $tinib = SYMBOL("_kernel_tinib_table")$
    5046        $FOREACH tskid TSK.ID_LIST$
     
    7268
    7369$
    74 ƒXƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
     70スタック領域の先頭番地のチェック
    7571$
    7672$IF LENGTH(CHECK_STACK_ALIGN) || LENGTH(CHECK_STACK_NONNULL)$
    77 $       // ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p‚̃Xƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
     73$       // 非タスクコンテキスト用のスタック領域の先頭番地のチェック
    7874        $istk = PEEK(SYMBOL("_kernel_istk"), sizeof_void_ptr)$
    7975        $IF LENGTH(CHECK_STACK_ALIGN) && (istk & (CHECK_STACK_ALIGN - 1))$
  • uKadecot/trunk/ssp/kernel/startup.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2010-2011 by Meika Sugimoto
    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
    4642/*
    47  *              ƒJ[ƒlƒ‹‚̏‰Šú‰»‚ƏI—¹ˆ—
     43 *              カーネルの初期化と終了処理
    4844 */
    4945
     
    5450
    5551/*
    56  *  ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
     52 *  トレースログマクロのデフォルト定義
    5753 */
    5854#ifndef LOG_KER_ENTER
     
    7672
    7773/*
    78  *  ƒJ[ƒlƒ‹“®ìó‘Ôƒtƒ‰ƒO
     74 *  カーネル動作状態フラグ
    7975 *
    80  *  ƒXƒ^[ƒgƒAƒbƒvƒ‹[ƒ`ƒ“‚ŁCfalsei0j‚ɏ‰Šú‰»‚³‚ê‚邱‚Æ‚ðŠú‘Ò‚µ‚Ä
    81  *  ‚¢‚éD
     76 *  スタートアップルーチンで,false(=0)に初期化されることを期待して
     77 *  いる.
    8278 */
    8379bool_t  kerflg = false;
    8480
    8581/*
    86  *  ƒJ[ƒlƒ‹‚Ì‹N“®
    87  *    NMI‚ðœ‚­‘S‚Ä‚ÌŠ„ž‚Ý‚ªƒ}ƒXƒN‚³‚ꂽó‘Ô(‘SŠ„ž‚݃ƒbƒNó‘Ô‚É‘Š“–)‚ŌĂяo‚³‚ê‚éD
     82 *  カーネルの起動
     83 *    NMIを除く全ての割込みがマスクされた状態(全割込みロック状態に相当)で呼び出される.
    8884 */
    8985void
     
    9793       
    9894        /*
    99          *  ƒJ[ƒlƒ‹‚Ì“®ì‚ðŠJŽn‚·‚éD
     95         *  カーネルの動作を開始する.
    10096         */     
    10197        kerflg = true;
    10298       
    103         /* ƒfƒBƒXƒpƒbƒ`ƒƒ‚ð‹N“®‚µCƒ^ƒXƒN‚Ì“®ì‚ðŠJŽn‚·‚é */
     99        /* ディスパッチャを起動し,タスクの動作を開始する */
    104100        LOG_KER_ENTER();
    105101        start_dispatch();
     
    112108
    113109/*
    114  *  ƒJ[ƒlƒ‹‚̏I—¹
     110 *  カーネルの終了
    115111 */
    116112ER
     
    122118       
    123119        /*
    124          *  Š„ž‚݃ƒbƒNó‘ԂɈڍs
     120         *  割込みロック状態に移行
    125121         */
    126122        SIL_LOC_INT();
    127123       
    128124        /*
    129          *  ƒJ[ƒlƒ‹“®ì‚̏I—¹
     125         *  カーネル動作の終了
    130126         */
    131127        LOG_KER_LEAVE();
     
    133129       
    134130        /*
    135          *  ƒJ[ƒlƒ‹‚̏I—¹ˆ—‚̌ďo‚µ
     131         *  カーネルの終了処理の呼出し
    136132         *
    137          *  ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚ɐ؂芷‚¦‚āCexit_kernel‚ðŒÄ‚яo‚·D
     133         *  非タスクコンテキストに切り換えて,exit_kernelを呼び出す.
    138134         */
    139135        call_exit_kernel();
    140136       
    141137        /*
    142          *  SIL_UNL_INT‚ðŒÄ‚яo‚·‚ªC‚±‚±‚É“ž’B‚·‚邱‚Æ‚Í‚È‚¢D
    143          *  ‹Lq‚·‚é‚Ì‚ÍSIL_PRE_LOC‚Ő錾‚³‚ê‚é•Ï”‚ª‚ ‚éê‡‚ɁC
    144          *  ƒRƒ“ƒpƒCƒ‰‚ªo—Í‚·‚éŒx‚ð—}§‚·‚邽‚ß‚Å‚ ‚éD
     138         *  SIL_UNL_INTを呼び出すが,ここに到達することはない.
     139         *  記述するのはSIL_PRE_LOCで宣言される変数がある場合に,
     140         *  コンパイラが出力する警告を抑制するためである.
    145141         */
    146142        SIL_UNL_INT();
     
    152148
    153149/*
    154  *  ƒJ[ƒlƒ‹‚̏I—¹ˆ—
     150 *  カーネルの終了処理
    155151 */
    156152void
     
    158154{
    159155        /*
    160          *  I—¹ˆ—ƒ‹[ƒ`ƒ“‚ÌŽÀs
     156         *  終了処理ルーチンの実行
    161157         */
    162158        call_terrtn();
    163159       
    164160        /*
    165          *  ƒ^[ƒQƒbƒgˆË‘¶‚̏I—¹ˆ—
     161         *  ターゲット依存の終了処理
    166162         */
    167163        target_exit();
  • uKadecot/trunk/ssp/kernel/sys_manage.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2010 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‰ü
    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  *              ƒVƒXƒeƒ€ó‘ÔŠÇ—‹@”\
     43 *              システム状態管理機能
    4844 */
    4945
     
    5349
    5450/*
    55  *  ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
     51 *  トレースログマクロのデフォルト定義
    5652 */
    5753
     
    145141
    146142/*
    147  *  CPUƒƒbƒNó‘Ԃւ̈ڍs
     143 *  CPUロック状態への移行
    148144 */
    149145#ifdef TOPPERS_loc_cpu
     
    170166
    171167/*
    172  *  CPUƒƒbƒNó‘Ԃւ̈ڍsi”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—pj
     168 *  CPUロック状態への移行(非タスクコンテキスト用)
    173169 */
    174170#ifdef TOPPERS_iloc_cpu
     
    195191
    196192/*
    197  *  CPUƒƒbƒNó‘Ԃ̉ðœ
     193 *  CPUロック状態の解除
    198194 *
    199  *  CPUƒƒbƒN’†‚́CƒfƒBƒXƒpƒbƒ`‚ª•K—v‚Æ‚È‚éƒT[ƒrƒXƒR[ƒ‹‚ðŒÄ‚яo‚·‚±
    200  *  ‚Æ‚Í‚Å‚«‚È‚¢‚½‚߁CCPUƒƒbƒNó‘Ô‚Ì‰ðœŽž‚ɃfƒBƒXƒpƒbƒ`ƒƒ‚ð‹N“®‚·‚é
    201  *  •K—v‚Í‚È‚¢D
     195 *  CPUロック中は,ディスパッチが必要となるサービスコールを呼び出すこ
     196 *  とはできないため,CPUロック状態の解除時にディスパッチャを起動する
     197 *  必要はない.
    202198 */
    203199#ifdef TOPPERS_unl_cpu
     
    224220
    225221/*
    226  *  CPUƒƒbƒNó‘Ô‚Ì‰ðœi”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—pj
     222 *  CPUロック状態の解除(非タスクコンテキスト用)
    227223 *
    228  *  CPUƒƒbƒN’†‚́CƒfƒBƒXƒpƒbƒ`‚ª•K—v‚Æ‚È‚éƒT[ƒrƒXƒR[ƒ‹‚ðŒÄ‚яo‚·‚±
    229  *  ‚Æ‚Í‚Å‚«‚È‚¢‚½‚߁CCPUƒƒbƒNó‘Ô‚Ì‰ðœŽž‚ɃfƒBƒXƒpƒbƒ`ƒƒ‚Ì‹N“®‚ð—v
    230  *  ‹‚·‚é•K—v‚Í‚È‚¢D
     224 *  CPUロック中は,ディスパッチが必要となるサービスコールを呼び出すこ
     225 *  とはできないため,CPUロック状態の解除時にディスパッチャの起動を要
     226 *  求する必要はない.
    231227 */
    232228#ifdef TOPPERS_iunl_cpu
     
    253249
    254250/*
    255  *  ƒfƒBƒXƒpƒbƒ`‚Ì‹ÖŽ~
     251 *  ディスパッチの禁止
    256252 */
    257253#ifdef TOPPERS_dis_dsp
     
    278274
    279275/*
    280  *  ƒfƒBƒXƒpƒbƒ`‚Ì‹–‰Â
     276 *  ディスパッチの許可
    281277 */
    282278#ifdef TOPPERS_ena_dsp
     
    309305
    310306/*
    311  *  ƒRƒ“ƒeƒLƒXƒg‚ÌŽQÆ
     307 *  コンテキストの参照
    312308 */
    313309#ifdef TOPPERS_sns_ctx
     
    328324
    329325/*
    330  *  CPUƒƒbƒNó‘Ô‚ÌŽQÆ
     326 *  CPUロック状態の参照
    331327 */
    332328#ifdef TOPPERS_sns_loc
     
    347343
    348344/*
    349  *  ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô‚ÌŽQÆ
     345 *  ディスパッチ禁止状態の参照
    350346 */
    351347#ifdef TOPPERS_sns_dsp
     
    366362
    367363/*
    368  *  ƒfƒBƒXƒpƒbƒ`•Û—¯ó‘Ô‚ÌŽQÆ
     364 *  ディスパッチ保留状態の参照
    369365 */
    370366#ifdef TOPPERS_sns_dpn
     
    386382
    387383/*
    388  *  ƒJ[ƒlƒ‹”ñ“®ìó‘Ô‚ÌŽQÆ
     384 *  カーネル非動作状態の参照
    389385 */
    390386#ifdef TOPPERS_sns_ker
  • uKadecot/trunk/ssp/kernel/task.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2010 by Meika Sugimoto
    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 */
     
    4844
    4945/*
    50  *  ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
     46 *  トレースログマクロのデフォルト定義
    5147 */
    5248
     
    6056
    6157
    62 extern const intptr_t   tinib_exinf[];                  /* ƒ^ƒXƒN‚ÌŠg’£î•ñ */
    63 extern const TASK       tinib_task[];                   /* ƒ^ƒXƒN‚Ì‹N“®”Ô’n */
    64 extern const uint_t     tinib_epriority[];              /* ƒ^ƒXƒN‚ÌŽÀsŽž—Dæ“xi“à•”•\Œ»j */
    65 
    66 /* “à•”ŠÖ”‚̃vƒƒgƒ^ƒCƒvéŒ¾ */
     58extern const intptr_t   tinib_exinf[];                  /* タスクの拡張情報 */
     59extern const TASK       tinib_task[];                   /* タスクの起動番地 */
     60extern const uint_t     tinib_epriority[];              /* タスクの実行時優先度(内部表現) */
     61
     62/* 内部関数のプロトタイプ宣言 */
    6763Inline bool_t primap_empty(void);
    6864Inline bool_t primap_test(uint_t pri);
     
    7672
    7773/*
    78  *  ŽÀsó‘Ôƒ^ƒXƒN‚ÌŒ»Ý—Dæ“x
     74 *  実行状態タスクの現在優先度
    7975 */
    8076uint_t runtsk_curpri;
    8177
    8278/*
    83  *  ŽÀsó‘Ôƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“x
     79 *  実行状態タスクの起動時優先度
    8480 */
    8581uint_t runtsk_ipri;
    8682
    8783/*
    88  *  ƒŒƒfƒBƒLƒ
    89 [ƒT[ƒ`‚Ì‚½‚߂̃rƒbƒgƒ}ƒbƒv
     84 *  レディキューサーチのためのビットマップ
    9085 */
    9186volatile uint_t ready_primap;
    9287
    9388/*
    94  *  ‹N“®—v‹ƒLƒ
    95 [ƒCƒ“ƒO‚̃rƒbƒgƒ}ƒbƒv
     89 *  起動要求キューイングのビットマップ
    9690 */
    9791uint_t  actque_bitmap;
    9892
    9993/*
    100  *  ƒ^ƒXƒNƒfƒBƒXƒpƒbƒ`‹N“®—v‹ƒtƒ‰ƒO
     94 *  タスクディスパッチ起動要求フラグ
    10195 */
    10296bool_t  reqflg;
    10397
    10498/*
    105  *  ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô
     99 *  ディスパッチ禁止状態
    106100 */
    107101bool_t  disdsp;
    108102
    109103/*
    110  *  read_primap‚̏‰Šú’l
     104 *  read_primapの初期値
    111105 */
    112106extern const uint_t init_rdypmap;
     
    117111
    118112/*
    119  *  ƒ^ƒXƒNID‚©‚ç‚Ì‹N“®Žž—Dæ“xŽæ“¾(ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p)
     113 *  タスクIDからの起動時優先度取得(タスクコンテキスト用)
    120114 */
    121115uint_t
     
    138132
    139133/*
    140  *  ƒ^ƒXƒNID‚©‚ç‚Ì‹N“®Žž—Dæ“xŽæ“¾(”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p)
     134 *  タスクIDからの起動時優先度取得(非タスクコンテキスト用)
    141135 */
    142136#ifdef TOPPERS_get_ipri
     
    151145
    152146/*
    153  *  ƒrƒbƒgƒ}ƒbƒvƒT[ƒ`ŠÖ”
     147 *  ビットマップサーチ関数
    154148 *
    155  *  bitmap“à‚Ì1‚̃rƒbƒg‚Ì“àCÅ‚à‰ºˆÊi‰Ej‚Ì‚à‚Ì‚ðƒT[ƒ`‚µC‚»‚̃rƒb
    156  *  ƒg”ԍ†‚ð•Ô‚·Dƒrƒbƒg”ԍ†‚́CÅ‰ºˆÊƒrƒbƒg‚ð0‚Æ‚·‚éDbitmap‚É0‚ðŽw’è
    157  *  ‚µ‚Ä‚Í‚È‚ç‚È‚¢D‚±‚̊֐”‚ł́Cbitmap‚ª8ƒrƒbƒg‚Å‚ ‚邱‚Æ‚ð‰¼’è‚µC
    158  *  uint8_tŒ^‚Æ‚µ‚Ä‚¢‚éD
     149 *  bitmap内の1のビットの内,最も下位(右)のものをサーチし,そのビッ
     150 *  ト番号を返す.ビット番号は,最下位ビットを0とする.bitmapに0を指定
     151 *  してはならない.この関数では,bitmapが8ビットであることを仮定し,
     152 *  uint8_t型としている.
    159153 *
    160  *  ƒrƒbƒgƒT[ƒ`–½—ß‚ðŽ‚ÂƒvƒƒZƒbƒT‚ł́CƒrƒbƒgƒT[ƒ`–½—ß‚ðŽg‚¤‚悤‚É
    161  *  ‘‚«’¼‚µ‚½•û‚ªŒø—¦‚ª—Ç‚¢ê‡‚ª‚ ‚éD‚±‚̂悤‚ȏꍇ‚ɂ́Cƒ^[ƒQƒbƒg
    162  *  ˆË‘¶•”‚ŃrƒbƒgƒT[ƒ`–½—ß‚ðŽg‚Á‚½bitmap_search‚ð’è‹`‚µC
    163  *  OMIT_BITMAP_SEARCH‚ðƒ}ƒNƒ’è‹`‚·‚ê‚΂悢D‚Ü‚½CƒrƒbƒgƒT[ƒ`–½—ß‚Ì
    164  *  ƒT[ƒ`•ûŒü‚ª‹t‚È‚Ç‚Ì——R‚Å—Dæ“x‚ƃrƒbƒg‚Ƃ̑Ήž‚ð•ÏX‚µ‚½‚¢ê‡‚É
    165  *  ‚́CPRIMAP_BIT‚ðƒ}ƒNƒ’è‹`‚·‚ê‚΂悢D
     154 *  ビットサーチ命令を持つプロセッサでは,ビットサーチ命令を使うように
     155 *  書き直した方が効率が良い場合がある.このような場合には,ターゲット
     156 *  依存部でビットサーチ命令を使ったbitmap_searchを定義し,
     157 *  OMIT_BITMAP_SEARCHをマクロ定義すればよい.また,ビットサーチ命令の
     158 *  サーチ方向が逆などの理由で優先度とビットとの対応を変更したい場合に
     159 *  は,PRIMAP_BITをマクロ定義すればよい.
    166160 *
    167  *  ‚Ü‚½C•W€ƒ‰ƒCƒuƒ‰ƒŠ‚Éffs‚ª‚ ‚é‚È‚çCŽŸ‚̂悤‚É’è‹`‚µ‚Ä•W€ƒ‰ƒCƒu
    168  *  ƒ‰ƒŠ‚ðŽg‚Á‚½•û‚ªŒø—¦‚ª—Ç‚¢‰Â”\«‚à‚ ‚éD
     161 *  また,標準ライブラリにffsがあるなら,次のように定義して標準ライブ
     162 *  ラリを使った方が効率が良い可能性もある.
    169163 *              #define bitmap_search(bitmap) (ffs(bitmap) - 1)
    170164 */
     
    201195
    202196/*
    203  *  ‹N“®Žž—Dæ“xƒrƒbƒgƒ}ƒbƒv‚ª‹ó‚©‚̃`ƒFƒbƒN
     197 *  起動時優先度ビットマップが空かのチェック
    204198 */
    205199Inline bool_t
     
    210204
    211205/*
    212  *  Žw’肵‚½‹N“®Žž—Dæ“x‚Ì‹N“®Žž—Dæ“xƒrƒbƒgƒ}ƒbƒv‚ªƒZƒbƒg‚³‚ê‚Ä‚¢‚é‚©‚Ç‚¤‚©‚̃`ƒFƒbƒN
     206 *  指定した起動時優先度の起動時優先度ビットマップがセットされているかどうかのチェック
    213207 */
    214208Inline bool_t
     
    219213
    220214/*
    221  *  ‹N“®Žž—Dæ“xƒrƒbƒgƒ}ƒbƒv‚̃T[ƒ`
     215 *  起動時優先度ビットマップのサーチ
    222216 */
    223217Inline uint_t
     
    228222
    229223/*
    230  *  ‹N“®Žž—Dæ“xƒrƒbƒgƒ}ƒbƒv‚̃Zƒbƒg
     224 *  起動時優先度ビットマップのセット
    231225 */
    232226Inline void
     
    237231
    238232/*
    239  *  ‹N“®Žž—Dæ“xƒrƒbƒgƒ}ƒbƒv‚̃NƒŠƒA
     233 *  起動時優先度ビットマップのクリア
    240234 */
    241235Inline void
     
    246240
    247241/*
    248  *  Å‚—Dæ‡ˆÊƒ^ƒXƒN‚̃T[ƒ`
     242 *  最高優先順位タスクのサーチ
    249243 */
    250244
     
    261255#ifdef TOPPERS_tskdmt
    262256/*
    263  *  Žw’肵‚½‹N“®Žž—Dæ“x‚̃^ƒXƒN‚ªŽÀs‚Å‚«‚éó‘Ô‚©‚Ç‚¤‚©‚̃eƒXƒg
     257 *  指定した起動時優先度のタスクが実行できる状態かどうかのテスト
    264258 *
    265259 */
     
    273267
    274268/*
    275  *  ƒ^ƒXƒNŠÇ—ƒ‚ƒWƒ
    276 [ƒ‹‚̏‰Šú‰»
     269 *  タスク管理モジュールの初期化
    277270 */
    278271
     
    283276initialize_task(void)
    284277{
    285         /* ‹N“®Žž—Dæ“xƒrƒbƒgƒ}ƒbƒv‚̏‰Šú‰» */
     278        /* 起動時優先度ビットマップの初期化 */
    286279        ready_primap = init_rdypmap;
    287280       
    288         /* ƒ^ƒXƒN—Dæ“x‚̏‰Šú‰» */
     281        /* タスク優先度の初期化 */
    289282        runtsk_curpri = TSKPRI_NULL;
    290283        runtsk_ipri = TSKPRI_NULL;
    291284       
    292         /* ‹N“®—v‹ƒLƒ
    293 [ƒCƒ“ƒO‚̏‰Šú‰» */
     285        /* 起動要求キューイングの初期化 */
    294286        actque_bitmap = 0U;
    295287       
    296         /* Š„ž‚Ý‹ÖŽ~ƒtƒ‰ƒO‚̏‰Šú‰» */
     288        /* 割込み禁止フラグの初期化 */
    297289        disdsp = false;
    298290}
     
    301293
    302294/*
    303  *  ƒ^ƒXƒN‚Ì‹N“®
     295 *  タスクの起動
    304296 */
    305297
     
    314306       
    315307        /*
    316          *  ŽÀsó‘Ôƒ^ƒXƒN‚ÌŒ»Ý—Dæ“x‚ƈø”‚ÅŽw’肳‚ꂽ
    317          *  ‹N“®‘Ώۃ^ƒXƒN‚̏‰Šú—Dæ“x‚ð”äŠr‚µCŽÀsó‘Ôƒ^ƒXƒN‚ð
    318          *  •ÏX‚·‚é‚©”»’è‚·‚éD
     308         *  実行状態タスクの現在優先度と引数で指定された
     309         *  起動対象タスクの初期優先度を比較し,実行状態タスクを
     310         *  変更するか判定する.
    319311         *
    320          *  ‚½‚¾‚µŽÀsó‘Ôƒ^ƒXƒN‚ð•ÏX‚·‚éê‡‚̓fƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô‚àŽQÆ‚·‚éD
     312         *  ただし実行状態タスクを変更する場合はディスパッチ禁止状態も参照する.
    321313         */
    322314        if(ipri < runtsk_curpri) {
     
    334326
    335327/*
    336  *  ƒ^ƒXƒN‚ÌŽÀs
     328 *  タスクの実行
    337329 */
    338330
     
    342334run_task(uint_t ipri)
    343335{
    344         uint_t next_pri;                /* ŽŸ‚ÉŽÀsŠJŽn‚·‚éƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“x */
    345         uint_t saved_ipri;              /* ŒÄ‚яo‚µŒ³ƒ^ƒXƒN‚̏‰Šú—Dæ“x */
    346         uint_t saved_curpri;    /* ŒÄ‚яo‚µŒ³ƒ^ƒXƒN‚ÌŒ»Ý—Dæ“x */
     336        uint_t next_pri;                /* 次に実行開始するタスクの起動時優先度 */
     337        uint_t saved_ipri;              /* 呼び出し元タスクの初期優先度 */
     338        uint_t saved_curpri;    /* 呼び出し元タスクの現在優先度 */
    347339        bool_t cont;
    348340       
    349         /* Å‚—Dæ‡ˆÊƒ^ƒXƒN‚ðŽÀs‚·‚é‘O‚ɁCŒ»ÝŽÀs’†‚̃^ƒXƒN‚ÌŒ»Ý—Dæ“x‚Ə‰Šú—Dæ“x‚ð•Û‘¶‚·‚é */
     341        /* 最高優先順位タスクを実行する前に,現在実行中のタスクの現在優先度と初期優先度を保存する */
    350342        next_pri = ipri;
    351343        saved_ipri = runtsk_ipri;
     
    353345       
    354346        do {
    355                 /* ŽÀs‚·‚éƒ^ƒXƒN‚ÌŒ»Ý—Dæ“x‚ðŽÀsŽž—Dæ“x‚ɐݒ肷‚é */
     347                /* 実行するタスクの現在優先度を実行時優先度に設定する */
    356348                runtsk_curpri = tinib_epriority[next_pri];
    357349                runtsk_ipri = next_pri;
    358350#ifndef _MSC_VER
    359                 /* CPUƒƒbƒN‰ðœ */
     351                /* CPUロック解除 */
    360352                t_unlock_cpu();
    361353               
    362                 /* ƒ^ƒXƒNŽÀsŠJŽn */
     354                /* タスク実行開始 */
    363355                (*((TASK)(tinib_task[next_pri])))(tinib_exinf[next_pri]);
    364356#else
     
    367359                if (t_sense_lock()) {
    368360                        /*
    369                          *  CPUƒƒbƒNó‘Ô‚Åext_tsk‚ªŒÄ‚΂ꂽê‡‚́CCPUƒƒbƒN‚ð‰ðœ‚µ
    370                          *  ‚Ä‚©‚çƒ^ƒXƒN‚ðI—¹‚·‚éDŽÀ‘•ã‚́CƒT[ƒrƒXƒR[ƒ‹“à‚Å‚ÌCPU
    371                          *  ƒƒbƒN‚ðÈ—ª‚·‚ê‚΂悢‚¾‚¯D
     361                         *  CPUロック状態でext_tskが呼ばれた場合は,CPUロックを解除し
     362                         *  てからタスクを終了する.実装上は,サービスコール内でのCPU
     363                         *  ロックを省略すればよいだけ.
    372364                         */
    373365                }
    374366                else {
    375367                        /*
    376                          *  ‚±‚Ìt_lock_cpu‚ð‚±‚Ì‰º‚Ìdisdsp‚̐ݒè‚̂悤‚É‚µ‚È‚¢‚̂́C
    377                          *  CPUƒƒbƒN’†‚ɍēxt_lock_cpu‚ðŒÄ‚΂Ȃ¢‚½‚ß‚Å‚ ‚éD
     368                         *  このt_lock_cpuをこの下のdisdspの設定のようにしないのは,
     369                         *  CPUロック中に再度t_lock_cpuを呼ばないためである.
    378370                         */
    379371                        t_lock_cpu();
    380372                }
    381373               
    382                 /* Š„ž‚Ý—Dæ“xƒ}ƒXƒN‚Í‘S‰ðœó‘Ô‚Ì‚Í‚¸‚Ȃ̂ŁC‰½‚à‚µ‚È‚¢ */
     374                /* 割込み優先度マスクは全解除状態のはずなので,何もしない */
    383375               
    384376                /*
    385                  *  ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô‚Åext_tsk‚ªŒÄ‚΂ꂽê‡‚́CƒfƒBƒXƒpƒb
    386                  *  ƒ`‹–‰Âó‘Ô‚É‚µ‚Ä‚©‚çƒ^ƒXƒN‚ðI—¹‚·‚éD
     377                 *  ディスパッチ禁止状態でext_tskが呼ばれた場合は,ディスパッ
     378                 *  チ許可状態にしてからタスクを終了する.
    387379                 *
    388                  *      –{—ˆ‚͈ȉº‚̂悤‚É‹Lq‚·‚ׂ«‚Å‚ ‚邪C‚¢‚¸‚ê‚É‚¹‚ædisdsp‚ð
    389                  *      false‚É‚·‚ê‚΂¢‚¢‚½‚߁C’P‚Éfalse‚ɐݒ肷‚éD
     380                 *      本来は以下のように記述すべきであるが,いずれにせよdisdspを
     381                 *      falseにすればいいため,単にfalseに設定する.
    390382                 *
    391383                 *              if (disdsp) {
     
    395387                disdsp = false;
    396388               
    397                 /* ƒrƒbƒgƒ}ƒbƒvƒNƒŠƒAD */
     389                /* ビットマップクリア. */
    398390                primap_clear(next_pri);
    399391               
    400392                cont = false;
    401393               
    402                 /* ƒ^ƒXƒN‹N“®—v‹ƒLƒ
    403 [ƒCƒ“ƒO‚̃`ƒFƒbƒN */
     394                /* タスク起動要求キューイングのチェック */
    404395                if (actque_test(next_pri)) {
    405396                        actque_clear(next_pri);
     
    407398                }
    408399               
    409                 /* ‚¢‚¸‚ê‚©‚̃^ƒXƒN‚ªŽÀs‰Â”\ó‘Ô‚É‚È‚Á‚Ä‚¢‚é‚© */
     400                /* いずれかのタスクが実行可能状態になっているか */
    410401                if(!primap_empty())
    411402                {
    412                         /* –ß‚èæƒ^ƒXƒN‚ÌŒ»Ý—Dæ“x‚æ‚荂‚¢‹N“®Žž—Dæ“x‚ð‚à‚ƒ^ƒXƒN‚ª‹N“®‚³‚ꂽ‚© */
     403                        /* 戻り先タスクの現在優先度より高い起動時優先度をもつタスクが起動されたか */
    413404                        next_pri = search_schedtsk();
    414405                        if(saved_curpri > next_pri)
     
    426417
    427418/*
    428  *  ƒ^ƒXƒNƒfƒBƒXƒpƒbƒ`ƒƒ
     419 *  タスクディスパッチャ
    429420 */
    430421
     
    436427        do {
    437428                if(!primap_empty()) {
    438                         /* ƒ^ƒXƒN‚ÌŠJŽn */
     429                        /* タスクの開始 */
    439430                        run_task(search_schedtsk());
    440431                }
  • uKadecot/trunk/ssp/kernel/task.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2011 by Meika Sugimoto
    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 */
     
    5147
    5248/*
    53  *  ƒ^ƒXƒN—Dæ“x‚Ì“à•”•\Œ»EŠO•”•\Œ»•ÏŠ·ƒ}ƒNƒ
     49 *  タスク優先度の内部表現・外部表現変換マクロ
    5450 */
    5551#define INT_PRIORITY(x)         ((uint_t)((x) - TMIN_TPRI))
    5652
    5753/*
    58  *  ƒ^ƒXƒNID‚̍őå’likernel_cfg.cj
     54 *  タスクIDの最大値(kernel_cfg.c)
    5955 */
    6056extern const ID tmax_tskid;
    6157
    6258/*
    63  *  ƒ^ƒXƒN‚̐”
     59 *  タスクの数
    6460 */
    6561#define tnum_tsk        ((uint_t)(tmax_tskid - TMIN_TSKID + 1))
    6662
    6763/*
    68  *  ŽÀs‰Â”\ó‘Ԃ̃^ƒXƒN‚ª‚È‚¢Žž‚ÉŽÀs’†ƒ^ƒXƒN‚ÌŒ»Ý—Dæ“x‚ɐݒ肷‚é’l
     64 *  実行可能状態のタスクがない時に実行中タスクの現在優先度に設定する値
    6965 */
    7066#define TSKPRI_NULL             (UINT_MAX)
     
    7268
    7369/*
    74  *  ƒŒƒfƒBƒLƒ
    75 [ƒT[ƒ`‚Ì‚½‚߂̃rƒbƒgƒ}ƒbƒv
     70 *  レディキューサーチのためのビットマップ
    7671 */
    7772extern volatile uint_t  ready_primap;
    7873
    7974/*
    80  *  ‹N“®—v‹ƒLƒ
    81 [ƒCƒ“ƒO‚̃rƒbƒgƒ}ƒbƒv
     75 *  起動要求キューイングのビットマップ
    8276 */
    8377extern uint_t   actque_bitmap;
    8478
    8579/*
    86  *  ƒfƒBƒXƒpƒbƒ`^ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‹N“®—v‹ƒtƒ‰ƒO
    87  *
    88  *  Š„ž‚݃nƒ“ƒhƒ‰^CPU—áŠOƒnƒ“ƒhƒ‰‚̏oŒûˆ—‚ɁCƒfƒBƒXƒpƒbƒ`‚Ü‚½‚Í
    89  *  ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚Ì‹N“®‚ð—v‹‚·‚邱‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOD
     80 *  ディスパッチ/タスク例外処理ルーチン起動要求フラグ
     81 *
     82 *  割込みハンドラ/CPU例外ハンドラの出口処理に,ディスパッチまたは
     83 *  タスク例外処理ルーチンの起動を要求することを示すフラグ.
    9084 */
    9185extern bool_t   reqflg;
    9286
    9387/*
    94  *  ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô
    95  *
    96  *  ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô‚Å‚ ‚邱‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOD
     88 *  ディスパッチ禁止状態
     89 *
     90 *  ディスパッチ禁止状態であることを示すフラグ.
    9791 */
    9892extern bool_t   disdsp;
    9993
    10094/*
    101  *  ŽÀsó‘Ôƒ^ƒXƒN‚ÌŒ»Ý—Dæ“x
    102  *
    103  *  ŽÀs’†‚̃^ƒXƒN‚ÉŽÀsŽž—Dæ“x‚ªÝ’肳‚ê‚Ä‚¢‚ê‚ÎŽÀsŽž—Dæ“x‚ªC
    104  *  Ý’肳‚ê‚Ä‚¢‚È‚¯‚ê‚΋N“®Žž—Dæ“x‚ªÝ’肳‚ê‚éD
     95 *  実行状態タスクの現在優先度
     96 *
     97 *  実行中のタスクに実行時優先度が設定されていれば実行時優先度が,
     98 *  設定されていなければ起動時優先度が設定される.
    10599 */
    106100extern uint_t runtsk_curpri;
    107101
    108102/*
    109  *  ŽÀsó‘Ôƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“x
     103 *  実行状態タスクの起動時優先度
    110104 */
    111105extern uint_t runtsk_ipri;
    112106
    113107/*
    114  *  ƒ^ƒXƒNŠÇ—ƒ‚ƒWƒ
    115 [ƒ‹‚̏‰Šú‰»
    116  *
    117  *  ‘S‚Ẵ^ƒXƒN‚ð‰Šú‰»‚·‚éDŠeƒ^ƒXƒN‚̓^ƒXƒN‘®«‚ÉTA_ACT‚ªÝ’肳‚ê‚Ä‚¢‚ê‚Î
    118  *  ŽÀs‰Â”\ó‘ԁC‚»‚¤‚Å‚È‚¢ê‡‚Í‹xŽ~ó‘Ô‚Æ‚È‚éD
     108 *  タスク管理モジュールの初期化
     109 *
     110 *  全てのタスクを初期化する.各タスクはタスク属性にTA_ACTが設定されていれば
     111 *  実行可能状態,そうでない場合は休止状態となる.
    119112 * 
    120  *  ‚Ü‚½AƒfƒBƒXƒpƒbƒ`‹–‰Âƒtƒ‰ƒO‚ðƒfƒBƒXƒpƒbƒ`‹–‰Âó‘Ԃɐݒ肷‚éD
     113 *  また、ディスパッチ許可フラグをディスパッチ許可状態に設定する.
    121114 * 
    122  *  –{ŠÖ”‚̓Rƒ“ƒtƒBƒMƒ
    123 ƒŒ[ƒ^‚ª¶¬‚·‚éobject_initializeˆÈŠO‚ŌĂñ‚Å‚Í‚È‚ç‚È‚¢D
     115 *  本関数はコンフィギュレータが生成するobject_initialize以外で呼んではならない.
    124116 */
    125117extern void initialize_task(void);
    126118
    127119/*
    128  *  ƒ^ƒXƒN‚Ì‹N“®
    129  *
    130  *  ipri‚ÅŽw’肵‚½‹N“®Žž—Dæ“x‚ðŽ‚Âƒ^ƒXƒN‚ðŽÀs‰Â”\ó‘Ô‚É‘JˆÚ‚³‚¹‚éD
    131  *  –{ŠÖ”‚ðŽÀs‚·‚邱‚Æ‚É‚æ‚èƒvƒŠƒGƒ“ƒvƒg‚ª”­¶‚·‚éê‡‚Ítrue‚ðC
    132  *  ‚»‚¤‚Å‚È‚¢ê‡‚Ífalse‚ð•Ô‚·D
    133  *
    134  *  –{ŠÖ”‚ÍCPUƒƒbƒNó‘ԁC‘SŠ„ž‚݃ƒbƒN‰ðœó‘ԁCŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô‚Å
    135  *  ŒÄ‚яo‚·‚±‚ƁD
     120 *  タスクの起動
     121 *
     122 *  ipriで指定した起動時優先度を持つタスクを実行可能状態に遷移させる.
     123 *  本関数を実行することによりプリエンプトが発生する場合はtrueを,
     124 *  そうでない場合はfalseを返す.
     125 *
     126 *  本関数はCPUロック状態,全割込みロック解除状態,割込み優先度マスク全解除状態で
     127 *  呼び出すこと.
    136128 */
    137129extern bool_t make_active(uint_t ipri);
    138130
    139131/*
    140  *  Žw’肵‚½‹N“®Žž—Dæ“x‚̃^ƒXƒN‚ª‹xŽ~ó‘Ô‚©‚Ç‚¤‚©‚̃eƒXƒg
    141  *
    142  *  ipri‚ÅŽw’肵‚½‹N“®Žž—Dæ“x‚ðŽ‚Âƒ^ƒXƒN‚ª‹xŽ~ó‘Ô‚Å‚ ‚ê‚Î
    143  *  true‚ð‚»‚êˆÈŠOiŽÀs‰Â”\ó‘ԁCŽÀs‰Â”\ó‘ԁj‚Å‚ ‚ê‚Îfalse‚ð•Ô‚·D
    144  *
    145  *  –{ŠÖ”‚ÍCPUƒƒbƒNó‘ԁC‘SŠ„ž‚݃ƒbƒN‰ðœó‘ԁCŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô‚Å
    146  *  ŒÄ‚яo‚·‚±‚ƁD
     132 *  指定した起動時優先度のタスクが休止状態かどうかのテスト
     133 *
     134 *  ipriで指定した起動時優先度を持つタスクが休止状態であれば
     135 *  trueをそれ以外(実行可能状態,実行可能状態)であればfalseを返す.
     136 *
     137 *  本関数はCPUロック状態,全割込みロック解除状態,割込み優先度マスク全解除状態で
     138 *  呼び出すこと.
    147139 */
    148140extern bool_t test_dormant(uint_t ipri);
    149141
    150142/*
    151  *  Å‚—Dæ‡ˆÊƒ^ƒXƒN‚̃T[ƒ`
    152  *
    153  *  ŽÀs‰Â”\ó‘Ԃ̃^ƒXƒN‚Ì’†‚©‚çÅ‚à—Dæ‡ˆÊ‚ª‚‚¢ƒ^ƒXƒN‚̏‰Šú—Dæ“x‚ð
    154  *  •Ô‚·D
    155  *
    156  *  –{ŠÖ”‚ÍCPUƒƒbƒNó‘ԁC‘SŠ„ž‚݃ƒbƒN‰ðœó‘ԁCŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô‚Å
    157  *  ŒÄ‚яo‚·‚±‚ƁD
     143 *  最高優先順位タスクのサーチ
     144 *
     145 *  実行可能状態のタスクの中から最も優先順位が高いタスクの初期優先度を
     146 *  返す.
     147 *
     148 *  本関数はCPUロック状態,全割込みロック解除状態,割込み優先度マスク全解除状態で
     149 *  呼び出すこと.
    158150 */
    159151extern uint_t search_schedtsk(void);
    160152
    161153/*
    162  *  ƒ^ƒXƒN‚ÌŽÀs
    163  *
    164  *  ipri‚ÅŽw’肵‚½‹N“®Žž—Dæ“x‚ðŽ‚Âƒ^ƒXƒN‚ðŽÀs‚·‚éD
    165  *  –{ŠÖ”‚©‚çŽÀs‚µ‚½ƒ^ƒXƒN‚©‚çƒT[ƒrƒXƒR[ƒ‹‚ðŒo—R‚µ‚Ä
    166  *  Ä‹A“I‚ɌĂ΂ê‚邱‚Æ‚à‚ ‚éD
    167  *
    168  *  –{ŠÖ”‚ÍCPUƒƒbƒNó‘ԁC‘SŠ„ž‚݃ƒbƒN‰ðœó‘ԁCŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô‚Å
    169  *  ŒÄ‚яo‚·‚±‚ƁD
     154 *  タスクの実行
     155 *
     156 *  ipriで指定した起動時優先度を持つタスクを実行する.
     157 *  本関数から実行したタスクからサービスコールを経由して
     158 *  再帰的に呼ばれることもある.
     159 *
     160 *  本関数はCPUロック状態,全割込みロック解除状態,割込み優先度マスク全解除状態で
     161 *  呼び出すこと.
    170162 */
    171163extern void run_task(uint_t ipri);
    172164
    173165/*
    174  *  ƒ^ƒXƒNƒfƒBƒXƒpƒbƒ`ƒƒ
    175  *
    176  *  ƒJ[ƒlƒ‹‰Šú‰»Š®—¹Œã‚ɌĂяo‚³‚êCÅ‚—Dæ‡ˆÊ‚Æ‚È‚Á‚½ƒ^ƒXƒN‚ðŽÀs‚·‚éD
    177  *
    178  *  –{ŠÖ”‚ÍCPUƒƒbƒNó‘ԁC‘SŠ„ž‚݃ƒbƒN‰ðœó‘ԁCŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô‚Å
    179  *  ŒÄ‚яo‚·‚±‚ƁD
    180  *  ‚È‚¨C–{ŠÖ”‚©‚ç‚̓Šƒ^[ƒ“‚µ‚È‚¢D
     166 *  タスクディスパッチャ
     167 *
     168 *  カーネル初期化完了後に呼び出され,最高優先順位となったタスクを実行する.
     169 *
     170 *  本関数はCPUロック状態,全割込みロック解除状態,割込み優先度マスク全解除状態で
     171 *  呼び出すこと.
     172 *  なお,本関数からはリターンしない.
    181173 * 
    182174 */
     
    184176
    185177/*
    186  *  ƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“xŽæ“¾(ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p)
    187  *
    188  *  tskid‚ÅŽw’肵‚½ƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“x‚ðŽæ“¾‚·‚éD
    189  *  tskid‚ÍTMIN_TSKIDˆÈãCtmax_tskidˆÈ‰º‚Ì’lC‚à‚µ‚­‚ÍTSK_SELF‚Å
    190  *  Žw’肵‚È‚¯‚ê‚΂Ȃç‚È‚¢D
     178 *  タスクの起動時優先度取得(タスクコンテキスト用)
     179 *
     180 *  tskidで指定したタスクの起動時優先度を取得する.
     181 *  tskidはTMIN_TSKID以上,tmax_tskid以下の値,もしくはTSK_SELFで
     182 *  指定しなければならない.
    191183 */
    192184extern uint_t get_ipri_self(ID tskid);
    193185
    194186/*
    195  *  ƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“xŽæ“¾(”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p)
    196  *
    197  *  tskid‚ÅŽw’肵‚½ƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“x‚ðŽæ“¾‚·‚éD
    198  *  tskid‚ÍTMIN_TSKIDˆÈãCtmax_tskidˆÈ‰º‚Ì’l‚ÅŽw’肵‚È‚¯‚ê‚΂Ȃç‚È‚¢D
     187 *  タスクの起動時優先度取得(非タスクコンテキスト用)
     188 *
     189 *  tskidで指定したタスクの起動時優先度を取得する.
     190 *  tskidはTMIN_TSKID以上,tmax_tskid以下の値で指定しなければならない.
    199191 */
    200192extern uint_t get_ipri(ID tskid);
    201193
    202194
    203 /* ‹N“®—v‹ƒLƒ
    204 [ƒCƒ“ƒOƒrƒbƒgƒ}ƒbƒv‚Ì‘€ì */
     195/* 起動要求キューイングビットマップの操作 */
    205196#define ACTQUE_BIT(ipri)                        (1U << (ipri))
    206197
    207 /* ‹N“®—v‹ƒLƒ
    208 [ƒCƒ“ƒO‚̃Zƒbƒg */
     198/* 起動要求キューイングのセット */
    209199Inline
    210200void actque_set(uint_t ipri)
     
    213203}
    214204
    215 /* ‹N“®—v‹ƒLƒ
    216 [ƒCƒ“ƒO‚̃NƒŠƒA */
     205/* 起動要求キューイングのクリア */
    217206Inline
    218207void actque_clear(uint_t ipri)
     
    221210}
    222211
    223 /* ‹N“®—v‹ƒLƒ
    224 [ƒCƒ“ƒO”‚̃`ƒFƒbƒN */
     212/* 起動要求キューイング数のチェック */
    225213Inline
    226214bool_t actque_test(uint_t ipri)
  • uKadecot/trunk/ssp/kernel/task_manage.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2011 by Meika Sugimoto
    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
    4642/*
    47  *              ƒ^ƒXƒNŠÇ—‹@”\
     43 *              タスク管理機能
    4844 */
    4945
     
    5349
    5450/*
    55  *  ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
     51 *  トレースログマクロのデフォルト定義
    5652 */
    5753#ifndef LOG_ACT_TSK_ENTER
     
    7369
    7470/*
    75  *  ƒ^ƒXƒN‚Ì‹N“®
     71 *  タスクの起動
    7672 */
    7773#ifdef TOPPERS_act_tsk
     
    113109
    114110/*
    115  *  ƒ^ƒXƒN‚Ì‹N“®i”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—pj
     111 *  タスクの起動(非タスクコンテキスト用)
    116112 */
    117113
  • uKadecot/trunk/ssp/pdic/rx600/rx630_uart.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 */
     
    4339
    4440/*
    45  * UART—p ŠÈˆÕSIOƒhƒ‰ƒCƒo
     41 * UART用 簡易SIOドライバ
    4642 */
    4743
     
    5248#include "rx630_uart.h"
    5349
    54 /* ƒVƒŠƒAƒ‹ƒ‚[ƒhƒŒƒWƒXƒ^iSMR) */
     50/* シリアルモードレジスタ(SMR) */
    5551#define CKS                     UINT_C(0x03)
    5652#define STOP            UINT_C(0x08)
     
    6258#define ASYNC_8BIT      UINT_C(0x40)
    6359
    64 /* ƒVƒŠƒAƒ‹ƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^iSCR) */
     60/* シリアルコントロールレジスタ(SCR) */
    6561#define CKE                     UINT_C(0x03)
    6662#define TEIE            UINT_C(0x04)
     
    7066#define TIE                     UINT_C(0x80)
    7167
    72 /* ƒVƒŠƒAƒ‹ƒXƒe[ƒ^ƒXƒŒƒWƒXƒ^iSSRj */
     68/* シリアルステータスレジスタ(SSR) */
    7369#define TEND            UINT_C(0x04)
    7470#define PER                     UINT_C(0x08)
     
    7672#define ORER            UINT_C(0x20)
    7773
    78 /* ƒVƒŠƒAƒ‹Šg’£ƒ‚[ƒhƒŒƒWƒXƒ^iSEMR) */
     74/* シリアル拡張モードレジスタ(SEMR) */
    7975#define ACS0            UINT_C(0x01)
    8076#define ABCS            UINT_C(0x10)
     
    8480
    8581/*
    86  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‰Šú‰»ƒuƒƒbƒN‚Ì’è‹`
     82 *  シリアルI/Oポート初期化ブロックの定義
    8783 */
    8884typedef struct sio_port_initialization_block {
    89         volatile uint8_t        *ctlreg;                /* ƒVƒŠƒAƒ‹ƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^iSCR) */
    90         volatile uint8_t        *modereg;               /* ƒVƒŠƒAƒ‹ƒ‚[ƒhƒŒƒWƒXƒ^iSMR) */
    91         volatile uint8_t        *extmodereg;    /* ƒVƒŠƒAƒ‹Šg’£ƒ‚[ƒhƒŒƒWƒXƒ^iSEMR) */
    92         volatile uint8_t        *statusreg;             /* ƒVƒŠƒAƒ‹ƒXƒe[ƒ^ƒXƒŒƒWƒXƒ^iSSRj */
    93         volatile uint8_t        *tdreg;                 /* ƒgƒ‰ƒ“ƒXƒ~ƒbƒgƒf[ƒ^ƒŒƒWƒXƒ^iTDR)*/
    94         volatile uint8_t        *rdreg;                 /* ƒŒƒV[ƒuƒf[ƒ^ƒŒƒWƒXƒ^iRDR) */
    95         volatile uint8_t        *bitratereg;    /* ƒrƒbƒgƒŒ[ƒgƒŒƒWƒXƒ^iBRR) */
    96         volatile uint32_t       *mstpcrreg;             /* ƒ‚ƒWƒ
    97 [ƒ‹ƒXƒgƒbƒvƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^iMSTPCRj */
    98         volatile uint8_t        *ssrreg;                /* ƒXƒe[ƒ^ƒXƒŒƒWƒXƒ^ */
    99         volatile uint8_t        *rxiirreg;              /* RXI—pŠ„ž‚Ý—v‹ƒŒƒWƒXƒ^ */
    100         uint8_t                         tx_intno;               /* ‘—Miƒf[ƒ^ƒGƒ“ƒvƒeƒBjŠ„‚荞‚ݔԍ† */
    101         uint8_t                         rx_intno;               /* ŽóMiƒf[ƒ^ƒtƒ‹jŠ„‚荞‚ݔԍ† */
    102         uint8_t                         te_intno;               /* ‘—MiI—¹jŠ„‚荞‚ݔԍ† */
    103         uint8_t                         sci_no;                 /* SCI‚̔ԍ†(SCI0`SCI6) */
    104         uint32_t                        mstpcr_offset;  /* MSTPCR‚̑Ήž‚·‚éƒrƒbƒgƒIƒtƒZƒbƒg */
     85        volatile uint8_t        *ctlreg;                /* シリアルコントロールレジスタ(SCR) */
     86        volatile uint8_t        *modereg;               /* シリアルモードレジスタ(SMR) */
     87        volatile uint8_t        *extmodereg;    /* シリアル拡張モードレジスタ(SEMR) */       
     88        volatile uint8_t        *statusreg;             /* シリアルステータスレジスタ(SSR) */
     89        volatile uint8_t        *tdreg;                 /* トランスミットデータレジスタ(TDR)*/
     90        volatile uint8_t        *rdreg;                 /* レシーブデータレジスタ(RDR) */
     91        volatile uint8_t        *bitratereg;    /* ビットレートレジスタ(BRR) */
     92        volatile uint32_t       *mstpcrreg;             /* モジュールストップコントロールレジスタ(MSTPCR) */
     93        volatile uint8_t        *ssrreg;                /* ステータスレジスタ */
     94        volatile uint8_t        *rxiirreg;              /* RXI用割込み要求レジスタ */
     95        uint8_t                         tx_intno;               /* 送信(データエンプティ)割り込み番号 */
     96        uint8_t                         rx_intno;               /* 受信(データフル)割り込み番号 */
     97        uint8_t                         te_intno;               /* 送信(終了)割り込み番号 */
     98        uint8_t                         sci_no;                 /* SCIの番号(SCI0〜SCI6) */
     99        uint32_t                        mstpcr_offset;  /* MSTPCRの対応するビットオフセット */
    105100} SIOPINIB;
    106101
    107102/*
    108  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒgŠÇ—ƒuƒƒbƒN‚Ì’è‹`
     103 *  シリアルI/Oポート管理ブロックの定義
    109104 */
    110105struct sio_port_control_block {
    111         const SIOPINIB  *p_siopinib;                            /* ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‰Šú‰»ƒuƒƒbƒN */
    112         intptr_t        exinf;                                                  /* Šg’£î•ñ */
    113         bool_t          openflag;                                               /* ƒI[ƒvƒ“Ï‚݃tƒ‰ƒO */
    114         bool_t          sendflag;                                               /* ‘—MŠ„ž‚݃Cƒl[ƒuƒ‹ƒtƒ‰ƒO */
    115         bool_t          getready;                                               /* •¶Žš‚ðŽóM‚µ‚½ó‘Ô */
    116         bool_t          putready;                                               /* •¶Žš‚𑗐M‚Å‚«‚éó‘Ô */
    117         bool_t          is_initialized;                                 /* ƒfƒoƒCƒX‰Šú‰»Ï‚݃tƒ‰ƒO */
     106        const SIOPINIB  *p_siopinib;                            /* シリアルI/Oポート初期化ブロック */
     107        intptr_t        exinf;                                                  /* 拡張情報 */
     108        bool_t          openflag;                                               /* オープン済みフラグ */
     109        bool_t          sendflag;                                               /* 送信割込みイネーブルフラグ */
     110        bool_t          getready;                                               /* 文字を受信した状態 */
     111        bool_t          putready;                                               /* 文字を送信できる状態 */
     112        bool_t          is_initialized;                                 /* デバイス初期化済みフラグ */
    118113};
    119114
    120115/*
    121  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒgŠÇ—ƒuƒƒbƒN‚̃GƒŠƒA
     116 *  シリアルI/Oポート管理ブロックのエリア
    122117 */
    123118static SIOPCB   siopcb_table[TNUM_SIOP];
    124119
    125 /* ƒŒƒWƒXƒ^ƒe[ƒuƒ‹ */
     120/* レジスタテーブル */
    126121static const SIOPINIB siopinib_table[TNUM_SIOP] =
    127122{
     
    165160
    166161/*
    167  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒgID‚©‚çŠÇ—ƒuƒƒbƒN‚ðŽæ‚èo‚·‚½‚߂̃}ƒNƒ
     162 *  シリアルI/OポートIDから管理ブロックを取り出すためのマクロ
    168163 */
    169164#define INDEX_SIOP(siopid)       ((uint_t)((siopid) - 1))
     
    173168
    174169/*
    175  *  SIOƒhƒ‰ƒCƒo‚̃VƒŠƒAƒ‹ƒ‚[ƒhƒŒƒWƒXƒ^(SMR)
     170 *  SIOドライバのシリアルモードレジスタ(SMR)
    176171 */
    177172static void
     
    181176
    182177        /*
    183          *  SCIƒhƒ‰ƒCƒo‚̏‰Šú‰»ƒ‹[ƒ`ƒ“
    184          */
    185 
    186         /*
    187          *  Š„‚荞‚Ý—v‹æƒŒƒWƒXƒ^‚̐ݒè(ISELRi)
     178         *  SCIドライバの初期化ルーチン
     179         */
     180
     181        /*
     182         *  割り込み要求先レジスタの設定(ISELRi)
    188183         *
    189          *  ƒŠƒZƒbƒg’l‚Æ“¯‚¶’l‚ðÝ’è‚·‚邱‚ƂɂȂ邽‚ß,
    190          *  ˆ—‚͏ȗª‚·‚é.
    191          */
    192 
    193         /*
    194          *  ƒ‚ƒWƒ
    195 [ƒ‹ƒXƒgƒbƒv‹@”\‚̐ݒè
    196          */
    197         sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA502);        /* ‘ž‚Ý‹–‰Â */
     184         *  リセット値と同じ値を設定することになるため,
     185         *  処理は省略する.
     186         */
     187
     188        /*
     189         *  モジュールストップ機能の設定
     190         */
     191        sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA502);        /* 書込み許可 */
    198192        sil_wrw_mem(p_siopinib->mstpcrreg,
    199193                sil_rew_mem(p_siopinib->mstpcrreg) & ~p_siopinib->mstpcr_offset);
    200         sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA500);        /* ‘ž‚Ý‹ÖŽ~ */
    201 
    202         /* ‘—ŽóM‹ÖŽ~, SCKn’[Žq‚Í“üo—̓|[ƒg‚Æ‚µ‚ÄŽg—p */
     194        sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA500);        /* 書込み禁止 */
     195
     196        /* 送受信禁止, SCKn端子は入出力ポートとして使用 */
    203197        sil_wrb_mem(p_siopinib->ctlreg, 0x00U);
    204198
    205         /* ƒNƒƒbƒN‘I‘ðƒrƒbƒg(SMR.CKS[1:0]ƒrƒbƒg‚ðÝ’è) */
     199        /* クロック選択ビット(SMR.CKS[1:0]ビットを設定) */
    206200        sil_wrb_mem(p_siopinib->modereg,
    207201                                        sil_reb_mem(p_siopinib->modereg) | clksrc);
    208202
    209         /* SMR‚É‘—M^ ŽóMƒtƒH[ƒ}ƒbƒg‚ðÝ’è) */
     203        /* SMRに送信/ 受信フォーマットを設定) */
    210204        sil_wrb_mem(p_siopinib->modereg,
    211205                        sil_reb_mem(p_siopinib->modereg) & (~SCI_SMR_FLG_ENABLE));
    212206
    213         /* ƒrƒbƒgƒŒ[ƒg‚ðÝ’è */
     207        /* ビットレートを設定 */
    214208        sil_wrb_mem(p_siopinib->bitratereg, bitrate);
    215209
    216         /* ƒrƒbƒgŠúŠÔ(Šî–{ƒNƒƒbƒN16ƒTƒCƒNƒ‹‚ÌŠúŠÔ‚ª1ƒrƒbƒgŠúŠÔ‚Æ‚È‚é) */
     210        /* ビット期間(基本クロック16サイクルの期間が1ビット期間となる) */
    217211        for(i = 0; i < 16; i++) { }
    218212
    219         /* ‘—ŽóM‹–‰Â */
     213        /* 送受信許可 */
    220214        sil_wrb_mem(p_siopinib->ctlreg,
    221215                (sil_reb_mem(p_siopinib->ctlreg) | SCI_SCR_FLG_ENABLE));
     
    224218
    225219/*
    226  *  SIOƒhƒ‰ƒCƒo‚̏‰Šú‰»ƒ‹[ƒ`ƒ“
     220 *  SIOドライバの初期化ルーチン
    227221 */
    228222void
     
    233227
    234228        /*
    235          *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒgŠÇ—ƒuƒƒbƒN‚̏‰Šú‰»
     229         *  シリアルI/Oポート管理ブロックの初期化
    236230         */
    237231        for (p_siopcb = siopcb_table, i = 0; i < TNUM_SIOP; p_siopcb++, i++){
     
    243237
    244238/*
    245  *  ƒJ[ƒlƒ‹‹N“®Žž‚̃oƒi[o—Í—p‚̏‰Šú‰»
     239 *  カーネル起動時のバナー出力用の初期化
    246240 */
    247241void
     
    250244        SIOPCB          *p_siopcb   = get_siopcb(siopid);
    251245        const SIOPINIB  *p_siopinib = get_siopinib(siopid);
    252         /*  ‚±‚ÌŽž“_‚ł́Ap_siopcb->p_siopinib‚͏‰Šú‰»‚³‚ê‚Ä‚¢‚È‚¢  */
    253 
    254         /*  “ñd‰Šú‰»‚Ì–hŽ~  */
     246        /*  この時点では、p_siopcb->p_siopinibは初期化されていない  */
     247
     248        /*  二重初期化の防止  */
    255249        p_siopcb->is_initialized = true;
    256250
    257         /*  ƒn[ƒhƒEƒFƒA‚̏‰Šú‰»ˆ—‚Æ‘—M‹–‰Â  */
     251        /*  ハードウェアの初期化処理と送信許可  */
    258252        rx630_uart_setmode(p_siopinib , bitrate, clksrc);
    259253        sil_wrb_mem(p_siopinib->ctlreg,
     
    262256
    263257/*
    264  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚ւ̃|[ƒŠƒ“ƒO‚ł̏o—Í
     258 *  シリアルI/Oポートへのポーリングでの出力
    265259 */
    266260void
     
    272266
    273267        /*
    274          *  ‘—MƒŒƒWƒXƒ^‚ª‹ó‚É‚È‚é‚Ü‚Å‘Ò‚Â
     268         *  送信レジスタが空になるまで待つ
    275269         */
    276270        while((sil_reb_mem(p_siopinib->ssrreg) & SCI_SSR_TEND_BIT) == 0U);
     
    280274
    281275/*
    282  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚̃I[ƒvƒ“
     276 *  シリアルI/Oポートのオープン
    283277 */
    284278SIOPCB *
     
    293287
    294288        /*
    295          *  ƒn[ƒhƒEƒFƒA‚̏‰Šú‰»
     289         *  ハードウェアの初期化
    296290         *
    297          *  Šù‚ɏ‰Šú‰»‚µ‚Ä‚¢‚éê‡‚Í, “ñd‚ɏ‰Šú‰»‚µ‚È‚¢.
     291         *  既に初期化している場合は, 二重に初期化しない.
    298292         */
    299293        if(!(p_siopcb->is_initialized)){
     
    310304
    311305/*
    312  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚̃Nƒ[ƒY
     306 *  シリアルI/Oポートのクローズ
    313307 */
    314308void
     
    316310{
    317311        /*
    318          *  UART’âŽ~
     312         *  UART停止
    319313         */
    320314        sil_wrh_mem(p_siopcb->p_siopinib->ctlreg, 0x00U);
     
    324318
    325319/*
    326  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚Ö‚Ì•¶Žš‘—M
     320 *  シリアルI/Oポートへの文字送信
    327321 */
    328322bool_t
     
    341335
    342336/*
    343  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚Ì•¶ŽšŽóM
     337 *  シリアルI/Oポートからの文字受信
    344338 */
    345339int_t
     
    349343
    350344        /*
    351          *  ŽóMƒtƒ‰ƒO‚ªON‚Ì‚Æ‚«‚Ì‚ÝŽóMƒoƒbƒtƒ@‚©‚當Žš‚ðŽæ“¾‚·‚é.
    352          *  ‚±‚ê‚Í, ƒ|[ƒŠƒ“ƒOŽóM‚ɑΉž‚·‚邽‚ß‚Å‚ ‚é.
    353          *  ‚µ‚©‚µ, RX600ƒVƒŠ[ƒY‚Å‚ÍŽóMƒtƒ‰ƒO‚ª‚È‚¢‚±‚Æ, ƒVƒXƒeƒ€ƒT[ƒrƒX
    354          *  ‚Å‚ÍŽóMŠ„ž‚Ý‚Ì’†‚©‚炵‚©ƒf[ƒ^‚ðŽóM‚µ‚É—ˆ‚È‚¢‚±‚Æ‚©‚ç, í‚É
    355          *  ŽóMƒoƒbƒtƒ@‚©‚當Žš‚ðŽæ“¾‚·‚é.
     345         *  受信フラグがONのときのみ受信バッファから文字を取得する.
     346         *  これは, ポーリング受信に対応するためである.
     347         *  しかし, RX600シリーズでは受信フラグがないこと, システムサービス
     348         *  では受信割込みの中からしかデータを受信しに来ないことから, 常に
     349         *  受信バッファから文字を取得する.
    356350         */
    357351        c = (int)(sil_reb_mem(p_siopcb->p_siopinib->rdreg));
     
    361355
    362356/*
    363  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚̃R[ƒ‹ƒoƒbƒN‚Ì‹–‰Â
     357 *  シリアルI/Oポートからのコールバックの許可
    364358 */
    365359void
     
    382376
    383377/*
    384  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚̃R[ƒ‹ƒoƒbƒN‚Ì‹ÖŽ~
     378 *  シリアルI/Oポートからのコールバックの禁止
    385379 */
    386380void
     
    403397
    404398/*
    405  *  SIO‚ÌŠ„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“
     399 *  SIOの割込みサービスルーチン
    406400 */
    407401void
     
    413407                (void *)p_siopcb->p_siopinib->ssrreg) & SCI_SSR_TEND_BIT) != 0U){
    414408                /*
    415                  *  ‘—M‰Â”\ƒR[ƒ‹ƒoƒbƒNƒ‹[ƒ`ƒ“‚ðŒÄ‚яo‚·D
     409                 *  送信可能コールバックルーチンを呼び出す.
    416410                 */
    417411                rx630_uart_irdy_snd(p_siopcb->exinf);
     
    425419
    426420        /*
    427          *  ŽóMƒtƒ‰ƒO‚ªON‚Ì‚Æ‚«‚Ì‚ÝŽóM’Ê’mƒR[ƒ‹ƒoƒbƒNƒ‹[ƒ`ƒ“‚ðŒÄ‚яo‚·.
    428          *  ‚µ‚©‚µ, RX600ƒVƒŠ[ƒY‚Å‚ÍŽóMƒtƒ‰ƒO‚ª‚È‚¢‚½‚ß, í‚ÉŽóM’Ê’m
    429          *  ƒR[ƒ‹ƒoƒbƒNƒ‹[ƒ`ƒ“‚ðŒÄ‚яo‚·.
    430          *  ‚±‚±‚Å‚ÍŽóMŠ„ž‚Ý‚Ì”­¶‚ðM‚¶‚é.
    431          */
    432         /*
    433          *  ŽóM’Ê’mƒR[ƒ‹ƒoƒbƒNƒ‹[ƒ`ƒ“‚ðŒÄ‚яo‚·D
     421         *  受信フラグがONのときのみ受信通知コールバックルーチンを呼び出す.
     422         *  しかし, RX600シリーズでは受信フラグがないため, 常に受信通知
     423         *  コールバックルーチンを呼び出す.
     424         *  ここでは受信割込みの発生を信じる.
     425         */
     426        /*
     427         *  受信通知コールバックルーチンを呼び出す.
    434428         */
    435429        rx630_uart_irdy_rcv(p_siopcb->exinf);
     
    438432
    439433/*
    440  *  ƒ|[ƒg”ԍ†‚©‚çŠÇ—ƒuƒƒbƒN‚̐擪”Ô’n‚Ö‚Ì•ÏŠ·
     434 *  ポート番号から管理ブロックの先頭番地への変換
    441435 */
    442436SIOPCB *
     
    447441
    448442/*
    449  * ŠÇ—ƒuƒƒbƒN‚̐擪”Ô’n‚©‚çŽóMŠ„ž‚ݔԍ†‚Ö‚Ì•ÏŠ·
     443 * 管理ブロックの先頭番地から受信割込み番号への変換
    450444 */
    451445INTNO
     
    456450
    457451/*
    458  * ŠÇ—ƒuƒƒbƒN‚̐擪”Ô’n‚©‚ç‘—MŠ„ž‚ݔԍ†‚Ö‚Ì•ÏŠ·
     452 * 管理ブロックの先頭番地から送信割込み番号への変換
    459453 */
    460454INTNO
  • uKadecot/trunk/ssp/pdic/rx600/rx630_uart.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 */
    4238
    4339/*
    44  *  UART—p ŠÈˆÕSIOƒhƒ‰ƒCƒo
     40 *  UART用 簡易SIOドライバ
    4541 */
    4642
     
    4844#define TOPPERS_RX630_UART_H
    4945
    50 /* Žw’è‰Â”\‚ȃNƒƒbƒNƒ\[ƒX */
     46/* 指定可能なクロックソース */
    5147#define CLK_F1  UINT_C(0x00)
    5248#define CLK_F4  UINT_C(0x01)
     
    5753
    5854/*
    59  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒgŠÇ—ƒuƒƒbƒN‚Ì’è‹`
     55 *  シリアルI/Oポート管理ブロックの定義
    6056 */
    6157typedef struct sio_port_control_block   SIOPCB;
    6258
    6359/*
    64  *  ƒR[ƒ‹ƒoƒbƒNƒ‹[ƒ`ƒ“‚ÌŽ¯•Ê”ԍ†
     60 *  コールバックルーチンの識別番号
    6561 */
    66 #define SIO_RDY_SND    (1U)        /* ‘—M‰Â”\ƒR[ƒ‹ƒoƒbƒN */
    67 #define SIO_RDY_RCV    (2U)        /* ŽóM’Ê’mƒR[ƒ‹ƒoƒbƒN */
     62#define SIO_RDY_SND    (1U)        /* 送信可能コールバック */
     63#define SIO_RDY_RCV    (2U)        /* 受信通知コールバック */
    6864
    6965/*
    70  *  SIOƒhƒ‰ƒCƒo‚̏‰Šú‰»ƒ‹[ƒ`ƒ“
     66 *  SIOドライバの初期化ルーチン
    7167 */
    7268extern void rx630_uart_initialize(void);
    7369
    7470/*
    75  * ƒJ[ƒlƒ‹‹N“®Žž‚̃oƒi[o—Í—p‚̏‰Šú‰»
     71 * カーネル起動時のバナー出力用の初期化
    7672 */
    7773extern void rx630_uart_init(ID siopid , uint8_t baud , uint8_t clksrc);
    7874
    7975/*
    80  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚ւ̃|[ƒŠƒ“ƒO‚ł̏o—Í
     76 *  シリアルI/Oポートへのポーリングでの出力
    8177 */
    8278extern void rx630_uart_pol_putc(char c, ID siopid);
    8379
    8480/*
    85  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚̃I[ƒvƒ“
     81 *  シリアルI/Oポートのオープン
    8682 */
    8783extern SIOPCB *rx630_uart_opn_por
     
    8985
    9086/*
    91  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚̃Nƒ[ƒY
     87 *  シリアルI/Oポートのクローズ
    9288 */
    9389extern void rx630_uart_cls_por(SIOPCB *p_siopcb);
    9490
    9591/*
    96  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚Ö‚Ì•¶Žš‘—M
     92 *  シリアルI/Oポートへの文字送信
    9793 */
    9894extern bool_t rx630_uart_snd_chr(SIOPCB *p_siopcb, char c);
    9995
    10096/*
    101  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚Ì•¶ŽšŽóM
     97 *  シリアルI/Oポートからの文字受信
    10298 */
    10399extern int_t rx630_uart_rcv_chr(SIOPCB *p_siopcb);
    104100
    105101/*
    106  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚̃R[ƒ‹ƒoƒbƒN‚Ì‹–‰Â
     102 *  シリアルI/Oポートからのコールバックの許可
    107103 */
    108104extern void  rx630_uart_ena_cbr(SIOPCB *p_siopcb, uint_t cbrtn);
    109105
    110106/*
    111  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚̃R[ƒ‹ƒoƒbƒN‚Ì‹ÖŽ~
     107 *  シリアルI/Oポートからのコールバックの禁止
    112108 */
    113109extern void rx630_uart_dis_cbr(SIOPCB *p_siopcb, uint_t cbrtn);
    114110
    115111/*
    116  *  SIO‚ÌŠ„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“
     112 *  SIOの割込みサービスルーチン
    117113 */
    118114extern void rx630_uart_tx_isr(ID siopid);
     
    120116
    121117/*
    122  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚Ì‘—M‰Â”\ƒR[ƒ‹ƒoƒbƒN
     118 *  シリアルI/Oポートからの送信可能コールバック
    123119 */
    124120extern void rx630_uart_irdy_snd(intptr_t exinf);
    125121
    126122/*
    127  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚ÌŽóM’Ê’mƒR[ƒ‹ƒoƒbƒN
     123 *  シリアルI/Oポートからの受信通知コールバック
    128124 */
    129125extern void rx630_uart_irdy_rcv(intptr_t exinf);
     
    131127
    132128/*
    133  *  ƒ|[ƒg”ԍ†‚©‚çŠÇ—ƒuƒƒbƒN‚̐擪”Ô’n‚Ö‚Ì•ÏŠ·
     129 *  ポート番号から管理ブロックの先頭番地への変換
    134130 */
    135131extern SIOPCB *rx630_uart_get_siopcb(ID siopid);
    136132
    137133/*
    138  * ŠÇ—ƒuƒƒbƒN‚̐擪”Ô’n‚©‚çŽóMŠ„ž‚ݔԍ†‚Ö‚Ì•ÏŠ·
     134 * 管理ブロックの先頭番地から受信割込み番号への変換
    139135 */
    140136extern INTNO rx630_uart_intno_rx(SIOPCB *p_siopcb);
    141137
    142138/*
    143  * ŠÇ—ƒuƒƒbƒN‚̐擪”Ô’n‚©‚ç‘—MŠ„ž‚ݔԍ†‚Ö‚Ì•ÏŠ·
     139 * 管理ブロックの先頭番地から送信割込み番号への変換
    144140 */
    145141extern INTNO rx630_uart_intno_tx(SIOPCB *p_siopcb);
  • uKadecot/trunk/ssp/syssvc/banner.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2010-2012 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‰ü
    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  *              ƒJ[ƒlƒ‹‹N“®ƒƒbƒZ[ƒW‚̏o—Í
     43 *              カーネル起動メッセージの出力
    4844 */
    4945
  • uKadecot/trunk/ssp/syssvc/banner.cfg

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44
    55/*
    6  *              ƒJ[ƒlƒ‹‹N“®ƒƒbƒZ[ƒW‚̏o—͂̃Rƒ“ƒtƒBƒMƒ
    7 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     6 *              カーネル起動メッセージの出力のコンフィギュレーションファイル
    87 */
    98
  • uKadecot/trunk/ssp/syssvc/banner.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    77 *              Graduate School of Information Science, Nagoya Univ., 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‰ü
    11  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    14  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    15  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    16  *      —p‚Å‚«‚éŒ`‚ōĔ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
    22  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    23  *      ‚ƁD
    24  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    25 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    26 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    27  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    28  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    29  *        •ñ‚·‚邱‚ƁD
    30  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    31  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    32  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    33  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    34  *      –Ɛӂ·‚邱‚ƁD
     9 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
    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
    39  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    40  *  ‚̐ӔC‚𕉂í‚È‚¢D
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    4137 *
    4238 *  @(#) $Id$
     
    4440
    4541/*
    46  *              ƒJ[ƒlƒ‹‹N“®ƒƒbƒZ[ƒW‚̏o—Í
     42 *              カーネル起動メッセージの出力
    4743 */
    4844
     
    5147
    5248/*
    53  *  ƒJ[ƒlƒ‹‹N“®ƒƒbƒZ[ƒW‚̏o—Í
     49 *  カーネル起動メッセージの出力
    5450 */
    5551extern void     print_banner(intptr_t exinf) throw();
  • uKadecot/trunk/ssp/syssvc/banner.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11$
    2 $ ƒoƒi[o—Í—p‚̃eƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹
     2$ バナー出力用のテンプレートファイル
    33$
    44$FILE "kernel_cfg.c"$
    55
    6 $ ƒJ[ƒlƒ‹–¼Ì
     6$ カーネル名称
    77$KERNEL_NAME = "\"TOPPERS/SSP Kernel \""$
    88
    9 $ ƒo[ƒWƒ‡ƒ“‚ÌŽæ‚èo‚µ
     9$ バージョンの取り出し
    1010
    1111$MAJOR_VERSION = ((TKERNEL_PRVER >> 12) & 0x0f)$
     
    1313$PATCH_VERSION = ((TKERNEL_PRVER & 0x0f) & 0x0f)$
    1414
    15 $ ŠJ”­ŽÒ
     15$ 開発者
    1616$AUTHOR = "\t\t\"Copyright (C) 2010 by Meika Sugimoto\\n\"\t\\\n"$
    1717$AUTHOR = CONCAT(AUTHOR , "\t\t\"Copyright (C) 2010 by Naoki Saito\\n\"\t\\\n")$
  • uKadecot/trunk/ssp/syssvc/log_output.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1010 *              Nagoya Municipal Industrial Research Institute, JAPAN
    1111 *
    12  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    13  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    14  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    15  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    16  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    17  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    18  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    20 ƒƒ“ƒgi—˜—p
    21  *      ŽÒƒ}ƒjƒ
    22 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    23  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    24  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    25  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    26  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    34  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    35  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    36  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    37  *      –Ɛӂ·‚邱‚ƁD
     12 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17 *      スコード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21 *      の無保証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24 *      と.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28 *        報告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33 *      免責すること.
    3834 *
    39  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    40  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    41  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    42  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    43  *  ‚̐ӔC‚𕉂í‚È‚¢D
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39 *  の責任を負わない.
    4440 *
    4541 *  @(#) $Id$
     
    4743
    4844/*
    49  *              ƒVƒXƒeƒ€ƒƒO‚̃tƒH[ƒ}ƒbƒgo—Í
     45 *              システムログのフォーマット出力
    5046 */
    5147
     
    5450
    5551/*
    56  *  ”’l‚𕶎š—ñ‚É•ÏŠ·
     52 *  数値を文字列に変換
    5753 */
    5854#define CONVERT_BUFLEN  ((sizeof(uintptr_t) * CHAR_BIT + 2) / 3)
    59                                                                                 /* uintptr_tŒ^‚̐”’l‚̍ő啶Žš” */
     55                                                                                /* uintptr_t型の数値の最大文字数 */
    6056static void
    6157convert(uintptr_t val, uint_t radix, const char *radchar,
     
    8985
    9086/*
    91  *  •¶Žš—ñ®Œ`o—Í
     87 *  文字列整形出力
    9288 */
    9389static const char raddec[] = "0123456789";
     
    170166
    171167/*
    172  *  ƒƒOî•ñ‚̏o—Í
     168 *  ログ情報の出力
    173169 */
    174170void
     
    185181                break;
    186182        default:
    187                 // •s–¾‚ÈŽí•Ê‚̏ꍇ‚́C‰½‚à‚µ‚È‚¢
     183                // 不明な種別の場合は,何もしない
    188184                break;
    189185        }
     
    191187
    192188/*
    193  *  ƒƒOî•ñ‘rŽ¸ƒƒbƒZ[ƒW‚̏o—Í
     189 *  ログ情報喪失メッセージの出力
    194190 */
    195191void
  • uKadecot/trunk/ssp/syssvc/logtask.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‰ü
    15  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔ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
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    36  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    37  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    38  *      –Ɛӂ·‚邱‚ƁD
     13 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34 *      免責すること.
    3935 *
    40  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    41  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    42  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    43  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    44  *  ‚̐ӔC‚𕉂í‚È‚¢D
     36 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40 *  の責任を負わない.
    4541 *
    4642 *  @(#) $Id$
     
    4844
    4945/*
    50  *              ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒN
     46 *              システムログタスク
    5147 */
    5248
     
    5955
    6056/*
    61  *  ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒN‚̏o—͐æ‚̃|[ƒgID
     57 *  システムログタスクの出力先のポートID
    6258 */
    6359static ID       logtask_portid;
    6460
    6561/*
    66  *  ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒX‚Ö‚Ì1•¶Žšo—Í
     62 *  シリアルインタフェースへの1文字出力
    6763 */
    6864static void
     
    7369
    7470/*
    75  *  ƒƒOƒ^ƒXƒN‚̏‰Šú‰»ˆ—
     71 *  ログタスクの初期化処理
    7672 */
    7773
     
    8581}
    8682/*
    87  *  ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒN‚Ì–{‘Ì
     83 *  システムログタスクの本体
    8884 */
    8985void
     
    116112
    117113/*
    118  *  ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒN‚̏I—¹ˆ—
     114 *  システムログタスクの終了処理
    119115 */
    120116void
     
    127123
    128124        /*
    129          *  ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒXƒhƒ‰ƒCƒo‚Ì‘—Mƒoƒbƒtƒ@‚É’~Ï‚³‚ꂽƒf[ƒ^
    130          *  ‚ðC’჌ƒxƒ‹o—Í‹@”\‚ð—p‚¢‚ďo—Í‚·‚éD
     125         *  シリアルインタフェースドライバの送信バッファに蓄積されたデータ
     126         *  を,低レベル出力機能を用いて出力する.
    131127         */
    132128        while (serial_get_chr(logtask_portid, &c)) {
     
    135131
    136132        /*
    137          *  ƒƒOƒoƒbƒtƒ@‚É‹L˜^‚³‚ꂽƒƒOî•ñ‚ðC’჌ƒxƒ‹o—Í‹@”\‚ð—p‚¢‚ďo
    138          *  —Í‚·‚éD
     133         *  ログバッファに記録されたログ情報を,低レベル出力機能を用いて出
     134         *  力する.
    139135         */
    140136        while ((rercd = syslog_rea_log(&syslog)) >= 0) {
    141137                if (!msgflg) {
    142138                        /*
    143                          *  ƒƒOƒoƒbƒtƒ@‚ÉŽc‚Á‚½ƒƒOî•ñ‚Å‚ ‚邱‚Æ‚ðŽ¦‚·•¶Žš—ñ‚ðo
    144                          *  —Í‚·‚éD
     139                         *  ログバッファに残ったログ情報であることを示す文字列を出
     140                         *  力する.
    145141                         */
    146142                        syslog_printf("-- buffered messages --\n", NULL, target_fput_log);
  • uKadecot/trunk/ssp/syssvc/logtask.cfg

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44
    55/*
    6  *              ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒN‚̃Rƒ“ƒtƒBƒMƒ
    7 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     6 *              システムログタスクのコンフィギュレーションファイル
    87 */
    98
  • uKadecot/trunk/ssp/syssvc/logtask.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    11  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    12  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    13  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    14  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    15  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    16  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    17  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    18 ƒƒ“ƒgi—˜—p
    19  *      ŽÒƒ}ƒjƒ
    20 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    21  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    22  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    23  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    24  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    32  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    33  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    34  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    35  *      –Ɛӂ·‚邱‚ƁD
     10 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    3632 *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    38  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    39  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    40  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    41  *  ‚̐ӔC‚𕉂í‚È‚¢D
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    4238 *
    4339 *  @(#) $Id$
     
    4541
    4642/*
    47  *              ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒN
     43 *              システムログタスク
    4844 */
    4945
     
    5854
    5955/*
    60  *  ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒNŠÖ˜A‚̒萔‚̃fƒtƒHƒ‹ƒg’l‚Ì’è‹`
     56 *  システムログタスク関連の定数のデフォルト値の定義
    6157 */
    6258#ifndef LOGTASK_PRIORITY
    63 #define LOGTASK_PRIORITY        3               /* ‰Šú—Dæ“x */
     59#define LOGTASK_PRIORITY        3               /* 初期優先度 */
    6460#endif /* LOGTASK_PRIORITY */
    6561
    6662#ifndef LOGTASK_STACK_SIZE
    67 #define LOGTASK_STACK_SIZE      256     /* ƒXƒ^ƒbƒN—̈æ‚̃TƒCƒY */
     63#define LOGTASK_STACK_SIZE      256     /* スタック領域のサイズ */
    6864#endif /* LOGTASK_STACK_SIZE */
    6965
    7066#ifndef LOGTASK_PORTID
    71 #define LOGTASK_PORTID          1               /* ƒVƒXƒeƒ€ƒƒO—p‚̃VƒŠƒAƒ‹ƒ|[ƒg”ԍ† */
     67#define LOGTASK_PORTID          1               /* システムログ用のシリアルポート番号 */
    7268#endif /* LOGTASK_PORTID */
    7369
    7470#ifndef LOGTASK_INTERVAL
    75 #define LOGTASK_INTERVAL        10U             /* ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒN‚Ì“®ìŠÔŠuiƒ~ƒŠ•bj*/
     71#define LOGTASK_INTERVAL        10U             /* システムログタスクの動作間隔(ミリ秒)*/
    7672#endif /* LOGTASK_INTERVAL */
    7773
    7874#ifndef LOGTASK_FLUSH_WAIT
    79 #define LOGTASK_FLUSH_WAIT      1U              /* ƒtƒ‰ƒbƒVƒ
    80 ‘Ò‚¿‚Ì’PˆÊŽžŠÔiƒ~ƒŠ•bj*/
     75#define LOGTASK_FLUSH_WAIT      1U              /* フラッシュ待ちの単位時間(ミリ秒)*/
    8176#endif /* LOGTASK_FLUSH_WAIT */
    8277
    8378/*
    84  *  ƒVƒXƒeƒ€ƒƒOo—Í‚Ì‘Ò‚¿‡‚킹
     79 *  システムログ出力の待ち合わせ
    8580 *
    86  *  ƒƒOƒoƒbƒtƒ@’†‚̃ƒO‚̐”‚ªcountˆÈ‰º‚É‚È‚é‚܂ő҂Dcount‚ª0‚̏ꍇ‚É
    87  *  ‚́CƒVƒŠƒAƒ‹ƒoƒbƒtƒ@‚ª‹ó‚É‚È‚é‚Ì‚à‘҂D
     81 *  ログバッファ中のログの数がcount以下になるまで待つ.countが0の場合に
     82 *  は,シリアルバッファが空になるのも待つ.
    8883 */
    8984extern ER       logtask_flush(uint_t count) throw();
    9085
    9186/*
    92  *  ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒN‚̏‰Šú‰»ˆ—
     87 *  システムログタスクの初期化処理
    9388 */
    9489extern void logtask_initialize(ID log_portid) throw();
    9590
    9691/*
    97  *  ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒN‚Ì–{‘Ì
     92 *  システムログタスクの本体
    9893 */
    9994extern void     logtask_main(intptr_t exinf) throw();
    10095
    10196/*
    102  *  ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒN‚ð‹N“®‚·‚éŽüŠúƒnƒ“ƒhƒ‰
     97 *  システムログタスクを起動する周期ハンドラ
    10398 */
    10499extern void     cychdr_act_logtsk(intptr_t exinf) throw();
    105100
    106101/*
    107  *  ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒN‚̏I—¹ˆ—
     102 *  システムログタスクの終了処理
    108103 */
    109104extern void     logtask_terminate(intptr_t exinf) throw();
  • uKadecot/trunk/ssp/syssvc/serial.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‰ü
    15  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔ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
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    36  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    37  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    38  *      –Ɛӂ·‚邱‚ƁD
     13 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34 *      免責すること.
    3935 *
    40  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    41  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    42  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    43  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    44  *  ‚̐ӔC‚𕉂í‚È‚¢D
    45  */
    46 
    47 /*
    48  *              ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒXƒhƒ‰ƒCƒo
     36 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40 *  の責任を負わない.
     41 */
     42
     43/*
     44 *              シリアルインタフェースドライバ
    4945 */
    5046
     
    5652
    5753/*
    58  *  ƒoƒbƒtƒ@ƒTƒCƒY‚̃fƒtƒHƒ‹ƒg’l‚ƃoƒbƒtƒ@‚Ì’è‹`
     54 *  バッファサイズのデフォルト値とバッファの定義
    5955 */
    6056#ifndef SERIAL_RCV_BUFSZ1
    61 #define SERIAL_RCV_BUFSZ1       64                      /* ƒ|[ƒg1‚ÌŽóMƒoƒbƒtƒ@ƒTƒCƒY */
     57#define SERIAL_RCV_BUFSZ1       64                      /* ポート1の受信バッファサイズ */
    6258#endif /* SERIAL_RCV_BUFSZ1 */
    6359
    6460#ifndef SERIAL_SND_BUFSZ1
    65 #define SERIAL_SND_BUFSZ1       256                     /* ƒ|[ƒg1‚Ì‘—Mƒoƒbƒtƒ@ƒTƒCƒY */
     61#define SERIAL_SND_BUFSZ1       256                     /* ポート1の送信バッファサイズ */
    6662#endif /* SERIAL_SND_BUFSZ1 */
    6763
     
    6965static char     snd_buffer1[SERIAL_SND_BUFSZ1];
    7066
    71 #if TNUM_PORT >= 2                                              /* ƒ|[ƒg2‚ÉŠÖ‚·‚é’è‹` */
     67#if TNUM_PORT >= 2                                              /* ポート2に関する定義 */
    7268
    7369#ifndef SERIAL_RCV_BUFSZ2
    74 #define SERIAL_RCV_BUFSZ2       64                      /* ƒ|[ƒg2‚ÌŽóMƒoƒbƒtƒ@ƒTƒCƒY */
     70#define SERIAL_RCV_BUFSZ2       64                      /* ポート2の受信バッファサイズ */
    7571#endif /* SERIAL_RCV_BUFSZ2 */
    7672
    7773#ifndef SERIAL_SND_BUFSZ2
    78 #define SERIAL_SND_BUFSZ2       64                      /* ƒ|[ƒg2‚Ì‘—Mƒoƒbƒtƒ@ƒTƒCƒY */
     74#define SERIAL_SND_BUFSZ2       64                      /* ポート2の送信バッファサイズ */
    7975#endif /* SERIAL_SND_BUFSZ2 */
    8076
     
    8480#endif /* TNUM_PORT >= 2 */
    8581
    86 #if TNUM_PORT >= 3                                              /* ƒ|[ƒg3‚ÉŠÖ‚·‚é’è‹` */
     82#if TNUM_PORT >= 3                                              /* ポート3に関する定義 */
    8783
    8884#ifndef SERIAL_RCV_BUFSZ3
    89 #define SERIAL_RCV_BUFSZ3       64                      /* ƒ|[ƒg3‚ÌŽóMƒoƒbƒtƒ@ƒTƒCƒY */
     85#define SERIAL_RCV_BUFSZ3       64                      /* ポート3の受信バッファサイズ */
    9086#endif /* SERIAL_RCV_BUFSZ3 */
    9187
    9288#ifndef SERIAL_SND_BUFSZ3
    93 #define SERIAL_SND_BUFSZ3       64                      /* ƒ|[ƒg3‚Ì‘—Mƒoƒbƒtƒ@ƒTƒCƒY */
     89#define SERIAL_SND_BUFSZ3       64                      /* ポート3の送信バッファサイズ */
    9490#endif /* SERIAL_SND_BUFSZ3 */
    9591
     
    10096
    10197/*
    102  *  ƒVƒŠƒAƒ‹ƒ|[ƒg‰Šú‰»ƒuƒƒbƒN
     98 *  シリアルポート初期化ブロック
    10399 */
    104100typedef struct serial_port_initialization_block {
    105         uint_t  rcv_bufsz;              /* ŽóMƒoƒbƒtƒ@ƒTƒCƒY */
    106         char    *rcv_buffer;    /* ŽóMƒoƒbƒtƒ@ */
    107         uint_t  snd_bufsz;              /* ‘—Mƒoƒbƒtƒ@ƒTƒCƒY */
    108         char    *snd_buffer;    /* ‘—Mƒoƒbƒtƒ@ */
     101        uint_t  rcv_bufsz;              /* 受信バッファサイズ */
     102        char    *rcv_buffer;    /* 受信バッファ */
     103        uint_t  snd_bufsz;              /* 送信バッファサイズ */
     104        char    *snd_buffer;    /* 送信バッファ */
    109105} SPINIB;
    110106
     
    123119
    124120/*
    125  *  ƒVƒŠƒAƒ‹ƒ|[ƒgŠÇ—ƒuƒƒbƒN
     121 *  シリアルポート管理ブロック
    126122 */
    127123typedef struct serial_port_control_block {
    128         const SPINIB *p_spinib;         /* ƒVƒŠƒAƒ‹ƒ|[ƒg‰Šú‰»ƒuƒƒbƒN */
    129         SIOPCB  *p_siopcb;                      /* ƒVƒŠƒAƒ‹I/Oƒ|[ƒgŠÇ—ƒuƒƒbƒN */
    130         bool_t  openflag;                       /* ƒI[ƒvƒ“Ï‚݃tƒ‰ƒO */
    131         bool_t  errorflag;                      /* ƒGƒ‰[ƒtƒ‰ƒO */
    132         uint_t  ioctl;                          /* “®ì§Œä‚̐ݒè’l */
    133 
    134         uint_t  rcv_read_ptr;           /* ŽóMƒoƒbƒtƒ@“Ǐo‚µƒ|ƒCƒ“ƒ^ */
    135         uint_t  rcv_write_ptr;          /* ŽóMƒoƒbƒtƒ@‘ž‚݃|ƒCƒ“ƒ^ */
    136         uint_t  rcv_count;                      /* ŽóMƒoƒbƒtƒ@’†‚Ì•¶Žš” */
    137 
    138         uint_t  snd_read_ptr;           /* ‘—Mƒoƒbƒtƒ@“Ǐo‚µƒ|ƒCƒ“ƒ^ */
    139         uint_t  snd_write_ptr;          /* ‘—Mƒoƒbƒtƒ@‘ž‚݃|ƒCƒ“ƒ^ */
    140         uint_t  snd_count;                      /* ‘—Mƒoƒbƒtƒ@’†‚Ì•¶Žš” */
     124        const SPINIB *p_spinib;         /* シリアルポート初期化ブロック */
     125        SIOPCB  *p_siopcb;                      /* シリアルI/Oポート管理ブロック */
     126        bool_t  openflag;                       /* オープン済みフラグ */
     127        bool_t  errorflag;                      /* エラーフラグ */
     128        uint_t  ioctl;                          /* 動作制御の設定値 */
     129
     130        uint_t  rcv_read_ptr;           /* 受信バッファ読出しポインタ */
     131        uint_t  rcv_write_ptr;          /* 受信バッファ書込みポインタ */
     132        uint_t  rcv_count;                      /* 受信バッファ中の文字数 */
     133
     134        uint_t  snd_read_ptr;           /* 送信バッファ読出しポインタ */
     135        uint_t  snd_write_ptr;          /* 送信バッファ書込みポインタ */
     136        uint_t  snd_count;                      /* 送信バッファ中の文字数 */
    141137} SPCB;
    142138
     
    144140
    145141/*
    146  *  ƒVƒŠƒAƒ‹ƒ|[ƒgID‚©‚çƒVƒŠƒAƒ‹ƒ|[ƒgŠÇ—ƒuƒƒbƒN‚ðŽæ‚èo‚·‚½‚߂̃}ƒNƒ
     142 *  シリアルポートIDからシリアルポート管理ブロックを取り出すためのマクロ
    147143 */
    148144#define INDEX_PORT(portid)      ((uint_t)((portid) - 1))
     
    150146
    151147/*
    152  *  ƒ|ƒCƒ“ƒ^‚̃Cƒ“ƒNƒŠƒƒ“ƒg
     148 *  ポインタのインクリメント
    153149 */
    154150#define INC_PTR(ptr, bufsz)             { if (++(ptr) == (bufsz)) { (ptr) = 0; }}
    155151
    156152/*
    157  *  ƒT[ƒrƒXƒR[ƒ‹ŒÄo‚µƒ}ƒNƒ
     153 *  サービスコール呼出しマクロ
    158154 *
    159  *  ƒT[ƒrƒXƒR[ƒ‹ŒÄo‚µ‚ðŠÜ‚ÞŽ®exp‚ð•]‰¿‚µC•Ô’l‚ªƒGƒ‰[i•‰‚Ì’lj‚̏ê
    160  *  ‡‚ɂ́Cerc‚Éercd_exp‚ð•]‰¿‚µ‚½’l‚ð‘ã“ü‚µCerror_exit‚Égoto‚·‚éD
     155 *  サービスコール呼出しを含む式expを評価し,返値がエラー(負の値)の場
     156 *  合には,ercにercd_expを評価した値を代入し,error_exitにgotoする.
    161157 */
    162158#define SVC(exp, ercd_exp) \
     
    164160
    165161/*
    166  *  E_SYSƒGƒ‰[‚̐¶¬
     162 *  E_SYSエラーの生成
    167163 */
    168164static ER
     
    175171
    176172/*
    177  *  ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒXƒhƒ‰ƒCƒo‚̏‰Šú‰»ƒ‹[ƒ`ƒ“
     173 *  シリアルインタフェースドライバの初期化ルーチン
    178174 */
    179175void
     
    191187
    192188/*
    193  *  ƒVƒŠƒAƒ‹ƒCƒ“ƒ^[ƒtƒF[ƒXƒhƒ‰ƒCƒo‚̏I—¹ƒ‹[ƒ`ƒ“
     189 *  シリアルインターフェースドライバの終了ルーチン
    194190 */
    195191
     
    200196        SPCB    *p_spcb;
    201197       
    202         /* ƒoƒbƒtƒ@‚ÉŽc‚Á‚Ä‚¢‚é‘S‚Ä‚Ì•¶Žš‚ðo—Í‚·‚é */
     198        /* バッファに残っている全ての文字を出力する */
    203199        for (i = 0; i < TNUM_PORT; i++) {
    204200                p_spcb = &(spcb_table[i]);
     
    218214
    219215/*
    220  *  ƒVƒŠƒAƒ‹ƒ|[ƒg‚̃I[ƒvƒ“iƒT[ƒrƒXƒR[ƒ‹j
     216 *  シリアルポートのオープン(サービスコール)
    221217 */
    222218ER
     
    226222        ER              ercd;
    227223
    228         if (sns_dpn()) {                                /* ƒRƒ“ƒeƒLƒXƒg‚̃`ƒFƒbƒN */
     224        if (sns_dpn()) {                                /* コンテキストのチェック */
    229225                return(E_CTX);
    230226        }
    231227        if (!(1 <= portid && portid <= TNUM_PORT)) {
    232                 return(E_ID);                           /* ƒ|[ƒg”ԍ†‚̃`ƒFƒbƒN */
     228                return(E_ID);                           /* ポート番号のチェック */
    233229        }
    234230        p_spcb = get_spcb(portid);
    235231
    236232        SVC(dis_dsp(), gen_ercd_sys(p_spcb));
    237         if (p_spcb->openflag) {                 /* ƒI[ƒvƒ“Ï‚Ý‚©‚̃`ƒFƒbƒN */
     233        if (p_spcb->openflag) {                 /* オープン済みかのチェック */
    238234                ercd = E_OBJ;
    239235        }
    240236        else {
    241237                /*
    242                  *  •Ï”‚̏‰Šú‰»
     238                 *  変数の初期化
    243239                 */
    244240                p_spcb->ioctl = (IOCTL_ECHO | IOCTL_CRLF);
     
    251247
    252248                /*
    253                  *  ‚±‚êˆÈ~CŠ„ž‚Ý‚ð‹ÖŽ~‚·‚éD
     249                 *  これ以降,割込みを禁止する.
    254250                 */
    255251                if (loc_cpu() < 0) {
     
    259255
    260256                /*
    261                  *  ƒn[ƒhƒEƒFƒAˆË‘¶‚̃I[ƒvƒ“ˆ—
     257                 *  ハードウェア依存のオープン処理
    262258                 */
    263259                p_spcb->p_siopcb = sio_opn_por(portid, (intptr_t) p_spcb);
    264260
    265261                /*
    266                  *  ŽóM’Ê’mƒR[ƒ‹ƒoƒbƒN‚ð‹–‰Â‚·‚éD
     262                 *  受信通知コールバックを許可する.
    267263                 */
    268264                sio_ena_cbr(p_spcb->p_siopcb, SIO_RDY_RCV);
     
    286282
    287283/*
    288  *  ƒVƒŠƒAƒ‹ƒ|[ƒg‚̃Nƒ[ƒYiƒT[ƒrƒXƒR[ƒ‹j
     284 *  シリアルポートのクローズ(サービスコール)
    289285 */
    290286ER
     
    295291        bool_t  eflag = false;
    296292
    297         if (sns_dpn()) {                                /* ƒRƒ“ƒeƒLƒXƒg‚̃`ƒFƒbƒN */
     293        if (sns_dpn()) {                                /* コンテキストのチェック */
    298294                return(E_CTX);
    299295        }
    300296        if (!(1 <= portid && portid <= TNUM_PORT)) {
    301                 return(E_ID);                           /* ƒ|[ƒg”ԍ†‚̃`ƒFƒbƒN */
     297                return(E_ID);                           /* ポート番号のチェック */
    302298        }
    303299        p_spcb = get_spcb(portid);
    304300
    305301        SVC(dis_dsp(), gen_ercd_sys(p_spcb));
    306         if (!(p_spcb->openflag)) {              /* ƒI[ƒvƒ“Ï‚Ý‚©‚̃`ƒFƒbƒN */
     302        if (!(p_spcb->openflag)) {              /* オープン済みかのチェック */
    307303                ercd = E_OBJ;
    308304        }
    309305        else {
    310306                /*
    311                  *  ƒn[ƒhƒEƒFƒAˆË‘¶‚̃Nƒ[ƒYˆ—
     307                 *  ハードウェア依存のクローズ処理
    312308                 */
    313309                if (loc_cpu() < 0) {
     
    321317               
    322318                /*
    323                  *  ƒGƒ‰[ƒR[ƒh‚̐ݒè
     319                 *  エラーコードの設定
    324320                 */
    325321                if (eflag) {
     
    337333
    338334/*
    339  *  ƒVƒŠƒAƒ‹ƒ|[ƒg‚Ö‚Ì•¶Žš‘—M
     335 *  シリアルポートへの文字送信
    340336 *
    341  *  p_spcb‚ÅŽw’肳‚ê‚éƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚ɑ΂µ‚āC•¶Žšc‚𑗐M‚·‚éD•¶Žš
    342  *  ‚𑗐MƒŒƒWƒXƒ^‚É‚¢‚ꂽê‡‚É‚Ítrue‚ð•Ô‚·D‚»‚¤‚Å‚È‚¢ê‡‚ɂ́C‘—M
    343  *  ƒŒƒWƒXƒ^‚ª‹ó‚¢‚½‚±‚Æ‚ð’Ê’m‚·‚éƒR[ƒ‹ƒoƒbƒNŠÖ”‚ð‹–‰Â‚µCfalse‚ð•Ô‚·D
    344  *  ‚±‚̊֐”‚́CCPUƒƒbƒNó‘ԂŌĂяo‚³‚ê‚éD
     337 *  p_spcbで指定されるシリアルI/Oポートに対して,文字cを送信する.文字
     338 *  を送信レジスタにいれた場合にはtrueを返す.そうでない場合には,送信
     339 *  レジスタが空いたことを通知するコールバック関数を許可し,falseを返す.
     340 *  この関数は,CPUロック状態で呼び出される.
    345341 */
    346342Inline bool_t
     
    357353
    358354/*
    359  *  ƒVƒŠƒAƒ‹ƒ|[ƒg‚Ö‚Ì1•¶Žš‘—M
    360  *  Žw’肳‚ꂽ•¶Žš‚Ì‘—M‚ðŽŽ‚Ý‚é.
    361  *  ƒfƒoƒCƒX‚Ö‚Ì‘—M‚ª¬Œ÷‚µ‚½ê‡‚Ü‚½‚̓oƒbƒtƒ@‚É‹ó‚«‚ª‚ ‚èŠi”[‚Å‚«‚½ê‡‚Í false,
    362  *  ƒoƒbƒtƒ@‚ªƒtƒ‹‚ÅŠi”[‚Å‚«‚È‚©‚Á‚½ê‡‚Í true ‚ð•Ô‚·D
    363  *  ‚»‚êˆÈŠO‚̃Gƒ‰[‚ª”­¶‚µ‚½ê‡‚Í ER Œ^‚̃Gƒ‰[ƒR[ƒh‚ð•Ô‚·D
     355 *  シリアルポートへの1文字送信
     356 *  指定された文字の送信を試みる.
     357 *  デバイスへの送信が成功した場合またはバッファに空きがあり格納できた場合は false,
     358 *  バッファがフルで格納できなかった場合は true を返す.
     359 *  それ以外のエラーが発生した場合は ER 型のエラーコードを返す.
    364360 */
    365361static ER_BOOL
     
    370366
    371367        /*
    372          *  LF‚Ì‘O‚ÉCR‚𑗐M‚·‚éD
    373          *  ‚½‚¾‚µC1•¶ŽšˆÈ‰º‚Ì‹ó‚«‚µ‚©‚È‚¢ê‡‚̓oƒbƒtƒ@ƒtƒ‹‚Æ‚Ý‚È‚µC‘—M‚µ‚È‚¢D
     368         *  LFの前にCRを送信する.
     369         *  ただし,1文字以下の空きしかない場合はバッファフルとみなし,送信しない.
    374370         */
    375371        if (c == '\n' && (p_spcb->ioctl & IOCTL_CRLF) != 0U) {
     
    385381        if ((p_spcb->snd_count == 0U) && serial_snd_chr(p_spcb, c)) {
    386382                /*
    387                  *  ƒVƒŠƒAƒ‹I/OƒfƒoƒCƒX‚Ì‘—MƒŒƒWƒXƒ^‚É•¶Žš‚ð“ü‚ê‚邱‚Ƃɐ¬Œ÷‚µ
    388                  *  ‚½ê‡D
     383                 *  シリアルI/Oデバイスの送信レジスタに文字を入れることに成功し
     384                 *  た場合.
    389385                 */
    390386                buffer_full = false;
     
    392388        else {
    393389                /*
    394                  *  ‹ó‚«‚ª‚ ‚ê‚΁C‘—Mƒoƒbƒtƒ@‚É•¶Žš‚ð“ü‚ê‚éD
    395                  *  ‹ó‚«‚ª‚È‚¢ê‡C‘—M‚µ‚È‚¢D
     390                 *  空きがあれば,送信バッファに文字を入れる.
     391                 *  空きがない場合,送信しない.
    396392                 */
    397393                if(p_spcb->snd_count < p_spcb->p_spinib->snd_bufsz) {
     
    420416
    421417/*
    422  *  ƒVƒŠƒAƒ‹ƒ|[ƒg‚Ö‚Ì•¶Žš—ñ‘—MiƒT[ƒrƒXƒR[ƒ‹j
     418 *  シリアルポートへの文字列送信(サービスコール)
    423419 */
    424420ER_UINT
     
    430426        ER              ercd, rercd;
    431427
    432         if (sns_dpn()) {                                /* ƒRƒ“ƒeƒLƒXƒg‚̃`ƒFƒbƒN */
     428        if (sns_dpn()) {                                /* コンテキストのチェック */
    433429                return(E_CTX);
    434430        }
    435431        if (!(1 <= portid && portid <= TNUM_PORT)) {
    436                 return(E_ID);                           /* ƒ|[ƒg”ԍ†‚̃`ƒFƒbƒN */
     432                return(E_ID);                           /* ポート番号のチェック */
    437433        }
    438434
    439435        p_spcb = get_spcb(portid);
    440         if (!(p_spcb->openflag)) {              /* ƒI[ƒvƒ“Ï‚Ý‚©‚̃`ƒFƒbƒN */
     436        if (!(p_spcb->openflag)) {              /* オープン済みかのチェック */
    441437                return(E_OBJ);
    442438        }
    443         if (p_spcb->errorflag) {                /* ƒGƒ‰[ó‘Ô‚©‚̃`ƒFƒbƒN */
     439        if (p_spcb->errorflag) {                /* エラー状態かのチェック */
    444440                return(E_SYS);
    445441        }
    446442       
    447443        /*
    448          *  len ‚Ü‚Å1•¶Žš‚¸‚‘—M‚ðŽŽ‚Ý‚éD
    449          *  “r’†‚Ńoƒbƒtƒ@ƒtƒ‹‚É‚È‚Á‚½‚ç’†’f‚·‚éD
     444         *  len まで1文字ずつ送信を試みる.
     445         *  途中でバッファフルになったら中断する.
    450446         */
    451447        SVC((rercd = dis_dsp()) , rercd);
     
    465461
    466462/*
    467  *  ƒVƒŠƒAƒ‹ƒ|[ƒg‚©‚ç‚Ì1•¶ŽšŽóM
    468  *  •¶Žš‚ÌŽóM‚ðŽŽ‚Ý‚é.
    469  *  ƒoƒbƒtƒ@‚Ƀf[ƒ^‚ª‘¶Ý‚µCŽæ“¾‚Å‚«‚½ê‡‚Í false,
    470  *  ƒoƒbƒtƒ@‚ª‹ó‚Ŏ擾‚Å‚«‚È‚©‚Á‚½ê‡‚Í true ‚ð•Ô‚·D
    471  *  ‚»‚êˆÈŠO‚̃Gƒ‰[‚ª”­¶‚µ‚½ê‡‚Í ER Œ^‚̃Gƒ‰[ƒR[ƒh‚ð•Ô‚·D
     463 *  シリアルポートからの1文字受信
     464 *  文字の受信を試みる.
     465 *  バッファにデータが存在し,取得できた場合は false,
     466 *  バッファが空で取得できなかった場合は true を返す.
     467 *  それ以外のエラーが発生した場合は ER 型のエラーコードを返す.
    472468 */
    473469static ER_BOOL
     
    480476
    481477        /*
    482          *  ƒf[ƒ^‚ª‘¶Ý‚·‚ê‚΁CŽóMƒoƒbƒtƒ@‚©‚當Žš‚ðŽæ‚èo‚·D
    483          *  ‚È‚¯‚ê‚ÎŽæ‚èo‚³‚È‚¢D
     478         *  データが存在すれば,受信バッファから文字を取り出す.
     479         *  なければ取り出さない.
    484480         */
    485481        if(p_spcb->rcv_count > 0U) {
     
    501497
    502498/*
    503  *  ƒVƒŠƒAƒ‹ƒ|[ƒg‚©‚ç‚Ì•¶Žš—ñŽóMiƒT[ƒrƒXƒR[ƒ‹j
     499 *  シリアルポートからの文字列受信(サービスコール)
    504500 */
    505501ER_UINT
     
    509505        bool_t  buffer_empty;
    510506        uint_t  reacnt = 0U;
    511         char    c = '\0';               /* ƒRƒ“ƒpƒCƒ‰‚ÌŒx‚ð—}Ž~‚·‚邽‚߂ɏ‰Šú‰»‚·‚é */
     507        char    c = '\0';               /* コンパイラの警告を抑止するために初期化する */
    512508        ER              ercd, rercd;
    513509
    514         if (sns_dpn()) {                                /* ƒRƒ“ƒeƒLƒXƒg‚̃`ƒFƒbƒN */
     510        if (sns_dpn()) {                                /* コンテキストのチェック */
    515511                return(E_CTX);
    516512        }
    517513        if (!(1 <= portid && portid <= TNUM_PORT)) {
    518                 return(E_ID);                           /* ƒ|[ƒg”ԍ†‚̃`ƒFƒbƒN */
     514                return(E_ID);                           /* ポート番号のチェック */
    519515        }
    520516
    521517        p_spcb = get_spcb(portid);
    522         if (!(p_spcb->openflag)) {              /* ƒI[ƒvƒ“Ï‚Ý‚©‚̃`ƒFƒbƒN */
     518        if (!(p_spcb->openflag)) {              /* オープン済みかのチェック */
    523519                return(E_OBJ);
    524520        }
    525         if (p_spcb->errorflag) {                /* ƒGƒ‰[ó‘Ô‚©‚̃`ƒFƒbƒN */
     521        if (p_spcb->errorflag) {                /* エラー状態かのチェック */
    526522                return(E_SYS);
    527523        }
    528524       
    529525        /*
    530          *  len ‚Ü‚ÅŽóM‚ðŽŽ‚Ý‚éD
    531          *  ƒoƒbƒtƒ@‚ª‹ó‚œǂݏo‚¹‚È‚©‚Á‚½ê‡‚Í’†’f‚·‚é
     526         *  len まで受信を試みる.
     527         *  バッファが空で読み出せなかった場合は中断する
    532528         */
    533529        SVC((rercd = dis_dsp()) , rercd);
     
    541537                else {
    542538                        /*
    543                          *  ƒGƒR[ƒoƒbƒNˆ—D
     539                         *  エコーバック処理.
    544540                         */
    545541                        if ((p_spcb->ioctl & IOCTL_ECHO) != 0U) {
     
    557553
    558554/*
    559  *  ƒVƒŠƒAƒ‹ƒ|[ƒg‚̐§ŒäiƒT[ƒrƒXƒR[ƒ‹j
     555 *  シリアルポートの制御(サービスコール)
    560556 */
    561557ER
     
    564560        SPCB    *p_spcb;
    565561
    566         if (sns_dpn()) {                                /* ƒRƒ“ƒeƒLƒXƒg‚̃`ƒFƒbƒN */
     562        if (sns_dpn()) {                                /* コンテキストのチェック */
    567563                return(E_CTX);
    568564        }
    569565        if (!(1 <= portid && portid <= TNUM_PORT)) {
    570                 return(E_ID);                           /* ƒ|[ƒg”ԍ†‚̃`ƒFƒbƒN */
     566                return(E_ID);                           /* ポート番号のチェック */
    571567        }
    572568
    573569        p_spcb = get_spcb(portid);
    574         if (!(p_spcb->openflag)) {              /* ƒI[ƒvƒ“Ï‚Ý‚©‚̃`ƒFƒbƒN */
     570        if (!(p_spcb->openflag)) {              /* オープン済みかのチェック */
    575571                return(E_OBJ);
    576572        }
    577         if (p_spcb->errorflag) {                /* ƒGƒ‰[ó‘Ô‚©‚̃`ƒFƒbƒN */
     573        if (p_spcb->errorflag) {                /* エラー状態かのチェック */
    578574                return(E_SYS);
    579575        }
     
    584580
    585581/*
    586  *  ƒVƒŠƒAƒ‹ƒ|[ƒg‚©‚ç‚Ì‘—M‰Â”\ƒR[ƒ‹ƒoƒbƒN
     582 *  シリアルポートからの送信可能コールバック
    587583 */
    588584void
     
    595591        if (p_spcb->snd_count > 0U) {
    596592                /*
    597                  *  ‘—Mƒoƒbƒtƒ@’†‚©‚當Žš‚ðŽæ‚èo‚µ‚Ä‘—M‚·‚éD
     593                 *  送信バッファ中から文字を取り出して送信する.
    598594                 */
    599595                (void) sio_snd_chr(p_spcb->p_siopcb,
     
    604600        else {
    605601                /*
    606                  *  ‘—M‚·‚ׂ«•¶Žš‚ª‚È‚¢ê‡‚́C‘—M‰Â”\ƒR[ƒ‹ƒoƒbƒN‚ð‹ÖŽ~‚·‚éD
     602                 *  送信すべき文字がない場合は,送信可能コールバックを禁止する.
    607603                 */
    608604                sio_dis_cbr(p_spcb->p_siopcb, SIO_RDY_SND);
     
    611607
    612608/*
    613  *  ƒVƒŠƒAƒ‹ƒ|[ƒg‚©‚ç‚ÌŽóM’Ê’mƒR[ƒ‹ƒoƒbƒN
     609 *  シリアルポートからの受信通知コールバック
    614610 */
    615611void
     
    624620        if (p_spcb->rcv_count != p_spcb->p_spinib->rcv_bufsz) {
    625621                /*
    626                  *  ŽóM‚µ‚½•¶Žš‚ðŽóMƒoƒbƒtƒ@‚É“ü‚ê‚éD
    627                  *  ƒoƒbƒtƒ@ƒtƒ‹‚̏ꍇCŽóM‚µ‚½•¶Žš‚ðŽÌ‚Ä‚éD
     622                 *  受信した文字を受信バッファに入れる.
     623                 *  バッファフルの場合,受信した文字を捨てる.
    628624                 */
    629625                p_spcb->p_spinib->rcv_buffer[p_spcb->rcv_write_ptr] = c;
     
    634630
    635631/*
    636  *  ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒXƒhƒ‰ƒCƒo‚©‚ç‚Ì–¢‘—M•¶Žš‚ÌŽæo‚µ
     632 *  シリアルインタフェースドライバからの未送信文字の取出し
    637633 */
    638634bool_t
     
    641637        SPCB    *p_spcb;
    642638
    643         if (1 <= portid && portid <= TNUM_PORT) {       /* ƒ|[ƒg”ԍ†‚̃`ƒFƒbƒN */
     639        if (1 <= portid && portid <= TNUM_PORT) {       /* ポート番号のチェック */
    644640                p_spcb = get_spcb(portid);
    645                 if (p_spcb->openflag) {                                 /* ƒI[ƒvƒ“Ï‚Ý‚©‚̃`ƒFƒbƒN */
     641                if (p_spcb->openflag) {                                 /* オープン済みかのチェック */
    646642                        if (p_spcb->snd_count > 0U) {
    647643                                *p_c = p_spcb->p_spinib->snd_buffer[p_spcb->snd_read_ptr];
  • uKadecot/trunk/ssp/syssvc/serial.cfg

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44
    55/*
    6  *  ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒXƒhƒ‰ƒCƒo‚̃Rƒ“ƒtƒBƒMƒ
    7 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     6 *  シリアルインタフェースドライバのコンフィギュレーションファイル
    87 */
    98
  • uKadecot/trunk/ssp/syssvc/serial.h

    • 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‰ü
    15  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔ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
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    36  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    37  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    38  *      –Ɛӂ·‚邱‚ƁD
     13 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34 *      免責すること.
    3935 *
    40  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    41  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    42  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    43  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    44  *  ‚̐ӔC‚𕉂í‚È‚¢D
     36 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40 *  の責任を負わない.
    4541 *
    4642 *  @(#) $Id$
     
    4844
    4945/*
    50  *              ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒXƒhƒ‰ƒCƒo
     46 *              シリアルインタフェースドライバ
    5147 */
    5248
     
    5955
    6056/*
    61  *  ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒXƒhƒ‰ƒCƒo‚Ì—p‚¢‚éƒpƒPƒbƒg
     57 *  シリアルインタフェースドライバの用いるパケット
    6258 */
    6359typedef struct {
    64         uint_t          reacnt;                 /* ŽóMƒoƒbƒtƒ@’†‚Ì•¶Žš” */
    65         uint_t          wricnt;                 /* ‘—Mƒoƒbƒtƒ@’†‚Ì•¶Žš” */
     60        uint_t          reacnt;                 /* 受信バッファ中の文字数 */
     61        uint_t          wricnt;                 /* 送信バッファ中の文字数 */
    6662} T_SERIAL_RPOR;
    6763
    6864/*
    69  *  ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒXƒhƒ‰ƒCƒo‚̏‰Šú‰»ƒ‹[ƒ`ƒ“
     65 *  シリアルインタフェースドライバの初期化ルーチン
    7066 */
    7167extern void             serial_initialize(intptr_t exinf);
    7268
    7369/*
    74  *  ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒXƒhƒ‰ƒCƒo‚̏I—¹ˆ—ƒ‹[ƒ`ƒ“
     70 *  シリアルインタフェースドライバの終了処理ルーチン
    7571 */
    7672extern void             serial_terminate(intptr_t exinf);
    7773
    7874/*
    79  *  ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒXƒhƒ‰ƒCƒo‚©‚ç‚Ì–¢‘—M•¶Žš‚ÌŽæo‚µ
     75 *  シリアルインタフェースドライバからの未送信文字の取出し
    8076 */
    8177extern bool_t   serial_get_chr(ID portid, char *p_c);
    8278
    8379/*
    84  *  ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒXƒhƒ‰ƒCƒo‚̃T[ƒrƒXƒR[ƒ‹
     80 *  シリアルインタフェースドライバのサービスコール
    8581 */
    8682extern ER               serial_opn_por(ID portid);
     
    9187
    9288/*
    93  *  ƒVƒŠƒAƒ‹ƒCƒ“ƒ^ƒtƒF[ƒXƒhƒ‰ƒCƒo‚Ì“®ì§Œä—p‚Ì‚½‚߂̒萔
     89 *  シリアルインタフェースドライバの動作制御用のための定数
    9490 *
    95  *  ˆÈ‰º‚̒萔‚́Cƒrƒbƒg–ˆ‚ɘ_—˜a‚ð‚Æ‚Á‚Ä—p‚¢‚éD
     91 *  以下の定数は,ビット毎に論理和をとって用いる.
    9692 */
    97 #define IOCTL_NULL      0U                      /* Žw’è‚È‚µ */
    98 #define IOCTL_ECHO      0x0001U         /* ŽóM‚µ‚½•¶Žš‚ðƒGƒR[ƒoƒbƒN */
    99 #define IOCTL_CRLF      0x0010U         /* LF‚𑗐M‚·‚é‘O‚ÉCR‚ð•t‰Á */
     93#define IOCTL_NULL      0U                      /* 指定なし */
     94#define IOCTL_ECHO      0x0001U         /* 受信した文字をエコーバック */
     95#define IOCTL_CRLF      0x0010U         /* LFを送信する前にCRを付加 */
    10096
    10197#ifdef __cplusplus
  • uKadecot/trunk/ssp/syssvc/syslog.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    11  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    12  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    13  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    14  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    15  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    16  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    17  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    18 ƒƒ“ƒgi—˜—p
    19  *      ŽÒƒ}ƒjƒ
    20 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    21  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    22  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    23  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    24  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    32  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    33  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    34  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    35  *      –Ɛӂ·‚邱‚ƁD
    36  *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    38  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    39  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    40  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    41  *  ‚̐ӔC‚𕉂í‚È‚¢D
     10 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
     32 *
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    4238 *
    4339 *  $Id$
     
    4541
    4642/*
    47  *              ƒVƒXƒeƒ€ƒƒO‹@”\
     43 *              システムログ機能
    4844 */
    4945
     
    5652
    5753/*
    58  *  ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
     54 *  トレースログマクロのデフォルト定義
    5955 */
    6056#ifndef LOG_SYSLOG_WRI_LOG_ENTER
     
    9187
    9288/*
    93  *  Œ»Ý‚̃VƒXƒeƒ€Žž
     89 *  現在のシステム時刻
    9490 *
    95  *  ƒƒOŽž‚ðŽæ‚èo‚·‚½‚߂ɁC‚â‚Þ‚È‚­CƒJ[ƒlƒ‹‚Ì“à•”•Ï”‚ðŽQÆ‚µ‚Ä‚¢
    96  *  ‚éD
     91 *  ログ時刻を取り出すために,やむなく,カーネルの内部変数を参照してい
     92 *  る.
    9793 */
    9894extern ulong_t  _kernel_current_time;
    9995
    10096/*
    101  *  ƒƒOƒoƒbƒtƒ@‚Æ‚»‚ê‚ɃAƒNƒZƒX‚·‚邽‚߂̃|ƒCƒ“ƒ^
    102  */
    103 static SYSLOG   syslog_buffer[TCNT_SYSLOG_BUFFER];      /* ƒƒOƒoƒbƒtƒ@ */
    104 static uint_t   syslog_count;                   /* ƒƒOƒoƒbƒtƒ@’†‚̃ƒO‚̐” */
    105 static uint_t   syslog_head;                    /* æ“ª‚̃ƒO‚ÌŠi”[ˆÊ’u */
    106 static uint_t   syslog_tail;                    /* ŽŸ‚̃ƒO‚ÌŠi”[ˆÊ’u */
    107 static uint_t   syslog_lost;                    /* Ž¸‚í‚ꂽƒƒO‚̐” */
    108 
    109 /*
    110  *  o—Í‚·‚ׂ«ƒƒOî•ñ‚̏d—v“xiƒrƒbƒgƒ}ƒbƒvj
    111  */
    112 static uint_t   syslog_logmask;                 /* ƒƒOƒoƒbƒtƒ@‚É‹L˜^‚·‚ׂ«d—v“x */
    113 static uint_t   syslog_lowmask_not;             /* ’჌ƒxƒ‹o—Í‚·‚ׂ«d—v“xi”½“]j*/
    114 
    115 /*
    116  *  ƒVƒXƒeƒ€ƒƒO‹@”\‚̏‰Šú‰»
     97 *  ログバッファとそれにアクセスするためのポインタ
     98 */
     99static SYSLOG   syslog_buffer[TCNT_SYSLOG_BUFFER];      /* ログバッファ */
     100static uint_t   syslog_count;                   /* ログバッファ中のログの数 */
     101static uint_t   syslog_head;                    /* 先頭のログの格納位置 */
     102static uint_t   syslog_tail;                    /* 次のログの格納位置 */
     103static uint_t   syslog_lost;                    /* 失われたログの数 */
     104
     105/*
     106 *  出力すべきログ情報の重要度(ビットマップ)
     107 */
     108static uint_t   syslog_logmask;                 /* ログバッファに記録すべき重要度 */
     109static uint_t   syslog_lowmask_not;             /* 低レベル出力すべき重要度(反転)*/
     110
     111/*
     112 *  システムログ機能の初期化
    117113 */
    118114void
     
    127123
    128124/*
    129  *  ƒƒOî•ñ‚̏o—Í
     125 *  ログ情報の出力
    130126 *
    131  *  CPUƒƒbƒNó‘Ô‚âŽÀsƒRƒ“ƒeƒLƒXƒg‚É‚æ‚炸“®ì‚Å‚«‚é‚悤‚ÉŽÀ‘•‚µ‚Ä‚ ‚éD
     127 *  CPUロック状態や実行コンテキストによらず動作できるように実装してある.
    132128 */
    133129ER
     
    140136
    141137        /*
    142          *  ƒƒOŽž‚̐ݒè
     138         *  ログ時刻の設定
    143139         */
    144140        ((SYSLOG *) p_syslog)->logtim = _kernel_current_time;
    145141
    146142        /*
    147          *  ƒƒOƒoƒbƒtƒ@‚É‹L˜^
     143         *  ログバッファに記録
    148144         */
    149145        if ((syslog_logmask & LOG_MASK(prio)) != 0U) {
     
    163159
    164160        /*
    165          *  ’჌ƒxƒ‹o—Í
     161         *  低レベル出力
    166162         */
    167163        if (((~syslog_lowmask_not) & LOG_MASK(prio)) != 0U) {
     
    176172
    177173/*
    178  *  ƒƒOƒoƒbƒtƒ@‚©‚ç‚̓Ǐo‚µ
     174 *  ログバッファからの読出し
    179175 *
    180  *  CPUƒƒbƒNó‘Ô‚âŽÀsƒRƒ“ƒeƒLƒXƒg‚É‚æ‚炸“®ì‚Å‚«‚é‚悤‚ÉŽÀ‘•‚µ‚Ä‚ ‚éD
     176 *  CPUロック状態や実行コンテキストによらず動作できるように実装してある.
    181177 */
    182178ER_UINT
     
    190186
    191187        /*
    192          *  ƒƒOƒoƒbƒtƒ@‚©‚ç‚ÌŽæo‚µ
     188         *  ログバッファからの取出し
    193189         */
    194190        if (syslog_count > 0U) {
     
    212208
    213209/*
    214  *  o—Í‚·‚ׂ«ƒƒOî•ñ‚̏d—v“x‚̐ݒè
     210 *  出力すべきログ情報の重要度の設定
    215211 */
    216212ER
  • uKadecot/trunk/ssp/syssvc/syslog.cfg

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44
    55/*
    6  *              ƒVƒXƒeƒ€ƒƒO‹@”\‚̃Rƒ“ƒtƒBƒMƒ
    7 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     6 *              システムログ機能のコンフィギュレーションファイル
    87 */
    98
  • uKadecot/trunk/ssp/syssvc/syslog.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    11  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    12  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    13  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    14  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    15  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    16  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    17  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    18 ƒƒ“ƒgi—˜—p
    19  *      ŽÒƒ}ƒjƒ
    20 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    21  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    22  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    23  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    24  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    32  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    33  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    34  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    35  *      –Ɛӂ·‚邱‚ƁD
     10 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    3632 *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    38  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    39  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    40  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    41  *  ‚̐ӔC‚𕉂í‚È‚¢D
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    4238 *
    4339 *  $Id$
     
    4541
    4642/*
    47  *              ƒVƒXƒeƒ€ƒƒO‹@”\
     43 *              システムログ機能
    4844 */
    4945
     
    5652
    5753/*
    58  *  ƒVƒXƒeƒ€ƒƒOo—Í‚ðs‚¤‚½‚ß‚Ì’è‹`
     54 *  システムログ出力を行うための定義
    5955 */
    6056#include <t_syslog.h>
    6157
    6258/*
    63  *  ƒƒOƒoƒbƒtƒ@‚Æ‚»‚ê‚ɃAƒNƒZƒX‚·‚邽‚߂̃|ƒCƒ“ƒ^
     59 *  ログバッファとそれにアクセスするためのポインタ
    6460 */
    6561#ifndef TCNT_SYSLOG_BUFFER
    66 #define TCNT_SYSLOG_BUFFER      16              /* ƒƒOƒoƒbƒtƒ@‚̃TƒCƒY */
     62#define TCNT_SYSLOG_BUFFER      16              /* ログバッファのサイズ */
    6763#endif /* TCNT_SYSLOG_BUFFER */
    6864
    6965/*
    70  *  ƒVƒXƒeƒ€ƒƒO‹@”\‚̏‰Šú‰»
     66 *  システムログ機能の初期化
    7167 */
    7268extern void     syslog_initialize(intptr_t exinf) throw();
    7369
    7470/*
    75  *  ƒƒOî•ñ‚̏o—Í
     71 *  ログ情報の出力
    7672 */
    7773extern ER       syslog_wri_log(uint_t prio, const SYSLOG *p_syslog) throw();
    7874
    7975/*
    80  *  ƒƒOƒoƒbƒtƒ@‚©‚ç‚̃ƒOî•ñ‚̓Ǐo‚µ
     76 *  ログバッファからのログ情報の読出し
    8177 */
    8278extern ER_UINT  syslog_rea_log(SYSLOG *p_syslog) throw();
    8379
    8480/*
    85  *  o—Í‚·‚ׂ«ƒƒOî•ñ‚̏d—v“x‚̐ݒè
     81 *  出力すべきログ情報の重要度の設定
    8682 */
    8783extern ER       syslog_msk_log(uint_t logmask, uint_t lowmask) throw();
  • uKadecot/trunk/ssp/syssvc/vasyslog.c

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

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11/*
    2  *  asm_config.inc ¶¬ƒvƒƒWƒFƒNƒg—pƒRƒ“ƒtƒBƒMƒ
    3 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     2 *  asm_config.inc 生成プロジェクト用コンフィギュレーションファイル
    43 *
    5  *  ƒRƒ“ƒtƒBƒMƒ
    6 ƒŒ[ƒVƒ‡ƒ“‚͍s‚È‚í‚È‚¢‚½‚ß‹óƒtƒ@ƒCƒ‹‚Æ‚·‚é.
     4 *  コンフィギュレーションは行なわないため空ファイルとする.
    75 */
    86
  • uKadecot/trunk/ssp/target/grsakura_ccrx/grsakura.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2010 by Witz Corporation, JAPAN
    66 *
    7  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    8  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    9  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    10  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    11  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    12  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    13  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    14  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    15  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    16  *      —p‚Å‚«‚éŒ`‚ōĔ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
    22  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    23  *      ‚ƁD
    24  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    25 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    26 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    27  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    28  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    29  *        •ñ‚·‚邱‚ƁD
    30  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    31  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     7 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     8 *  によって公表されている GNU General Public License の Version 2 に記
     9 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     10 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     11 *  利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     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‚»‚Ì“K—p‰Â”\«‚à
    35  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    36  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     31 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     32 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    3733 *
    3834 */
    3935
    40 /* GR-SAKURA—pƒwƒbƒ_ƒtƒ@ƒ‹ */
     36/* GR-SAKURA用ヘッダファル */
    4137
    4238#ifndef TOPPERS_GRSAKURA_H
     
    4541
    4642/*
    47  *  MCUˆË‘¶î•ñ‚̓ǂݍž‚Ý
     43 *  MCU依存情報の読み込み
    4844 */
    4945#ifdef __RX
     
    5450
    5551/*
    56  *  ƒNƒƒbƒNÝ’è
     52 *  クロック設定
    5753 */
    5854
    5955/*
    60  *  ƒVƒXƒeƒ€ƒNƒƒbƒNICLK(kHz)
     56 *  システムクロックICLK(kHz)
    6157 *
    62  *  CPUCDTCCDMACACETHERCCEDMACCROMCRAM—p
     58 *  CPU,DTC,DMACA,ETHERC,EDMAC,ROM,RAM用
    6359 * 
    6460 */
     
    6662
    6763/*
    68  *  ƒNƒƒbƒNPCLK(kHz)
     64 *  クロックPCLK(kHz)
    6965 *
    70  *  ƒ^ƒCƒ}CƒVƒŠƒAƒ‹‚È‚ÇŽü•Óƒ‚ƒWƒ
    71 [ƒ‹—p
     66 *  タイマ,シリアルなど周辺モジュール用
    7267 */
    7368#define FREQ_PCLK  (48000U)
     
    7570
    7671/*
    77  *  ƒ{[ƒŒ[ƒgÝ’è
     72 *  ボーレート設定
    7873 */
    7974#define BAUD_19200BPS           UINT_C( 78 )
     
    8681
    8782/*
    88  *  ƒNƒƒbƒNƒ\[ƒX
     83 *  クロックソース
    8984 */
    9085#define UART_CLKSRC                     CLK_F1
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55$  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    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‰ü
    9 $  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12 $      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14 $      —p‚Å‚«‚éŒ`‚ōĔ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
    20 $      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21 $      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29 $      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30 $      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31 $      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32 $      –Ɛӂ·‚邱‚ƁD
     7$  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8$  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9$  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10$  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11$      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12$      スコード中に含まれていること.
     13$  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14$      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15$      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16$      の無保証規定を掲載すること.
     17$  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18$      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19$      と.
     20$    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21$        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22$    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23$        報告すること.
     24$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25$      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26$      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27$      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28$      免責すること.
    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
    37 ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38 ‚̐ӔC‚𕉂í‚È‚¢D
     30本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34の責任を負わない.
    3935$
    4036$
    4137
    4238$
    43 ƒ^[ƒQƒbƒgˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiGR-SAKURA—pj
     39ターゲット依存テンプレート(GR-SAKURA用)
    4440$
    4541
     
    5147
    5248$
    53 $  RX630ˆË‘¶•”‚̓ǂݍž‚Ý
     49$  RX630依存部の読み込み
    5450$
    5551$INCLUDE "rx630_ccrx/rx630.tf"$
    5652
    5753$
    58 ƒoƒi[o—Í—p‚ÌTFƒtƒ@ƒCƒ‹
     54バナー出力用のTFファイル
    5955$
    6056$INCLUDE "syssvc/banner.tf"$
    6157
    6258$
    63 ƒAƒZƒ“ƒuƒŠƒtƒ@ƒCƒ‹—p‚̃wƒbƒ_ƒtƒ@ƒCƒ‹‚̐¶¬
     59アセンブリファイル用のヘッダファイルの生成
    6460$
    6561$INCLUDE "target_asm_config.tf"$
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_asm_config.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11$
    2 $     asm_config.inc ¶¬—p
    3 $     ƒpƒX2‚̃^[ƒQƒbƒgˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiGR-SAKURA—pj
     2$     asm_config.inc 生成用
     3$     パス2のターゲット依存テンプレート(GR-SAKURA用)
    44$
    55$     Copyright (C) 2010 by Witz Corporation, JAPAN
     
    88
    99$
    10 ƒvƒƒZƒbƒTˆË‘¶‚̃eƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh
     10プロセッサ依存のテンプレートファイルのインクルード
    1111$
    1212$INCLUDE"rx630_ccrx/prc_asm_config.tf"$
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_cfg1_out.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11/*
    2  *              cfg1_out.c‚̃Šƒ“ƒN‚É•K—v‚ȃXƒ^ƒu‚Ì’è‹`
     2 *              cfg1_out.cのリンクに必要なスタブの定義
    33 */
    44
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_check.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55$  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    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‰ü
    9 $  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12 $      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14 $      —p‚Å‚«‚éŒ`‚ōĔ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
    20 $      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21 $      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29 $      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30 $      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31 $      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32 $      –Ɛӂ·‚邱‚ƁD
     7$  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8$  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9$  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10$  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11$      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12$      スコード中に含まれていること.
     13$  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14$      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15$      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16$      の無保証規定を掲載すること.
     17$  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18$      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19$      と.
     20$    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21$        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22$    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23$        報告すること.
     24$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25$      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26$      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27$      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28$      免責すること.
    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
    37 ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38 ‚̐ӔC‚𕉂í‚È‚¢D
     30本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34の責任を負わない.
    3935$
    4036
    4137$
    42 $     ƒpƒX3‚̃^[ƒQƒbƒgˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiGR-SAKURA—pj
     38$     パス3のターゲット依存テンプレート(GR-SAKURA用)
    4339$
    4440
    4541$
    46 ƒpƒX3‚̃vƒƒZƒbƒTˆË‘¶‚̃eƒ“ƒvƒŒ[ƒg‚̃Cƒ“ƒNƒ‹[ƒh
     42パス3のプロセッサ依存のテンプレートのインクルード
    4743$
    4844$INCLUDE"rx630_ccrx/prc_check.tf"$
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_config.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1010 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    1111 *
    12  *  ã‹L’˜ìŒ ŽÒ‚́CFree Software Foundation ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é
    13  *  GNU General Public License ‚Ì Version 2 ‚É‹Lq‚³‚ê‚Ä‚¢‚éðŒ‚©CˆÈ
    14  *  ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒF
    15  *  ƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    16  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    17  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    18  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    19  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    20  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðÄ—˜—p‰Â”\‚ȃoƒCƒiƒŠƒR[ƒhiƒŠƒƒP[ƒ^ƒuƒ‹ƒIƒu
    21  *      ƒWƒFƒNƒgƒtƒ@ƒCƒ‹‚⃉ƒCƒuƒ‰ƒŠ‚Ȃǁj‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́C—˜—p
    22  *      ‚É”º‚¤ƒhƒLƒ
    23 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C
    25  *      ‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðÄ—˜—p•s‰Â”\‚ȃoƒCƒiƒŠƒR[ƒh‚ÌŒ`‚Ü‚½‚Í‹@Ší‚É‘g
    27  *      ‚ݍž‚ñ‚¾Œ`‚Å—˜—p‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±‚ƁD
    28  *    (a) —˜—p‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ì
    31  *        Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) —˜—p‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCã‹L’˜ìŒ ŽÒ‚É•ñ‚·‚é
    33  *        ‚±‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚ð–Ɛӂ·‚邱‚ƁD
     12 *  上記著作権者は,Free Software Foundation によって公表されている
     13 *  GNU General Public License の Version 2 に記述されている条件か,以
     14 *  下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェア(本ソフトウェ
     15 *  アを改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     16 *  利用と呼ぶ)することを無償で許諾する.
     17 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     18 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     19 *      スコード中に含まれていること.
     20 *  (2) 本ソフトウェアを再利用可能なバイナリコード(リロケータブルオブ
     21 *      ジェクトファイルやライブラリなど)の形で利用する場合には,利用
     22 *      に伴うドキュメント(利用者マニュアルなど)に,上記の著作権表示,
     23 *      この利用条件および下記の無保証規定を掲載すること.
     24 *  (3) 本ソフトウェアを再利用不可能なバイナリコードの形または機器に組
     25 *      み込んだ形で利用する場合には,次のいずれかの条件を満たすこと.
     26 *    (a) 利用に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     27 *        権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 利用の形態を,別に定める方法によって,上記著作権者に報告する
     29 *        こと.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者を免責すること.
    3632 *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚́C
    38  *  –{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í
    39  *  ‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢
    40  *  ‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者は,
     34 *  本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ
     35 *  ない.また,本ソフトウェアの利用により直接的または間接的に生じたい
     36 *  かなる損害に関しても,その責任を負わない.
    4137 *
    4238 */
    4339
    4440/*
    45  *      ƒ^[ƒQƒbƒgƒVƒXƒeƒ€ˆË‘¶ƒ‚ƒWƒ
    46 [ƒ‹iGR-SAKURA—pj
     41 *      ターゲットシステム依存モジュール(GR-SAKURA用)
    4742 */
    4843
     
    5348
    5449/*
    55  *  ƒ^[ƒQƒbƒgƒVƒXƒeƒ€ˆË‘¶ ‰Šú‰»ƒ‹[ƒ`ƒ“
     50 *  ターゲットシステム依存 初期化ルーチン
    5651 */
    5752void
     
    5954{
    6055        /*
    61          *  ƒvƒƒZƒbƒTˆË‘¶‚̏‰Šú‰»
     56         *  プロセッサ依存の初期化
    6257         */
    6358        prc_initialize();
    6459
    65         /* IOƒ|[ƒg‰Šú‰» */
    66         /* P25‚ðo—̓|[ƒg‚É‚·‚é */
     60        /* IOポート初期化 */
     61        /* P25を出力ポートにする */
    6762        sil_wrb_mem(PORT2_PDR_ADDR,
    6863                sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B5_BIT);
    69         /* PA0, PA1, PA2, PA6‚ðo—̓|[ƒg‚É‚·‚é */
     64        /* PA0, PA1, PA2, PA6を出力ポートにする */
    7065        sil_wrb_mem(PORTA_PDR_ADDR,
    7166                sil_reb_mem(PORTA_PDR_ADDR) | PORT_PDR_B0_BIT | PORT_PDR_B1_BIT | PORT_PDR_B2_BIT | PORT_PDR_B6_BIT);
    72         /* PA7‚ð“ü—̓|[ƒg‚É‚·‚é */
     67        /* PA7を入力ポートにする */
    7368        sil_wrb_mem(PORTA_PDR_ADDR,
    7469                sil_reb_mem(PORTA_PDR_ADDR) & ~PORT_PDR_B7_BIT);
    7570
    7671        /*
    77          *  ƒVƒŠƒAƒ‹ƒ|[ƒg‚̐ݒè
     72         *  シリアルポートの設定
    7873         */
    7974        rx630_uart_init(TARGET_PUTC_PORTID, UART_BAUDRATE, UART_CLKSRC);
    8075
    81         /* ƒ|[ƒgP20‚ðTxD0, ƒ|[ƒgP21‚ðRxD0‚É */
     76        /* ポートP20をTxD0, ポートP21をRxD0に */
    8277        sil_wrb_mem(PORT2_PMR_ADDR, 0x03);
    8378
    84         /* ƒf[ƒ^ƒfƒBƒŒƒNƒVƒ‡ƒ“ƒŒƒWƒXƒ^(PDR)‚̐ݒè P21(RxD0)‚ð“ü—̓|[ƒg‚É‚·‚é */
     79        /* データディレクションレジスタ(PDR)の設定 P21(RxD0)を入力ポートにする */
    8580        sil_wrb_mem(PORT2_PDR_ADDR,
    8681                sil_reb_mem(PORT2_PDR_ADDR) & ~PORT_PDR_B1_BIT);
    8782
    88         /* ƒf[ƒ^ƒfƒBƒŒƒNƒVƒ‡ƒ“ƒŒƒWƒXƒ^(PDR)‚̐ݒè P20(TxD0)‚ðo—̓|[ƒg‚É‚·‚é */
     83        /* データディレクションレジスタ(PDR)の設定 P20(TxD0)を出力ポートにする */
    8984        sil_wrb_mem(PORT2_PDR_ADDR,
    9085                sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B0_BIT);
    9186
    92         /* ƒ|[ƒgP40`P47‚ðŽü•Ó‹@Ší‚É */
     87        /* ポートP40〜P47を周辺機器に */
    9388        sil_wrb_mem(PORT4_PMR_ADDR, 0xFF);
    9489
    95         /* ƒ|[ƒgP40`P47‚ð“ü—̓|[ƒg‚É‚·‚é */
     90        /* ポートP40〜P47を入力ポートにする */
    9691        sil_wrb_mem(PORT4_PDR_ADDR, 0x00);
    9792
    98         /* ‘‚«ž‚݃vƒƒeƒNƒgƒŒƒWƒXƒ^‚̐ݒè PFSWEƒrƒbƒg‚ւ̏‘‚«ž‚Ý‚ð‹–‰Â */
     93        /* 書き込みプロテクトレジスタの設定 PFSWEビットへの書き込みを許可 */
    9994        sil_wrb_mem(MPC_PWPR_ADDR, 0x00);
    100         /* ‘‚«ž‚݃vƒƒeƒNƒgƒŒƒWƒXƒ^‚̐ݒè PxxFSƒŒƒWƒXƒ^‚ւ̏‘‚«ž‚Ý‚ð‹–‰Â */
     95        /* 書き込みプロテクトレジスタの設定 PxxFSレジスタへの書き込みを許可 */
    10196        sil_wrb_mem(MPC_PWPR_ADDR, 0x40);
    10297
    103         /* P21’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ RXD0‚Æ‚·‚é */
     98        /* P21端子機能制御レジスタ RXD0とする */
    10499        sil_wrb_mem(MPC_P21PFS_ADDR, 0x0a);
    105         /* P20’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ TXD0‚Æ‚·‚é */
     100        /* P20端子機能制御レジスタ TXD0とする */
    106101        sil_wrb_mem(MPC_P20PFS_ADDR, 0x0a);
    107102
    108         /* P40’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ ƒAƒiƒƒO“ü—ÍAN000‚Æ‚·‚é */
     103        /* P40端子機能制御レジスタ アナログ入力AN000とする */
    109104        sil_wrb_mem(MPC_P40PFS_ADDR, 0x80);
    110         /* P41’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ ƒAƒiƒƒO“ü—ÍAN001‚Æ‚·‚é */
     105        /* P41端子機能制御レジスタ アナログ入力AN001とする */
    111106        sil_wrb_mem(MPC_P41PFS_ADDR, 0x80);
    112         /* P42’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ ƒAƒiƒƒO“ü—ÍAN002‚Æ‚·‚é */
     107        /* P42端子機能制御レジスタ アナログ入力AN002とする */
    113108        sil_wrb_mem(MPC_P42PFS_ADDR, 0x80);
    114         /* P43’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ ƒAƒiƒƒO“ü—ÍAN003‚Æ‚·‚é */
     109        /* P43端子機能制御レジスタ アナログ入力AN003とする */
    115110        sil_wrb_mem(MPC_P43PFS_ADDR, 0x80);
    116         /* P44’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ ƒAƒiƒƒO“ü—ÍAN004‚Æ‚·‚é */
     111        /* P44端子機能制御レジスタ アナログ入力AN004とする */
    117112        sil_wrb_mem(MPC_P44PFS_ADDR, 0x80);
    118         /* P45’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ ƒAƒiƒƒO“ü—ÍAN005‚Æ‚·‚é */
     113        /* P45端子機能制御レジスタ アナログ入力AN005とする */
    119114        sil_wrb_mem(MPC_P45PFS_ADDR, 0x80);
    120         /* P46’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ ƒAƒiƒƒO“ü—ÍAN006‚Æ‚·‚é */
     115        /* P46端子機能制御レジスタ アナログ入力AN006とする */
    121116        sil_wrb_mem(MPC_P46PFS_ADDR, 0x80);
    122         /* P47’[Žq‹@”\§ŒäƒŒƒWƒXƒ^ ƒAƒiƒƒO“ü—ÍAN007‚Æ‚·‚é */
     117        /* P47端子機能制御レジスタ アナログ入力AN007とする */
    123118        sil_wrb_mem(MPC_P47PFS_ADDR, 0x80);
    124119
    125         /* ‘‚«ž‚݃vƒƒeƒNƒgƒŒƒWƒXƒ^‚ÌÝ’è ‘‚«ž‚Ý‚ð‹ÖŽ~ */
     120        /* 書き込みプロテクトレジスタの設定 書き込みを禁止 */
    126121        sil_wrb_mem(MPC_PWPR_ADDR, 0x80);
    127122}
     
    129124
    130125/*
    131  *  ƒ^[ƒQƒbƒgƒVƒXƒeƒ€‚̏I—¹ƒ‹[ƒ`ƒ“
     126 *  ターゲットシステムの終了ルーチン
    132127 */
    133128void
     
    135130{
    136131        /*
    137          *      ƒvƒƒZƒbƒTˆË‘¶‚̏I—¹ˆ—
     132         *      プロセッサ依存の終了処理
    138133         */
    139134        prc_terminate();
     
    144139
    145140/*
    146  *  ƒVƒXƒeƒ€ƒƒO‚̒჌ƒxƒ‹o—Í‚Ì‚½‚ß‚Ì•¶Žšo—Í
     141 *  システムログの低レベル出力のための文字出力
    147142 */
    148143void
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_config.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2008-2010 by Witz Corporation, 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  *              ƒ^[ƒQƒbƒgˆË‘¶ƒ‚ƒWƒ
    48 [ƒ‹iGR-SAKURA—pj
     43 *              ターゲット依存モジュール(GR-SAKURA用)
    4944 *
    50  *  ƒJ[ƒlƒ‹‚̃^[ƒQƒbƒgˆË‘¶•”‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹Dkernel_impl.h‚̃^[
    51  *  ƒQƒbƒgˆË‘¶•”‚̈ʒu•t‚¯‚Æ‚È‚éD
     45 *  カーネルのターゲット依存部のインクルードファイル.kernel_impl.hのター
     46 *  ゲット依存部の位置付けとなる.
    5247 */
    5348
     
    5651
    5752/*
    58  *  ƒ^[ƒQƒbƒgƒVƒXƒeƒ€‚̃n[ƒhƒEƒFƒAŽ‘Œ¹‚Ì’è‹`
     53 *  ターゲットシステムのハードウェア資源の定義
    5954 */
    6055#include "grsakura.h"
     
    6257
    6358/*
    64  *  ƒfƒtƒHƒ‹ƒg‚Ì”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p‚̃Xƒ^ƒbƒN—̈æ‚Ì’è‹`
     59 *  デフォルトの非タスクコンテキスト用のスタック領域の定義
    6560 *
    66  *  ƒXƒ^ƒbƒNƒTƒCƒY‚ð•ÏX‚·‚éê‡‚Í, sectrx.inc‚Ì_DEFAULT_ISTACK
    67  *  ƒ‰ƒxƒ‹‚̈ʒu‚É‚ ‚é.blkb–½—߂̃TƒCƒY‚Æ, ˆÈ‰ºDEFAULT_ISTKSZ‚Ì
    68  *  ƒTƒCƒY‚ð‡‚í‚¹‚Ä“¯‚¶’l‚ɕύX‚·‚邱‚Æ.
     61 *  スタックサイズを変更する場合は, sectrx.incの_DEFAULT_ISTACK
     62 *  ラベルの位置にある.blkb命令のサイズと, 以下DEFAULT_ISTKSZの
     63 *  サイズを合わせて同じ値に変更すること.
    6964 */
    7065#define DEFAULT_ISTKSZ          ( 0x2000U )
     
    7368
    7469/*
    75  *  ƒ^[ƒQƒbƒgˆË‘¶‚Ì•¶Žšo—Í‚ÉŽg—p‚·‚éƒ|[ƒg‚Ì’è‹` 
     70 *  ターゲット依存の文字出力に使用するポートの定義 
    7671 */
    7772#define TARGET_PUTC_PORTID      ( 1 )
     
    8176
    8277/*
    83  *  ƒ^[ƒQƒbƒgƒVƒXƒeƒ€ˆË‘¶‚̏‰Šú‰»
     78 *  ターゲットシステム依存の初期化
    8479 */
    8580extern void     target_initialize( void );
    8681
    8782/*
    88  *  ƒ^[ƒQƒbƒgƒVƒXƒeƒ€‚̏I—¹
     83 *  ターゲットシステムの終了
    8984 *
    90  *  ƒVƒXƒeƒ€‚ðI—¹‚·‚鎞‚ÉŽg‚¤D
     85 *  システムを終了する時に使う.
    9186 */
    9287extern void     target_exit( void )     NoReturn;
     
    9691
    9792/*
    98  *  ƒvƒƒZƒbƒTˆË‘¶ƒ‚ƒWƒ
    99 [ƒ‹iRX630—pj
     93 *  プロセッサ依存モジュール(RX630用)
    10094 */
    10195#ifdef __RX
     
    106100
    107101/*
    108  *  ƒgƒŒ[ƒXƒƒO‚ÉŠÖ‚·‚éÝ’è
     102 *  トレースログに関する設定
    109103 */
    110104#define TCNT_TRACE_BUFFER       ( 32 )
    111105
    112106/*
    113  *  ƒgƒŒ[ƒXƒƒOo—Í‚·‚é‰ÓŠ‚Ì‘I‘ð
    114  *    ƒƒOo—Í‚·‚é‰ÓŠ‚ð1‚Å’è‹`
    115  *    ƒƒOo—Í‚µ‚È‚¢‰ÓŠ‚ð0‚Å’è‹`
     107 *  トレースログ出力する箇所の選択
     108 *    ログ出力する箇所を1で定義
     109 *    ログ出力しない箇所を0で定義
    116110 */
    117111#ifdef TOPPERS_ENABLE_TRACE
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_echonet.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55$  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    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‰ü
    9 $  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12 $      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14 $      —p‚Å‚«‚éŒ`‚ōĔ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
    20 $      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21 $      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29 $      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30 $      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31 $      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32 $      –Ɛӂ·‚邱‚ƁD
     7$  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8$  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9$  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10$  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11$      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12$      スコード中に含まれていること.
     13$  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14$      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15$      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16$      の無保証規定を掲載すること.
     17$  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18$      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19$      と.
     20$    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21$        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22$    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23$        報告すること.
     24$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25$      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26$      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27$      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28$      免責すること.
    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
    37 ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38 ‚̐ӔC‚𕉂í‚È‚¢D
     30本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34の責任を負わない.
    3935$
    4036$
    4137
    4238$
    43 ƒ^[ƒQƒbƒgˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiGR-SAKURA—pj
     39ターゲット依存テンプレート(GR-SAKURA用)
    4440$
    4541
     
    5147
    5248$
    53 $  RX630ˆË‘¶•”‚̓ǂݍž‚Ý
     49$  RX630依存部の読み込み
    5450$
    5551$INCLUDE "rx630_ccrx/rx630.tf"$
    5652
    5753$
    58 ƒoƒi[o—Í—p‚ÌTFƒtƒ@ƒCƒ‹
     54バナー出力用のTFファイル
    5955$
    6056$INCLUDE "syssvc/banner.tf"$
    6157
    6258$
    63 ƒAƒZƒ“ƒuƒŠƒtƒ@ƒCƒ‹—p‚̃wƒbƒ_ƒtƒ@ƒCƒ‹‚̐¶¬
     59アセンブリファイル用のヘッダファイルの生成
    6460$
    6561$INCLUDE "target_asm_config.tf"$
    6662
    67 $ ECHONET Liteƒ~ƒhƒ‹ƒEƒFƒATFƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh
     63$ ECHONET LiteミドルウェアTFファイルのインクルード
    6864$INCLUDE "../../ecnl_ssp/echonet.tf"$
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_kernel.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2008-2010 by Witz Corporation, 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‰ü
    15  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔ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
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    36  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    37  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    38  *      –Ɛӂ·‚邱‚ƁD
     13 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34 *      免責すること.
    3935 *
    40  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    41  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    42  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    43  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    44  *  ‚̐ӔC‚𕉂í‚È‚¢D
     36 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40 *  の責任を負わない.
    4541 *
    4642 */
    4743
    4844/*
    49  *  ƒJ[ƒlƒ‹‚̃^[ƒQƒbƒgˆË‘¶’è‹`iGR-SAKURA—pj
     45 *  カーネルのターゲット依存定義(GR-SAKURA用)
    5046 */
    5147
    5248/*
    53  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Ckernel.h‚ŃCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD‘¼‚̃tƒ@
    54  *  ƒCƒ‹‚©‚ç’¼ÚƒCƒ“ƒNƒ‹[ƒh‚·‚邱‚Æ‚Í‚È‚¢D‚±‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh
    55  *  ‚·‚é‘O‚ɁCt_stddef.h‚ªƒCƒ“ƒNƒ‹[ƒh‚³‚ê‚é‚̂ŁC‚»‚ê‚ç‚Ɉˑ¶‚µ‚Ä‚à‚æ
    56  *  ‚¢D
     49 *  このインクルードファイルは,kernel.hでインクルードされる.他のファ
     50 *  イルから直接インクルードすることはない.このファイルをインクルード
     51 *  する前に,t_stddef.hがインクルードされるので,それらに依存してもよ
     52 *  い.
    5753 */
    5854
     
    6258
    6359/*
    64  *  ƒvƒƒZƒbƒT‚Å‹¤’Ê‚È’è‹`
     60 *  プロセッサで共通な定義
    6561 */
    6662#ifdef __RX
     
    7167
    7268/*
    73  *  ƒTƒ|[ƒg‚·‚é‹@”\‚Ì’è‹`
     69 *  サポートする機能の定義
    7470 */
    75 #define TOPPERS_TARGET_SUPPORT_GET_UTM          /* get_utm‚ðƒTƒ|[ƒg‚·‚é */
     71#define TOPPERS_TARGET_SUPPORT_GET_UTM          /* get_utmをサポートする */
    7672
    7773
    7874/*
    79  *  ƒ^ƒCƒ€ƒeƒBƒbƒN‚Ì’è‹`
     75 *  タイムティックの定義
    8076 */
    81 #define TIC_NUME                ( 1U )          /* ƒ^ƒCƒ€ƒeƒBƒbƒN‚ÌŽüŠú‚Ì•ªŽq */
    82 #define TIC_DENO                ( 1U )          /* ƒ^ƒCƒ€ƒeƒBƒbƒN‚ÌŽüŠú‚Ì•ª•ê */
     77#define TIC_NUME                ( 1U )          /* タイムティックの周期の分子 */
     78#define TIC_DENO                ( 1U )          /* タイムティックの周期の分母 */
    8379
    8480#endif /* TOPPERS_TARGET_KERNEL_H */
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_msvc.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55$  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    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‰ü
    9 $  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12 $      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14 $      —p‚Å‚«‚éŒ`‚ōĔ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
    20 $      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21 $      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29 $      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30 $      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31 $      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32 $      –Ɛӂ·‚邱‚ƁD
     7$  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8$  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9$  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10$  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11$      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12$      スコード中に含まれていること.
     13$  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14$      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15$      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16$      の無保証規定を掲載すること.
     17$  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18$      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19$      と.
     20$    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21$        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22$    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23$        報告すること.
     24$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25$      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26$      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27$      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28$      免責すること.
    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
    37 ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38 ‚̐ӔC‚𕉂í‚È‚¢D
     30本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34の責任を負わない.
    3935$
    4036$
    4137
    4238$
    43 ƒ^[ƒQƒbƒgˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiGR-SAKURA—pj
     39ターゲット依存テンプレート(GR-SAKURA用)
    4440$
    4541
     
    5147
    5248$
    53 $  RX630ˆË‘¶•”‚̓ǂݍž‚Ý
     49$  RX630依存部の読み込み
    5450$
    5551$INCLUDE "rx630_msvc/rx630.tf"$
    5652
    5753$
    58 ƒoƒi[o—Í—p‚ÌTFƒtƒ@ƒCƒ‹
     54バナー出力用のTFファイル
    5955$
    6056$INCLUDE "syssvc/banner.tf"$
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_msvc_echonet.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55$  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    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‰ü
    9 $  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12 $      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14 $      —p‚Å‚«‚éŒ`‚ōĔ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
    20 $      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21 $      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29 $      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30 $      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31 $      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32 $      –Ɛӂ·‚邱‚ƁD
     7$  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8$  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9$  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10$  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11$      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12$      スコード中に含まれていること.
     13$  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14$      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15$      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16$      の無保証規定を掲載すること.
     17$  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18$      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19$      と.
     20$    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21$        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22$    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23$        報告すること.
     24$  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25$      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26$      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27$      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28$      免責すること.
    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
    37 ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38 ‚̐ӔC‚𕉂í‚È‚¢D
     30本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34の責任を負わない.
    3935$
    4036$
    4137
    4238$
    43 ƒ^[ƒQƒbƒgˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiGR-SAKURA—pj
     39ターゲット依存テンプレート(GR-SAKURA用)
    4440$
    4541
     
    5147
    5248$
    53 $  RX630ˆË‘¶•”‚̓ǂݍž‚Ý
     49$  RX630依存部の読み込み
    5450$
    5551$INCLUDE "rx630_msvc/rx630.tf"$
    5652
    5753$
    58 ƒoƒi[o—Í—p‚ÌTFƒtƒ@ƒCƒ‹
     54バナー出力用のTFファイル
    5955$
    6056$INCLUDE "syssvc/banner.tf"$
    6157
    62 $ ECHONET Liteƒ~ƒhƒ‹ƒEƒFƒATFƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh
     58$ ECHONET LiteミドルウェアTFファイルのインクルード
    6359$INCLUDE "../../ecnl_ssp/echonet.tf"$
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_offset.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11$
    2 $       ƒIƒtƒZƒbƒgƒtƒ@ƒCƒ‹¶¬—pƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹iGR-SAKURA—pj
     2$       オフセットファイル生成用テンプレートファイル(GR-SAKURA用)
    33$
    44
    55$
    6 •W€ƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh
     6標準テンプレートファイルのインクルード
    77$
    88$INCLUDE "kernel/genoffset.tf"$
    99
    1010$
    11 ƒRƒAˆË‘¶ƒeƒ“ƒvƒŒ[ƒg‚̃Cƒ“ƒNƒ‹[ƒhiRX630—pj
     11コア依存テンプレートのインクルード(RX630用)
    1212$
    1313$INCLUDE"../../arch/rx630_ccrx/prc_offset.tf"$
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_rename.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_serial.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1212 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    1313 *
    14  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    15  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    16  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    17  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    18  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    19  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    20  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    21  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—p
    23  *      ŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    25  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    27  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    28  *      ‚ƁD
    29  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    30 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    31 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    32  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    33  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    34  *        •ñ‚·‚邱‚ƁD
    35  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    36  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    37  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    38  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    39  *      –Ɛӂ·‚邱‚ƁD
     14 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     15 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     16 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     17 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     18 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     19 *      スコード中に含まれていること.
     20 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     21 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     22 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     23 *      の無保証規定を掲載すること.
     24 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     25 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     26 *      と.
     27 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     28 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     29 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     30 *        報告すること.
     31 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     32 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     33 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     34 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     35 *      免責すること.
    4036 *
    41  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    42  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    43  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    44  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    45  *  ‚̐ӔC‚𕉂í‚È‚¢D
     37 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     38 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     39 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     40 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     41 *  の責任を負わない.
    4642 *
    4743 */
    4844
    4945/*
    50  *      RX630 UART—pƒVƒŠƒAƒ‹I/Oƒ‚ƒWƒ
    51 [ƒ‹
     46 *      RX630 UART用シリアルI/Oモジュール
    5247 */
    5348#include "kernel_impl.h"
     
    5651
    5752/*
    58  *  SIOƒhƒ‰ƒCƒo‚̏‰Šú‰»
     53 *  SIOドライバの初期化
    5954 */
    6055void
     
    6560
    6661/*
    67  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚̃I[ƒvƒ“
     62 *  シリアルI/Oポートのオープン
    6863 */
    6964SIOPCB *
     
    7570       
    7671        /*
    77          *  ƒVƒŠƒAƒ‹I/OŠ„ž‚Ý‚ðƒ}ƒXƒN‚·‚éD
    78          *  (dis_intŠÖ”‚́A"\kernel\interrupt.c"‚É‹Lq)
     72         *  シリアルI/O割込みをマスクする.
     73         *  (dis_int関数は、"\kernel\interrupt.c"に記述)
    7974         */
    8075        p_siopcb = rx630_uart_get_siopcb(siopid);
     
    9085
    9186        /*
    92          *  ƒVƒŠƒAƒ‹I/OŠ„ž‚Ý‚ðƒ}ƒXƒN‰ðœ‚·‚éD
    93          *  (ena_intŠÖ”‚́A"\kernel\interrupt.c"‚É‹Lq)
     87         *  シリアルI/O割込みをマスク解除する.
     88         *  (ena_int関数は、"\kernel\interrupt.c"に記述)
    9489         */
    9590        ercd = ena_int(intno_sio_tx);
     
    10297
    10398/*
    104  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚̃Nƒ[ƒY
     99 *  シリアルI/Oポートのクローズ
    105100 */
    106101void
     
    111106
    112107        /*
    113          *  ƒfƒoƒCƒXˆË‘¶‚̃Nƒ[ƒYˆ—D
     108         *  デバイス依存のクローズ処理.
    114109         */
    115110        rx630_uart_cls_por(p_siopcb);
    116111       
    117112        /*
    118          *  ƒVƒŠƒAƒ‹I/OŠ„ž‚Ý‚ðƒ}ƒXƒN‚·‚éD
     113         *  シリアルI/O割込みをマスクする.
    119114         */
    120115        intno_sio_tx = rx630_uart_intno_tx(p_siopcb);
     
    127122
    128123/*
    129  *  SIO‚ÌŠ„ž‚݃nƒ“ƒhƒ‰
     124 *  SIOの割込みハンドラ
    130125 */
    131126void sio_tx_isr(intptr_t exinf)
     
    135130
    136131/*
    137  *  SIO‚ÌŠ„ž‚݃nƒ“ƒhƒ‰
     132 *  SIOの割込みハンドラ
    138133 */
    139134void sio_rx_isr(intptr_t exinf)
     
    143138
    144139/*
    145  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚Ö‚Ì•¶Žš‘—M
     140 *  シリアルI/Oポートへの文字送信
    146141 */
    147142bool_t
     
    152147
    153148/*
    154  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚Ì•¶ŽšŽóM
     149 *  シリアルI/Oポートからの文字受信
    155150 */
    156151int_t
     
    161156
    162157/*
    163  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚̃R[ƒ‹ƒoƒbƒN‚Ì‹–‰Â
     158 *  シリアルI/Oポートからのコールバックの許可
    164159 */
    165160void
     
    170165
    171166/*
    172  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚̃R[ƒ‹ƒoƒbƒN‚Ì‹ÖŽ~
     167 *  シリアルI/Oポートからのコールバックの禁止
    173168 */
    174169void
     
    179174
    180175/*
    181  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚Ì‘—M‰Â”\ƒR[ƒ‹ƒoƒbƒN
     176 *  シリアルI/Oポートからの送信可能コールバック
    182177 */
    183178void
    184179rx630_uart_irdy_snd(intptr_t exinf)
    185180{
    186         /* ‹¤’Ê•”isyssvc\serial.cj‚É‚ ‚ésio_irdy_sndŠÖ”‚ðŒÄ‚яo‚µ*/
     181        /* 共通部(syssvc\serial.c)にあるsio_irdy_snd関数を呼び出し*/
    187182        sio_irdy_snd(exinf);
    188183}
    189184
    190185/*
    191  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚ÌŽóM’Ê’mƒR[ƒ‹ƒoƒbƒN
     186 *  シリアルI/Oポートからの受信通知コールバック
    192187 */
    193188void
    194189rx630_uart_irdy_rcv(intptr_t exinf)
    195190{
    196         /* ‹¤’Ê•”isyssvc\serial.cj‚É‚ ‚ésio_irdy_rcvŠÖ”‚ðŒÄ‚яo‚µ*/
     191        /* 共通部(syssvc\serial.c)にあるsio_irdy_rcv関数を呼び出し*/
    197192        sio_irdy_rcv(exinf);
    198193}
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_serial.cfg

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11/*
    2  *      SIOƒhƒ‰ƒCƒoiGR-SAKURA—pj‚̃Rƒ“ƒtƒBƒMƒ
    3 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     2 *      SIOドライバ(GR-SAKURA用)のコンフィギュレーションファイル
    43 */
    54
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_serial.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1212 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    1313 *
    14  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    15  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    16  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    17  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    18  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    19  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    20  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    21  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—p
    23  *      ŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    25  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    27  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    28  *      ‚ƁD
    29  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    30 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    31 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    32  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    33  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    34  *        •ñ‚·‚邱‚ƁD
    35  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    36  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    37  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    38  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    39  *      –Ɛӂ·‚邱‚ƁD
     14 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     15 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     16 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     17 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     18 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     19 *      スコード中に含まれていること.
     20 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     21 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     22 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     23 *      の無保証規定を掲載すること.
     24 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     25 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     26 *      と.
     27 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     28 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     29 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     30 *        報告すること.
     31 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     32 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     33 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     34 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     35 *      免責すること.
    4036 *
    41  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    42  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    43  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    44  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    45  *  ‚̐ӔC‚𕉂í‚È‚¢D
     37 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     38 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     39 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     40 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     41 *  の責任を負わない.
    4642 *
    4743 */
    4844
    4945/*
    50  *              ƒVƒŠƒAƒ‹I/OƒfƒoƒCƒXiSIOjƒhƒ‰ƒCƒoiGR-SAKURA—pj
     46 *              シリアルI/Oデバイス(SIO)ドライバ(GR-SAKURA用)
    5147 */
    5248
     
    5854
    5955/*
    60  *  SIO‚ÌŠ„ž‚݃nƒ“ƒhƒ‰‚̃xƒNƒ^”ԍ†
     56 *  SIOの割込みハンドラのベクタ番号
    6157 */
    62 #define INHNO_SIO_TX    INT_SCI0_TEI                    /* Š„ž‚݃nƒ“ƒhƒ‰”ԍ† */
    63 #define INTNO_SIO_TX    INT_SCI0_TEI                    /* Š„ž‚ݔԍ† */
    64 #define INHNO_SIO_RX    INT_SCI0_RXI                    /* Š„ž‚݃nƒ“ƒhƒ‰”ԍ† */
    65 #define INTNO_SIO_RX    INT_SCI0_RXI                    /* Š„ž‚ݔԍ† */
    66 #define INTPRI_SIO              -4                                              /* Š„ž‚Ý—Dæ“x */
    67 #define INTATR_SIO              (TA_NULL)                               /* Š„ž‚Ý‘®« */
     58#define INHNO_SIO_TX    INT_SCI0_TEI                    /* 割込みハンドラ番号 */
     59#define INTNO_SIO_TX    INT_SCI0_TEI                    /* 割込み番号 */
     60#define INHNO_SIO_RX    INT_SCI0_RXI                    /* 割込みハンドラ番号 */
     61#define INTNO_SIO_RX    INT_SCI0_RXI                    /* 割込み番号 */
     62#define INTPRI_SIO              -4                                              /* 割込み優先度 */
     63#define INTATR_SIO              (TA_NULL)                               /* 割込み属性 */
    6864
    6965#ifndef TOPPERS_MACRO_ONLY
     
    7167
    7268/*
    73  *  SIOƒhƒ‰ƒCƒo‚̏‰Šú‰»
     69 *  SIOドライバの初期化
    7470 */
    7571extern void             sio_initialize(intptr_t exinf);
    7672
    7773/*
    78  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚̃I[ƒvƒ“
     74 *  シリアルI/Oポートのオープン
    7975 */
    8076extern SIOPCB   *sio_opn_por(ID siopid, intptr_t exinf);
    8177
    8278/*
    83  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚̃Nƒ[ƒY
     79 *  シリアルI/Oポートのクローズ
    8480 */
    8581extern void             sio_cls_por(SIOPCB *p_siopcb);
    8682
    8783/*
    88  *  SIO‚ÌŠ„ž‚݃nƒ“ƒhƒ‰
     84 *  SIOの割込みハンドラ
    8985 */
    9086extern void     sio_tx_isr(intptr_t exinf);
     
    9288
    9389/*
    94  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚Ö‚Ì•¶Žš‘—M
     90 *  シリアルI/Oポートへの文字送信
    9591 */
    9692extern bool_t   sio_snd_chr(SIOPCB *siopcb, char c);
    9793
    9894/*
    99  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚Ì•¶ŽšŽóM
     95 *  シリアルI/Oポートからの文字受信
    10096 */
    10197extern int_t    sio_rcv_chr(SIOPCB *siopcb);
    10298
    10399/*
    104  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚̃R[ƒ‹ƒoƒbƒN‚Ì‹–‰Â
     100 *  シリアルI/Oポートからのコールバックの許可
    105101 */
    106102extern void             sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn);
    107103
    108104/*
    109  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚̃R[ƒ‹ƒoƒbƒN‚Ì‹ÖŽ~
     105 *  シリアルI/Oポートからのコールバックの禁止
    110106 */
    111107extern void             sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn);
    112108
    113109/*
    114  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚Ì‘—M‰Â”\ƒR[ƒ‹ƒoƒbƒN
     110 *  シリアルI/Oポートからの送信可能コールバック
    115111 */
    116112extern void             sio_irdy_snd(intptr_t exinf);
    117113
    118114/*
    119  *  ƒVƒŠƒAƒ‹I/Oƒ|[ƒg‚©‚ç‚ÌŽóM’Ê’mƒR[ƒ‹ƒoƒbƒN
     115 *  シリアルI/Oポートからの受信通知コールバック
    120116 */
    121117extern void             sio_irdy_rcv(intptr_t exinf);
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_sil.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    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‰ü
    9  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14  *      —p‚Å‚«‚éŒ`‚ōĔ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
    20  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32  *      –Ɛӂ·‚邱‚ƁD
     7 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12 *      スコード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16 *      の無保証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19 *      と.
     20 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23 *        報告すること.
     24 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28 *      免責すること.
    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
    37  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38  *  ‚̐ӔC‚𕉂í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    3935 *
    4036 */
    4137
    4238/*
    43  *              sil.h‚̃^[ƒQƒbƒgˆË‘¶•”iGR-SAKURA—pj
     39 *              sil.hのターゲット依存部(GR-SAKURA用)
    4440 *
    45  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Csil.h‚̐擪‚ŃCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD‘¼‚̃tƒ@
    46  *  ƒCƒ‹‚©‚ç‚Í’¼ÚƒCƒ“ƒNƒ‹[ƒh‚·‚邱‚Æ‚Í‚È‚¢D‚±‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[
    47  *  ƒh‚·‚é‘O‚ɁCt_stddef.h‚ªƒCƒ“ƒNƒ‹[ƒh‚³‚ê‚é‚̂ŁC‚»‚ê‚ç‚Ɉˑ¶‚µ‚Ä‚à
    48  *  ‚æ‚¢D
     41 *  このインクルードファイルは,sil.hの先頭でインクルードされる.他のファ
     42 *  イルからは直接インクルードすることはない.このファイルをインクルー
     43 *  ドする前に,t_stddef.hがインクルードされるので,それらに依存しても
     44 *  よい.
    4945 */
    5046
     
    5349
    5450/*
    55  *  ”÷­ŽžŠÔ‘Ò‚¿‚Ì‚½‚ß‚Ì’è‹`
     51 *  微少時間待ちのための定義
    5652 */
    5753#define SIL_DLY_TIM1     69
     
    5955
    6056/*
    61  *  ƒvƒƒZƒbƒT‚Å‹¤’Ê‚È’è‹`
     57 *  プロセッサで共通な定義
    6258 */
    6359#ifdef __RX
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_stddef.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2008-2010 by Witz Corporation, 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‰ü
    15  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔ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
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    36  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    37  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    38  *      –Ɛӂ·‚邱‚ƁD
     13 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34 *      免責すること.
    3935 *
    40  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    41  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    42  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    43  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    44  *  ‚̐ӔC‚𕉂í‚È‚¢D
     36 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40 *  の責任を負わない.
    4541 *
    4642 */
    4743
    4844/*
    49  *  t_stddef.h‚̃^[ƒQƒbƒgˆË‘¶•”iGR-SAKURA—pj
     45 *  t_stddef.hのターゲット依存部(GR-SAKURA用)
    5046 *
    51  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Ct_stddef.h‚̐擪‚ŃCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD
    52  *  ‘¼‚̃tƒ@ƒCƒ‹‚©‚ç‚Í’¼ÚƒCƒ“ƒNƒ‹[ƒh‚·‚邱‚Æ‚Í‚È‚¢D‘¼‚̃Cƒ“ƒNƒ‹[ƒh
    53  *  ƒtƒ@ƒCƒ‹‚ɐ旧‚Á‚ďˆ—‚³‚ê‚邽‚߁C‘¼‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚Ɉˑ¶‚µ
    54  *  ‚Ä‚Í‚È‚ç‚È‚¢D
     47 *  このインクルードファイルは,t_stddef.hの先頭でインクルードされる.
     48 *  他のファイルからは直接インクルードすることはない.他のインクルード
     49 *  ファイルに先立って処理されるため,他のインクルードファイルに依存し
     50 *  てはならない.
    5551 */
    5652
     
    5955
    6056/*
    61  *  ƒ^[ƒQƒbƒg‚ðŽ¯•Ê‚·‚邽‚߂̃}ƒNƒ‚Ì’è‹`
     57 *  ターゲットを識別するためのマクロの定義
    6258 */
    63 #define TOPPERS_GRSAKURA                        /* ƒVƒXƒeƒ€—ªÌ */
     59#define TOPPERS_GRSAKURA                        /* システム略称 */
    6460
    6561
    6662#ifdef __RX
    6763/*
    68  *  ŠJ”­ŠÂ‹«‚Å‹¤’Ê‚È’è‹`
     64 *  開発環境で共通な定義
    6965 */
    7066/*#define TOPPERS_STDINT_TYPE1*/
     
    7369
    7470/*
    75  *  ƒvƒƒZƒbƒT‚Å‹¤’Ê‚È’è‹`
     71 *  プロセッサで共通な定義
    7672 */
    7773#include "rx630_ccrx/prc_stddef.h"
    7874#else /* __RX */
    7975/*
    80  *  ŠJ”­ŠÂ‹«‚Å‹¤’Ê‚È’è‹`
     76 *  開発環境で共通な定義
    8177 */
    8278#include <stdint.h>
     
    8480
    8581/*
    86  *  ƒvƒƒZƒbƒT‚Å‹¤’Ê‚È’è‹`
     82 *  プロセッサで共通な定義
    8783 */
    8884#include "rx630_msvc/prc_stddef.h"
     
    9288
    9389/*
    94  *  ƒAƒT[ƒVƒ‡ƒ“‚ÌŽ¸”sŽž‚ÌŽÀs’†’fˆ—
     90 *  アサーションの失敗時の実行中断処理
    9591 */
    9692#ifndef TOPPERS_MACRO_ONLY
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_support.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    77
    88/*
    9  *      ƒ^[ƒQƒbƒgƒVƒXƒeƒ€ˆË‘¶ƒ‚ƒWƒ
    10 [ƒ‹iAP-RX62N-0A—pj
     9 *      ターゲットシステム依存モジュール(AP-RX62N-0A用)
    1110 */
    1211
     
    1716{
    1817        /*
    19          * “®ìƒ‚[ƒhÝ’è
     18         * 動作モード設定
    2019         *
    21          * “®ìƒ‚[ƒh‚̓{[ƒhã‚Ì’[Žq‚É‚æ‚Á‚ÄŒˆ’肳‚ê‚邽‚ß,
    22          * ‚±‚±‚Å‚Í“Á•ÊÝ’肵‚È‚¢.
    23          * ‚½‚¾‚µ, ƒŠƒgƒ‹ƒGƒ“ƒfƒBƒAƒ“/ƒVƒ“ƒOƒ‹ƒ`ƒbƒvƒ‚[ƒh
    24          * ‚Å‚ ‚邱‚Æ‚ð‘O’ñ‚Æ‚·‚é.
     20         * 動作モードはボード上の端子によって決定されるため,
     21         * ここでは特別設定しない.
     22         * ただし, リトルエンディアン/シングルチップモード
     23         * であることを前提とする.
    2524         *
    26          * ‚Ü‚½ƒŠƒZƒbƒgŒã, “à‘ ROMF—LŒø, “à‘ RAMF—LŒø, ŠO•”ƒoƒXF–³Œø
    27          * ‚Å‚ ‚é.
     25         * またリセット後, 内蔵ROM:有効, 内蔵RAM:有効, 外部バス:無効
     26         * である.
    2827         */
    2928
    3029        /*
    31          * ƒNƒƒbƒNÝ’è
     30         * クロック設定
    3231         *
    33          * “ü—́F12MHz
    34          * PLL‰ñ˜HF12 x 8 = 96MHz
    35          * ƒVƒXƒeƒ€ƒNƒƒbƒNF96MHz
    36          * Žü•Óƒ‚ƒWƒ
    37 [ƒ‹ƒNƒƒbƒNF48MHz
    38          * ŠO•”ƒoƒXƒNƒƒbƒNF96MHz
    39          * ‚Æ‚·‚é.
     32         * 入力:12MHz
     33         * PLL回路:12 x 8 = 96MHz
     34         * システムクロック:96MHz
     35         * 周辺モジュールクロック:48MHz
     36         * 外部バスクロック:96MHz
     37         * とする.
    4038         */
    4139        sil_wrb_mem(PORT3_PDR_ADDR,
     
    5048        sil_wrh_mem(SYSTEM_PRCR_ADDR, 0xa503);
    5149
    52         /* ƒƒCƒ“ƒNƒƒbƒN”­UŠí‹­§”­U */
     50        /* メインクロック発振器強制発振 */
    5351        while((sil_reb_mem(SYSTEM_MOFCR_ADDR) & SYSTEM_MOFCR_MOFXIN) == 0)
    5452                sil_wrb_mem(SYSTEM_MOFCR_ADDR,
    5553                        sil_reb_mem(SYSTEM_MOFCR_ADDR) | SYSTEM_MOFCR_MOFXIN);
    5654
    57         /* ƒƒCƒ“ƒNƒƒbƒN”­UŠí“®ì */
     55        /* メインクロック発振器動作 */
    5856        while((sil_reb_mem(SYSTEM_MOSCCR_ADDR) & SYSTEM_MOSCCR_MOSTP) != 0)
    5957                sil_wrb_mem(SYSTEM_MOSCCR_ADDR,
     
    6967        sil_wrw_mem(SYSTEM_SCKCR_ADDR, 0x21021211);
    7068
    71         /* PLL‰ñ˜H‘I‘ð */
     69        /* PLL回路選択 */
    7270        sil_wrh_mem(SYSTEM_SCKCR3_ADDR,
    7371                (sil_reh_mem(SYSTEM_SCKCR3_ADDR) & ~SYSTEM_SCKCR3_CKSEL_MASK)
     
    7573
    7674        /*
    77          * ƒ‚ƒWƒ
    78 [ƒ‹ƒXƒgƒbƒv
     75         * モジュールストップ
    7976         *
    80          * ƒŠƒZƒbƒgŒã, “®ì‚µ‚Ä‚¢‚é“à‘ Žü•Óƒ‚ƒWƒ
    81 [ƒ‹‚ÍDMAC, DTC,
    82          * “à‘ RAM‚Ì‚Ý‚Å‚ ‚é.
    83          * ‚»‚êˆÈŠO‚Ì“à‘ Žü•Óƒ‚ƒWƒ
    84 [ƒ‹‚ÉŠÖ‚µ‚Ä‚ÍŽg—p‚·‚鑤‚Å
    85          * Ý’è‚·‚邱‚Æ.
     77         * リセット後, 動作している内蔵周辺モジュールはDMAC, DTC,
     78         * 内蔵RAMのみである.
     79         * それ以外の内蔵周辺モジュールに関しては使用する側で
     80         * 設定すること.
    8681         */
    8782        sil_wrh_mem(SYSTEM_PRCR_ADDR, 0xa500);
     
    9186{
    9287        /*
    93          * –{ƒRƒ“ƒpƒCƒ‰‚Å‚Íweak definition‚Ì‹@”\‚ª–³‚¢‚½‚ß,
    94          * “Á‚É•K—v‚ȏˆ—‚Í‚È‚¢‚ª, •K‚¸ŒÄ‚яo‚·‚±‚Æ‚Æ‚·‚é.
     88         * 本コンパイラではweak definitionの機能が無いため,
     89         * 特に必要な処理はないが, 必ず呼び出すこととする.
    9590         */
    9691}
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_syssvc.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2008-2010 by Witz Corporation, 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‰ü
    15  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔ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
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    36  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    37  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    38  *      –Ɛӂ·‚邱‚ƁD
     13 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34 *      免責すること.
    3935 *
    40  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    41  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    42  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    43  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    44  *  ‚̐ӔC‚𕉂í‚È‚¢D
     36 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40 *  の責任を負わない.
    4541 *
    4642 */
    4743
    4844/*
    49  *              ƒVƒXƒeƒ€ƒT[ƒrƒX‚̃^[ƒQƒbƒgˆË‘¶•”iGR-SAKURA—pj
     45 *              システムサービスのターゲット依存部(GR-SAKURA用)
    5046 *
    51  *  ƒVƒXƒeƒ€ƒT[ƒrƒX‚̃^[ƒQƒbƒgˆË‘¶•”‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹D‚±‚̃tƒ@
    52  *  ƒCƒ‹‚Ì“à—e‚́CƒRƒ“ƒ|[ƒlƒ“ƒg‹Lqƒtƒ@ƒCƒ‹‚É‹Lq‚³‚êC‚±‚̃tƒ@ƒCƒ‹‚Í
    53  *  –³‚­‚Ȃ錩ž‚݁D
     47 *  システムサービスのターゲット依存部のインクルードファイル.このファ
     48 *  イルの内容は,コンポーネント記述ファイルに記述され,このファイルは
     49 *  無くなる見込み.
    5450 */
    5551
     
    5955
    6056/*
    61  *  ƒvƒƒZƒbƒTˆË‘¶‚Ì’è‹`
     57 *  プロセッサ依存の定義
    6258 */
    6359#ifdef __RX
     
    6864
    6965/*
    70  *  ƒgƒŒ[ƒXƒƒO‚ÉŠÖ‚·‚éÝ’è
     66 *  トレースログに関する設定
    7167 */
    7268#ifdef TOPPERS_ENABLE_TRACE
     
    7672
    7773/*
    78  *  ƒ{[ƒhˆË‘¶î•ñ‚̓ǂݍž‚Ý
     74 *  ボード依存情報の読み込み
    7975 */
    8076#include "grsakura.h"
     
    8278
    8379/*
    84  *  ‹N“®ƒƒbƒZ[ƒW‚̃^[ƒQƒbƒgƒVƒXƒeƒ€–¼
     80 *  起動メッセージのターゲットシステム名
    8581 */
    8682#define TARGET_NAME     "GR-SAKURA"
     
    8884
    8985/*
    90  *  ƒVƒXƒeƒ€ƒƒO‚̒჌ƒxƒ‹o—Í‚Ì‚½‚ß‚Ì•¶Žšo—Í
     86 *  システムログの低レベル出力のための文字出力
    9187 *
    92  *  ƒ^[ƒQƒbƒgˆË‘¶‚Ì•û–@‚ŁC•¶Žšc‚ð•\Ž¦/o—Í/•Û‘¶‚·‚éD
     88 *  ターゲット依存の方法で,文字cを表示/出力/保存する.
    9389 */
    9490extern void     target_fput_log( char c );
     
    9692
    9793/*
    98  *  ‹N“®ƒƒbƒZ[ƒW‚Ƀ^[ƒQƒbƒgˆË‘¶•”‚Ì’˜ìŒ •\Ž¦‚ð
    99  *  ’ljÁ‚·‚邽‚߂̃}ƒNƒD
     94 *  起動メッセージにターゲット依存部の著作権表示を
     95 *  追加するためのマクロ.
    10096 */
    10197#ifdef PRC_COPYRIGHT
     
    105101
    106102/*
    107  *  ƒVƒŠƒAƒ‹ƒ|[ƒg”‚Ì’è‹`
     103 *  シリアルポート数の定義
    108104 */
    109105#define TNUM_PORT                       UINT_C( 2 )
    110106
    111107/*
    112  *  Žg—p‚·‚éƒVƒŠƒAƒ‹ƒ|[ƒgID
     108 *  使用するシリアルポートID
    113109 */
    114110#define SIO_PORTID                      UINT_C( 1 )
     
    119115
    120116/*
    121  *  ƒVƒXƒeƒ€ƒƒOƒ^ƒXƒNŠÖ˜A‚̒萔‚Ì’è‹`
     117 *  システムログタスク関連の定数の定義
    122118 *
    123  *  ƒfƒtƒHƒ‹ƒg’l‚Ì’Ê‚èD
     119 *  デフォルト値の通り.
    124120 */
    125121
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_test.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1111 *  Copyright (C) 2008-2010 by Witz Corporation, 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‰ü
    15  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔ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
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    36  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    37  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    38  *      –Ɛӂ·‚邱‚ƁD
     13 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34 *      免責すること.
    3935 *
    40  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    41  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    42  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    43  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    44  *  ‚̐ӔC‚𕉂í‚È‚¢D
     36 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40 *  の責任を負わない.
    4541 *
    4642 */
    4743
    4844/*
    49  *              ƒeƒXƒgƒvƒƒOƒ‰ƒ€‚̃^[ƒQƒbƒgˆË‘¶’è‹`iGR-SAKURA—pj
     45 *              テストプログラムのターゲット依存定義(GR-SAKURA用)
    5046 */
    5147
     
    5450
    5551/*
    56  *  ƒvƒƒZƒbƒT‚Å‹¤’Ê‚È’è‹`
     52 *  プロセッサで共通な定義
    5753 */
    5854#ifdef __RX
     
    6359
    6460/*
    65  *  ƒ^ƒXƒN‚ÅŽg—p‚·‚éƒVƒŠƒAƒ‹ƒ|[ƒgID
     61 *  タスクで使用するシリアルポートID
    6662 */
    6763#define TASK_PORTID             ( 1 )
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_timer.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1212 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    1313 *
    14  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    15  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    16  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    17  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    18  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    19  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    20  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    21  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—p
    23  *      ŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    25  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    27  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    28  *      ‚ƁD
    29  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    30 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    31 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    32  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    33  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    34  *        •ñ‚·‚邱‚ƁD
    35  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    36  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    37  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    38  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    39  *      –Ɛӂ·‚邱‚ƁD
     14 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     15 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     16 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     17 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     18 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     19 *      スコード中に含まれていること.
     20 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     21 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     22 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     23 *      の無保証規定を掲載すること.
     24 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     25 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     26 *      と.
     27 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     28 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     29 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     30 *        報告すること.
     31 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     32 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     33 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     34 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     35 *      免責すること.
    4036 *
    41  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    42  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    43  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    44  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    45  *  ‚̐ӔC‚𕉂í‚È‚¢D
     37 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     38 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     39 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     40 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     41 *  の責任を負わない.
    4642 *
    4743 */
    4844
    4945/*
    50  *              ƒ^ƒCƒ}ƒhƒ‰ƒCƒoiGR-SAKURA—pj
     46 *              タイマドライバ(GR-SAKURA用)
    5147 */
    5248
     
    5753
    5854/*
    59  *  ƒ^ƒCƒ}‚̏‰Šú‰»ˆ—
     55 *  タイマの初期化処理
    6056 */
    6157void
     
    6359{
    6460        /*
    65          * ƒ‚ƒWƒ
    66 [ƒ‹ƒXƒgƒbƒv‹@”\‚̐ݒè
     61         * モジュールストップ機能の設定
    6762         */
    68         sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA502);        /* ‘ž‚Ý‹–‰Â */
     63        sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA502);        /* 書込み許可 */
    6964        sil_wrw_mem(SYSTEM_MSTPCRA_ADDR,
    7065                sil_rew_mem(SYSTEM_MSTPCRA_ADDR) & ~SYSTEM_MSTPCRA_MSTPA15_BIT); /* CMT0 */
    71         sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA500);        /* ‘ž‚Ý‹ÖŽ~ */
     66        sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA500);        /* 書込み禁止 */
    7267
    7368        /*
    74          * ƒ^ƒCƒ}’âŽ~
     69         * タイマ停止
    7570         */
    7671        sil_wrh_mem(CMT_CMSTR0_ADDR,
     
    7873       
    7974        /*
    80          * ƒJƒEƒ“ƒgƒAƒbƒv‚É—p‚¢‚ç‚ê‚éƒNƒƒbƒNÝ’è
    81          * PCLK/32‚ð‘I‘ð
     75         * カウントアップに用いられるクロック設定
     76         * PCLK/32を選択
    8277         */
    8378        sil_wrh_mem(CMT0_CMCR_ADDR, CMT_PCLK_DIV_8);
    8479
    8580        /*
    86          * ƒRƒ“ƒyƒAƒ}ƒbƒ`ƒ^ƒCƒ}ƒJƒEƒ“ƒ^Ý’è
     81         * コンペアマッチタイマカウンタ設定
    8782         */
    8883        sil_wrh_mem(CMT0_CMCNT_ADDR, 0U);
    8984
    9085        /*
    91          * ƒRƒ“ƒyƒAƒ}ƒbƒ`ƒ^ƒCƒ}ŽüŠúÝ’è
     86         * コンペアマッチタイマ周期設定
    9287         */
    9388        sil_wrh_mem(CMT0_CMCOR_ADDR, CMCOR_PERIOD);
    9489
    9590        /*
    96          * ƒRƒ“ƒyƒAƒ}ƒbƒ`ƒ^ƒCƒ}Š„‚荞‚Ý—v‹æÝ’背ƒWƒXƒ^iISELR28j
     91         * コンペアマッチタイマ割り込み要求先設定レジスタ(ISELR28)
    9792         */
    9893        sil_wrb_mem(ICU_ISELR028_ADDR, ICU_ISEL_CPU);
    9994
    10095        /*
    101          *  ƒ^ƒCƒ}“®ìŠJŽn‘O‚ÌŠ„ž‚Ý—v‹‚ðƒNƒŠƒA
     96         *  タイマ動作開始前の割込み要求をクリア
    10297         */
    10398        x_clear_int(INTNO_TIMER);
    10499
    105100        /*
    106          * ƒRƒ“ƒyƒAƒ}ƒbƒ`ƒ^ƒCƒ}Š„‚荞‚Ý‚ð‹–‰Â
     101         * コンペアマッチタイマ割り込みを許可
    107102         */
    108103        sil_wrh_mem(CMT0_CMCR_ADDR,
     
    110105       
    111106        /*
    112          * ƒ^ƒCƒ}“®ìŠJŽn
     107         * タイマ動作開始
    113108         */
    114109        sil_wrh_mem(CMT_CMSTR0_ADDR,
     
    117112
    118113/*
    119  *  ƒ^ƒCƒ}‚Ì’âŽ~ˆ—
     114 *  タイマの停止処理
    120115 */
    121116void
     
    123118{
    124119        /*
    125          * ƒ^ƒCƒ}’âŽ~
     120         * タイマ停止
    126121         */
    127122        sil_wrh_mem(CMT_CMSTR0_ADDR,
     
    130125
    131126/*
    132  *  ƒ^ƒCƒ}Š„ž‚݃nƒ“ƒhƒ‰
     127 *  タイマ割込みハンドラ
    133128 */
    134129void target_timer_handler(void)
     
    136131        i_begin_int(INTNO_TIMER);
    137132
    138         signal_time();                          /* ƒ^ƒCƒ€ƒeƒBƒbƒN‚Ì‹Ÿ‹‹ */
     133        signal_time();                          /* タイムティックの供給 */
    139134
    140135        i_end_int(INTNO_TIMER);
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_timer.cfg

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11/*
    2  *  ƒ^ƒCƒ}ƒhƒ‰ƒCƒoiRX630—pj‚̃Rƒ“ƒtƒBƒMƒ
    3 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     2 *  タイマドライバ(RX630用)のコンフィギュレーションファイル
    43 */
    54
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_timer.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1212 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    1313 *
    14  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    15  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    16  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    17  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    18  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    19  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    20  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    21  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—p
    23  *      ŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    25  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    27  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    28  *      ‚ƁD
    29  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    30 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    31 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    32  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    33  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    34  *        •ñ‚·‚邱‚ƁD
    35  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    36  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    37  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    38  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    39  *      –Ɛӂ·‚邱‚ƁD
     14 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     15 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     16 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     17 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     18 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     19 *      スコード中に含まれていること.
     20 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     21 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     22 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     23 *      の無保証規定を掲載すること.
     24 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     25 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     26 *      と.
     27 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     28 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     29 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     30 *        報告すること.
     31 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     32 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     33 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     34 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     35 *      免責すること.
    4036 *
    41  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    42  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    43  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    44  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    45  *  ‚̐ӔC‚𕉂í‚È‚¢D
     37 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     38 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     39 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     40 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     41 *  の責任を負わない.
    4642 *
    4743 */
    4844
    4945/*
    50  *              ƒ^ƒCƒ}ƒhƒ‰ƒCƒoiGR-SAKURA—pj
     46 *              タイマドライバ(GR-SAKURA用)
    5147 */
    5248 
     
    6056
    6157/*
    62  *  ƒ^ƒCƒ}Š„ž‚݃nƒ“ƒhƒ‰“o˜^‚Ì‚½‚߂̒萔
     58 *  タイマ割込みハンドラ登録のための定数
    6359 */
    64 #define INHNO_TIMER             INT_CMT0_CMI                            /* Š„ž‚݃nƒ“ƒhƒ‰”ԍ† */
    65 #define INTNO_TIMER             INT_CMT0_CMI                            /* Š„ž‚ݔԍ† */
    66 #define INTPRI_TIMER    -5                                                      /* Š„ž‚Ý—Dæ“x */
    67 #define INTATR_TIMER    (TA_ENAINT | TA_EDGE)           /* Š„ž‚Ý‘®« */
     60#define INHNO_TIMER             INT_CMT0_CMI                            /* 割込みハンドラ番号 */
     61#define INTNO_TIMER             INT_CMT0_CMI                            /* 割込み番号 */
     62#define INTPRI_TIMER    -5                                                      /* 割込み優先度 */
     63#define INTATR_TIMER    (TA_ENAINT | TA_EDGE)           /* 割込み属性 */
    6864
    6965#ifndef TOPPERS_MACRO_ONLY
    7066
    7167/*
    72  *  ƒ^ƒCƒ}’l‚Ì“à•”•\Œ»‚ÌŒ^
     68 *  タイマ値の内部表現の型
    7369 */
    7470typedef uint16_t        CLOCK;
    7571
    7672/*
    77  *  ƒ^ƒCƒ}’l‚Ì“à•”•\Œ»‚ƃ~ƒŠ•b’PˆÊ‚Æ‚Ì•ÏŠ·
     73 *  タイマ値の内部表現とミリ秒単位との変換
    7874 *
    79  *  1ms‚̃^ƒCƒ}[Š„‚荞‚Ý‚ðŽg—p‚·‚é‚Ì‚Å‚»‚̃NƒƒbƒN‚ð’è‹`‚·‚éD
     75 *  1msのタイマー割り込みを使用するのでそのクロックを定義する.
    8076 */
    81 #define TIMER_CLOCK                             (FREQ_PCLK / 8U)                /* PCLK/Å’ᕪŽü”ä8 = 6MHz */
     77#define TIMER_CLOCK                             (FREQ_PCLK / 8U)                /* PCLK/最低分周比8 = 6MHz */
    8278#define TO_CLOCK(nume, deno)    ((CLOCK)(TIMER_CLOCK * (nume) / (deno)))
    8379#define TO_USEC(clock)                  ((SYSUTM)((clock) * 1000U / TIMER_CLOCK))
    8480
    8581/*
    86  *  Ý’è‚Å‚«‚éÅ‘å‚̃^ƒCƒ}ŽüŠúi’PˆÊ‚Í“à•”•\Œ»j
     82 *  設定できる最大のタイマ周期(単位は内部表現)
    8783 */
    8884#define MAX_CLOCK       ((CLOCK) 0xFFFFU)
    8985
    9086/*
    91  *  «”\•]‰¿—pƒVƒXƒeƒ€Žž‚ðŽæ‚èo‚·Û‚̏ˆ—ŽžŠÔ‚ÌŒ©Ï‚è’li’PˆÊ‚Í“à•”•\Œ»j
     87 *  性能評価用システム時刻を取り出す際の処理時間の見積り値(単位は内部表現)
    9288 */
    93 #define GET_TOLERANCE   (100U)  /* ˆ—’x‚ê‚ÌŒ©Ï‚è’li’PˆÊ‚Í“à•”•\Œ»j*/
     89#define GET_TOLERANCE   (100U)  /* 処理遅れの見積り値(単位は内部表現)*/
    9490#define BEFORE_IREQ(clock) \
    9591                ((clock) >= (TO_CLOCK(TIC_NUME, TIC_DENO) - GET_TOLERANCE))
    9692
    9793/*
    98  *  ƒRƒ“ƒyƒAƒ}ƒbƒ`ƒ^ƒCƒ}ƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^‚̐ݒè’l
     94 *  コンペアマッチタイマコントロールレジスタの設定値
    9995 */
    10096/*
    101  *  ƒNƒƒbƒN‘I‘ðƒrƒbƒg
     97 *  クロック選択ビット
    10298 *
    103  *  bit7‚Í—\–ñ—̈æ‚Å‚ ‚è, ‘ž‚Ý‚Í1ŒÅ’è
     99 *  bit7は予約領域であり, 書込みは1固定
    104100 */
    105101#define CMT_PCLK_DIV_8                  (0x0080U)
     
    109105
    110106/*
    111  *  ƒRƒ“ƒyƒAƒ}ƒbƒ`ƒ^ƒCƒ}ƒRƒ“ƒXƒ^ƒ“ƒgƒŒƒWƒXƒ^iCMCORj
     107 *  コンペアマッチタイマコンスタントレジスタ(CMCOR)
    112108 *
    113  *  ƒRƒ“ƒyƒAƒ}ƒbƒ`ŽüŠú‚ð1ms‚Æ‚·‚éD
    114  *  Žü•Óƒ‚ƒWƒ
    115 [ƒ‹ƒNƒƒbƒNiPCLKj48MHz‚ð8•ªŽü‚·‚é‚̂ŁC
    116  *  1ŽüŠú‚ ‚½‚è166.7nsec‚Æ‚È‚èC6000ŽüŠú‚Å1msiƒ^ƒCƒ€ƒeƒBƒbƒN‚ÌŽüŠúj‚Æ‚·‚éD
     109 *  コンペアマッチ周期を1msとする.
     110 *  周辺モジュールクロック(PCLK)48MHzを8分周するので,
     111 *  1周期あたり166.7nsecとなり,6000周期で1ms(タイムティックの周期)とする.
    117112 */
    118113#define CMCOR_PERIOD                    (TIMER_CLOCK)
    119114
    120115/*
    121  * ƒRƒ“ƒyƒAƒ}ƒbƒ`ƒ^ƒCƒ}Š„‚荞‚Ý—v‹æÝ’背ƒWƒXƒ^iiISELRijii= Š„‚荞‚݃xƒNƒ^”ԍ†j
     116 * コンペアマッチタイマ割り込み要求先設定レジスタi(ISELRi)(i= 割り込みベクタ番号)
    122117 */
    123118#define ICU_ISEL_CPU                    (0x00U)
     
    127122
    128123/*
    129  *  ƒ^ƒCƒ}‚Ì‹N“®ˆ—
     124 *  タイマの起動処理
    130125 *
    131  *  ƒ^ƒCƒ}‚ð‰Šú‰»‚µCŽüŠú“I‚ȃ^ƒCƒ}Š„ž‚Ý—v‹‚𔭐¶‚³‚¹‚éD
     126 *  タイマを初期化し,周期的なタイマ割込み要求を発生させる.
    132127 */
    133128extern void     target_timer_initialize(intptr_t exinf);
    134129
    135130/*
    136  *  ƒ^ƒCƒ}‚Ì’âŽ~ˆ—
     131 *  タイマの停止処理
    137132 *
    138  *  ƒ^ƒCƒ}‚Ì“®ì‚ð’âŽ~‚³‚¹‚éD
     133 *  タイマの動作を停止させる.
    139134 */
    140135extern void     target_timer_terminate(intptr_t exinf);
    141136
    142137/*
    143  *  ƒ^ƒCƒ}ƒŒƒWƒXƒ^’l‚̓ǂݏo‚µ
     138 *  タイマレジスタ値の読み出し
    144139 */
    145140Inline uint16_t rx630_cmt_getcount(void)
     
    149144
    150145/*
    151  *  ƒ^ƒCƒ}ƒŒƒWƒXƒ^’l‚̏‘‚«ž‚Ý
     146 *  タイマレジスタ値の書き込み
    152147 */
    153148Inline void rx630_cmt_setcount(uint16_t count)
     
    157152
    158153/*
    159  *  ƒ^ƒCƒ}‚ÌŒ»Ý’l‚̓Ǐo‚µ
     154 *  タイマの現在値の読出し
    160155 */
    161156Inline CLOCK
    162157target_timer_get_current(void)
    163158{
    164         /* ƒAƒbƒvƒJƒEƒ“ƒg‚Ì‚½‚߃^ƒCƒ}ƒŒƒWƒXƒ^’l‚ð‚»‚Ì‚Ü‚Ü•Ô‚·   */
     159        /* アップカウントのためタイマレジスタ値をそのまま返す    */
    165160        return (rx630_cmt_getcount());
    166161}
    167162
    168163/*
    169  *  ƒ^ƒCƒ}Š„ž‚Ý—v‹‚̃`ƒFƒbƒN
     164 *  タイマ割込み要求のチェック
    170165 */
    171166Inline bool_t
     
    176171
    177172/*
    178  *  ƒ^ƒCƒ}Š„ž‚݃nƒ“ƒhƒ‰
     173 *  タイマ割込みハンドラ
    179174 */
    180175extern void     target_timer_handler(void);
  • uKadecot/trunk/ssp/target/grsakura_ccrx/target_unrename.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/ssp/target/grsakura_ccrx/uip_target_config.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *                   Tomakomai National College of Technology, JAPAN
    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‰ü
    9  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14  *      —p‚Å‚«‚éŒ`‚ōĔ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
    20  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32  *      –Ɛӂ·‚邱‚ƁD
     7 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12 *      スコード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16 *      の無保証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19 *      と.
     20 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23 *        報告すること.
     24 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28 *      免責すること.
    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
    37  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38  *  ‚̐ӔC‚𕉂í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    3935 *
    4036 *  @(#) $Id$
     
    4238
    4339/*
    44  *  ƒ^[ƒQƒbƒgˆË‘¶ƒ‚ƒWƒ
    45 [ƒ‹iRX63N—pj
     40 *  ターゲット依存モジュール(RX63N用)
    4641 */
    4742
     
    5651
    5752/*
    58  *  rx62n_bus_init -- ƒ^[ƒQƒbƒgˆË‘¶•”‚̃oƒX‚̏‰Šú‰»
     53 *  rx62n_bus_init -- ターゲット依存部のバスの初期化
    5954 */
    6055
     
    6257rx62n_bus_init (void)
    6358{
    64         /* ƒC[ƒTƒlƒbƒgEƒRƒ“ƒgƒ[ƒ‰‚Ì“®ì‚ð‹–‰Â */
    65         sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA502);    /* ‘ž‚Ý‹–‰Â */
     59        /* イーサネット・コントローラの動作を許可 */
     60        sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA502);    /* 書込み許可 */
    6661        sil_wrw_mem((uint32_t *)SYSTEM_MSTPCRB_ADDR,
    6762                sil_rew_mem((uint32_t *)SYSTEM_MSTPCRB_ADDR) & ~SYSTEM_MSTPCRB_MSTPB15_BIT);
    68         sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA500);    /* ‘ž‚Ý‹ÖŽ~ */
     63        sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA500);    /* 書込み禁止 */
    6964
    70         /* EtherNET—LŒø */
    71         /* PA3`5 RMII_MDIO, RMII_MDC, RMII_LINKSTA */
     65        /* EtherNET有効 */
     66        /* PA35 RMII_MDIO, RMII_MDC, RMII_LINKSTA */
    7267        sil_wrb_mem((uint8_t *)PORTA_PMR_ADDR,
    7368                sil_reb_mem((uint8_t *)PORTA_PMR_ADDR) | (1 << 3) | (1 << 4) | (1 << 5));
    74         /* PB0`7 RXD1, RXD0, REF50CK, RX-ER, TXD-EN, TXD0, TXD1, CRS */
     69        /* PB07 RXD1, RXD0, REF50CK, RX-ER, TXD-EN, TXD0, TXD1, CRS */
    7570        sil_wrb_mem((uint8_t *)PORTB_PMR_ADDR,
    7671                sil_reb_mem((uint8_t *)PORTB_PMR_ADDR) | 0xFF);
    7772
    78         /* ‘‚«ž‚݃vƒƒeƒNƒgƒŒƒWƒXƒ^‚̐ݒè PFSWEƒrƒbƒg‚ւ̏‘‚«ž‚Ý‚ð‹–‰Â */
     73        /* 書き込みプロテクトレジスタの設定 PFSWEビットへの書き込みを許可 */
    7974        sil_wrb_mem((uint8_t *)(MPC_PWPR_ADDR) , 0x00);
    80         /* ‘‚«ž‚݃vƒƒeƒNƒgƒŒƒWƒXƒ^‚̐ݒè PxxFSƒŒƒWƒXƒ^‚ւ̏‘‚«ž‚Ý‚ð‹–‰Â */
     75        /* 書き込みプロテクトレジスタの設定 PxxFSレジスタへの書き込みを許可 */
    8176        sil_wrb_mem((uint8_t *)(MPC_PWPR_ADDR) , 0x40);
    8277
    83         /* PA3‚ðET_MDIO‚Æ‚·‚é */
     78        /* PA3をET_MDIOとする */
    8479        sil_wrb_mem((uint8_t *)MPC_PA3PFS_ADDR, 0x11);
    85         /* PA4‚ðET_MDC‚Æ‚·‚é */
     80        /* PA4をET_MDCとする */
    8681        sil_wrb_mem((uint8_t *)MPC_PA4PFS_ADDR, 0x11);
    87         /* PA5‚ðET_LINKSTA‚Æ‚·‚é */
     82        /* PA5をET_LINKSTAとする */
    8883        sil_wrb_mem((uint8_t *)MPC_PA5PFS_ADDR, 0x11);
    8984
    90         /* PB0‚ðRXD1‚Æ‚·‚é */
     85        /* PB0をRXD1とする */
    9186        sil_wrb_mem((uint8_t *)MPC_PB0PFS_ADDR, 0x12);
    92         /* PB1‚ðRXD0‚Æ‚·‚é */
     87        /* PB1をRXD0とする */
    9388        sil_wrb_mem((uint8_t *)MPC_PB1PFS_ADDR, 0x12);
    94         /* PB2‚ðREF50CK‚Æ‚·‚é */
     89        /* PB2をREF50CKとする */
    9590        sil_wrb_mem((uint8_t *)MPC_PB2PFS_ADDR, 0x12);
    96         /* PB3‚ðRX-ER‚Æ‚·‚é */
     91        /* PB3をRX-ERとする */
    9792        sil_wrb_mem((uint8_t *)MPC_PB3PFS_ADDR, 0x12);
    98         /* PB4‚ðTXD-EN‚Æ‚·‚é */
     93        /* PB4をTXD-ENとする */
    9994        sil_wrb_mem((uint8_t *)MPC_PB4PFS_ADDR, 0x12);
    100         /* PB5‚ðTXD0‚Æ‚·‚é */
     95        /* PB5をTXD0とする */
    10196        sil_wrb_mem((uint8_t *)MPC_PB5PFS_ADDR, 0x12);
    102         /* PB6‚ðTXD1‚Æ‚·‚é */
     97        /* PB6をTXD1とする */
    10398        sil_wrb_mem((uint8_t *)MPC_PB6PFS_ADDR, 0x12);
    104         /* PB7‚ðCRS‚Æ‚·‚é */
     99        /* PB7をCRSとする */
    105100        sil_wrb_mem((uint8_t *)MPC_PB7PFS_ADDR, 0x12);
    106101
    107         /* ‘‚«ž‚݃vƒƒeƒNƒgƒŒƒWƒXƒ^‚ÌÝ’è ‘‚«ž‚Ý‚ð‹ÖŽ~ */
     102        /* 書き込みプロテクトレジスタの設定 書き込みを禁止 */
    108103        sil_wrb_mem((uint8_t *)(MPC_PWPR_ADDR) , 0x80);
    109104}
    110105
    111106/*
    112  *  rx62n_inter_init -- ƒ^[ƒQƒbƒgˆË‘¶•”‚ÌŠ„ž‚݂̏‰Šú‰»
     107 *  rx62n_inter_init -- ターゲット依存部の割込みの初期化
    113108 */
    114109
  • uKadecot/trunk/ssp/target/grsakura_ccrx/uip_target_config.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2014 Cores Co., Ltd. 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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 *  @(#) $Id$
     
    4844
    4945/*
    50  *  RX62N Ethernet Controler ‚ÉŠÖ‚·‚é’è‹`
     46 *  RX62N Ethernet Controler に関する定義
    5147 */
    5248
    53 #define INHNO_IF_RX62N_TRX      INT_ETH_EINT    /* ƒpƒPƒbƒg‘—ŽóM */
    54 #define INTNO_IF_RX62N_TRX      INT_ETH_EINT    /* ƒpƒPƒbƒg‘—ŽóM */
    55 #define INTATR_IF_RX62N_TRX     (TA_NULL)       /* Š„ž‚Ý‘®«   */
    56 #define INTPRI_IF_RX62N_TRX     (-1)            /* Š„ž‚Ý—Dæ“x */
     49#define INHNO_IF_RX62N_TRX      INT_ETH_EINT    /* パケット送受信 */
     50#define INTNO_IF_RX62N_TRX      INT_ETH_EINT    /* パケット送受信 */
     51#define INTATR_IF_RX62N_TRX     (TA_NULL)       /* 割込み属性        */
     52#define INTPRI_IF_RX62N_TRX     (-1)            /* 割込み優先度       */
    5753
    5854#ifndef TOPPERS_MACRO_ONLY
    5955
    6056/*
    61  *  ŠÖ”
     57 *  関数
    6258 */
    6359
  • uKadecot/trunk/tools/makefsdata/diskio.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/diskio.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/ff.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/ff.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/ffconf.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/integer.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/main.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    266266
    267267                        while (res == FR_OK) {
    268                                 /* ˆ³k */
     268                                /* 圧縮 */
    269269                                memset(&stream, 0, sizeof(stream));
    270270                                /* allocate deflate memory, set up for gzip compression */
  • uKadecot/trunk/tools/makefsdata/mod_deflate.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/option/cc932.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/option/cc936.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/option/cc949.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/option/cc950.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/option/ccsbcs.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/option/syscall.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/makefsdata/option/unicode.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/adler32.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/compress.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/crc32.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/crc32.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/deflate.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/deflate.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/gzguts.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/infback.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/inffast.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/inffast.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/inffixed.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/inflate.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/inflate.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/inftrees.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/inftrees.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/trees.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/trees.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/uncompr.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/zconf.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/zlib.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/zutil.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/tools/zlib/zutil.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/dhcpc/dhcpc.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/dhcpc/dhcpc.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/base64.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/base64.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/http-strings.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/http-strings.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/http_parser.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/http_parser.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/http_pcb.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/http_pcb.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/httpd-fs.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/httpd-fs.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/httpd.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    335335  }
    336336
    337   /* ""‚©"/"‚È‚ç"index.html"‚ɕύX */
     337  /* ""か"/"なら"index.html"に変更 */
    338338  if ((s->message.request_url[0] == '\0') || ((s->message.request_url[0] == '/') && (s->message.request_url[1] == '\0'))) {
    339339    strncpy_s(s->message.request_url, sizeof(s->message.request_url), http_index_html, sizeof(s->message.request_url));
  • uKadecot/trunk/uip/apps/webserver/httpd.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/sha1.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/sha1.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/webserver.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/apps/webserver/websocket.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2015 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
    32  *
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
     28 *
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    8682                // MASK Payload len
    8783                case 1:
    88                         // MASK=0‚ÍNG
     84                        // MASK=0NG
    8985                        if((*pos & 0x80) == 0)
    9086                                return -1/*MASK_ERROR*/;
  • uKadecot/trunk/uip/apps/webserver/websocket.h

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

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2014 Cores Co., Ltd. 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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 *  @(#) $Id$
     
    9995        switch(state){
    10096        case PHY_STATE_UNINIT:
    101                 /* PHY‚̃ŠƒZƒbƒg */
     97                /* PHYのリセット */
    10298                phy_write_reg(phy_addr, PHY_CONTROL_REGISTER, PHY_CONTROL_RESET);
    10399
    104                 /* 500ms‘Ò‚Â */
    105                 /* tslp_tsk(500); •s—vH */
     100                /* 500ms待つ */
     101                /* tslp_tsk(500); 不要? */
    106102                /* continue; */
    107103        case PHY_STATE_RESETING:
    108                 /* ƒŠƒZƒbƒgŠ®—¹‚ÌŠm”F */
     104                /* リセット完了の確認 */
    109105                if((phy_read_reg(phy_addr, PHY_CONTROL_REGISTER) & PHY_CONTROL_RESET) != 0)
    110106                        return PHY_STATE_RESETING;
     
    130126                if(reset < 2){
    131127#endif
    132                 /* ƒŠƒ“ƒNŠ®—¹‚ÌŠm”F */
     128                /* リンク完了の確認 */
    133129                if(!phy_is_link(phy_addr))
    134130                        return PHY_STATE_RESET;
     
    137133                reset = 0;
    138134#endif
    139                 /* ƒI[ƒgƒlƒSƒVƒG[ƒVƒ‡ƒ“‚Ì‚¨’m‚点‚ð—LŒø‚ɐݒè */
     135                /* オートネゴシエーションのお知らせを有効に設定 */
    140136                phy_write_reg(phy_addr, PHY_AN_ADVERTISEMENT_REGISTER,
    141137                        PHY_AN_AD_100BASE_T4 | PHY_AN_AD_100BASE_TX_FULL_DUPLEX | PHY_AN_AD_100BASE_TX_HALF_DUPLEX
    142138                        | PHY_AN_AD_10BASE_T_FULL_DUPLEX | PHY_AN_AD_10BASE_T_HALF_DUPLEX | PHY_AN_AD_SELECTOR_FIELD);
    143139
    144                 /* ƒI[ƒgƒlƒSƒVƒG[ƒVƒ‡ƒ“‚ð—LŒø‚ɐݒè */
     140                /* オートネゴシエーションを有効に設定 */
    145141                phy_write_reg(phy_addr, PHY_CONTROL_REGISTER, PHY_CONTROL_SPEED_SELECT | PHY_CONTROL_A_N_ENABLE);
    146142
     
    151147                if(reset < 2){
    152148#endif
    153                 /* ƒI[ƒgƒlƒSƒVƒG[ƒVƒ‡ƒ“Š®—¹‚ÌŠm”F */
     149                /* オートネゴシエーション完了の確認 */
    154150                if((phy_read_reg(phy_addr, PHY_STATUS_REGISTER) & PHY_STATUS_A_N_COMPLETE) == 0)
    155151                        return PHY_STATE_LINKED;
     
    174170{
    175171#ifdef __RX
    176         /* ƒŠƒ“ƒN‚ÌŠm”F */
     172        /* リンクの確認 */
    177173        return (phy_read_reg(phy_addr, PHY_STATUS_REGISTER) & PHY_STATUS_LINK_STATUS) != 0;
    178174#else
     
    186182        int i;
    187183
    188         /* PRE F32ŒÂ‚̘A‘±‚µ‚½1b */
     184        /* PRE :32個の連続した1b */
    189185        for (i = 0; i < 32; i++)
    190186                phy_write_bit(true);
    191187
    192         /* ST FƒtƒŒ[ƒ€‚̐擪‚ðŽ¦‚·01b‚̃‰ƒCƒg */
    193         phy_write_bit(false);
    194         phy_write_bit(true);
    195 
    196         /* OP FƒAƒNƒZƒXŽí•Ê‚ðŽ¦‚·ƒR[ƒh‚̃‰ƒCƒg */
    197         phy_write_bit(true);
    198         phy_write_bit(false);
    199 
    200         /* PHYAD FPHY-LSI‚̃AƒhƒŒƒX‚ª1”Ԃ̏ꍇA00001b‚ðƒ‰ƒCƒgiMSB ‚©‚珇ŽŸƒ‰ƒCƒgjB */
     188        /* ST :フレームの先頭を示す01bのライト */
     189        phy_write_bit(false);
     190        phy_write_bit(true);
     191
     192        /* OP :アクセス種別を示すコードのライト */
     193        phy_write_bit(true);
     194        phy_write_bit(false);
     195
     196        /* PHYAD :PHY-LSIのアドレスが1番の場合、00001bをライト(MSB から順次ライト)。 */
    201197        phy_write_bit((phy_addr & 0x10) != 0);
    202198        phy_write_bit((phy_addr & 0x08) != 0);
     
    205201        phy_write_bit((phy_addr & 0x01) != 0);
    206202
    207         /* REGAD FƒŒƒWƒXƒ^ƒAƒhƒŒƒX‚ª1”Ԃ̏ꍇA00001b‚ðƒ‰ƒCƒgiMSB‚©‚珇ŽŸƒ‰ƒCƒgjB */
     203        /* REGAD :レジスタアドレスが1番の場合、00001bをライト(MSBから順次ライト)。 */
    208204        phy_write_bit((reg_addr & 0x10) != 0);
    209205        phy_write_bit((reg_addr & 0x08) != 0);
     
    212208        phy_write_bit((reg_addr & 0x01) != 0);
    213209
    214         /* TA FMII/RMIIƒCƒ“ƒ^ƒtƒF[ƒXã‚Ńf[ƒ^‚Ì‘—MŒ³‚ðØ‚è‘Ö‚¦‚鎞ŠÔ */
    215         /* uƒoƒX‰ð•úviZ0‚Æ•\‹Lj‚ðs‚¤ */
     210        /* TA :MII/RMIIインタフェース上でデータの送信元を切り替える時間 */
     211        /* 「バス解放」(Z0と表記)を行う */
    216212        phy_release_bus();
    217213
    218         /* DATA F16ƒrƒbƒg‚̃f[ƒ^BMSB‚©‚珇ŽŸƒŠ[ƒh */
     214        /* DATA :16ビットのデータ。MSBから順次リード */
    219215        for (bit = 0x8000; bit != 0; bit >>= 1) {
    220216                if(phy_read_bit())
     
    222218        }
    223219
    224         /* IDLE FŽŸ‚ÌMIIŠÇ—ƒtƒH[ƒ}ƒbƒg“ü—Í‚Ü‚Å‚Ì‘Ò‹@ŽžŠÔ */
    225         /* ‚·‚Å‚ÉTAŽž‚ɃoƒX‰ð•úÏ‚Ý‚Å‚ ‚萧Œä•s—v */
     220        /* IDLE :次のMII管理フォーマット入力までの待機時間 */
     221        /* すでにTA時にバス解放済みであり制御不要 */
    226222        phy_release_bus();
    227223
     
    234230        uint16_t bit;
    235231
    236         /* PRE F32ŒÂ‚̘A‘±‚µ‚½1b */
     232        /* PRE :32個の連続した1b */
    237233        for (i = 0; i < 32; i++)
    238234                phy_write_bit(true);
    239235
    240         /* ST FƒtƒŒ[ƒ€‚̐擪‚ðŽ¦‚·01b‚̃‰ƒCƒg */
    241         phy_write_bit(false);
    242         phy_write_bit(true);
    243 
    244         /* OP FƒAƒNƒZƒXŽí•Ê‚ðŽ¦‚·ƒR[ƒh‚̃‰ƒCƒg */
    245         phy_write_bit(false);
    246         phy_write_bit(true);
    247 
    248         /* PHYAD FPHY-LSI‚̃AƒhƒŒƒX‚ª1”Ԃ̏ꍇA00001b‚ðƒ‰ƒCƒgiMSB ‚©‚珇ŽŸƒ‰ƒCƒgjB */
     236        /* ST :フレームの先頭を示す01bのライト */
     237        phy_write_bit(false);
     238        phy_write_bit(true);
     239
     240        /* OP :アクセス種別を示すコードのライト */
     241        phy_write_bit(false);
     242        phy_write_bit(true);
     243
     244        /* PHYAD :PHY-LSIのアドレスが1番の場合、00001bをライト(MSB から順次ライト)。 */
    249245        phy_write_bit((phy_addr & 0x10) != 0);
    250246        phy_write_bit((phy_addr & 0x08) != 0);
     
    253249        phy_write_bit((phy_addr & 0x01) != 0);
    254250
    255         /* REGAD FƒŒƒWƒXƒ^ƒAƒhƒŒƒX‚ª1”Ԃ̏ꍇA00001b‚ðƒ‰ƒCƒgiMSB‚©‚珇ŽŸƒ‰ƒCƒgjB */
     251        /* REGAD :レジスタアドレスが1番の場合、00001bをライト(MSBから順次ライト)。 */
    256252        phy_write_bit((reg_addr & 0x10) != 0);
    257253        phy_write_bit((reg_addr & 0x08) != 0);
     
    260256        phy_write_bit((reg_addr & 0x01) != 0);
    261257
    262         /* TA FMII/RMIIƒCƒ“ƒ^ƒtƒF[ƒXã‚Ńf[ƒ^‚Ì‘—MŒ³‚ðØ‚è‘Ö‚¦‚鎞ŠÔ */
    263         /* 10b‚ðƒ‰ƒCƒg */
    264         phy_write_bit(true);
    265         phy_write_bit(false);
    266 
    267         /* DATA F16ƒrƒbƒg‚̃f[ƒ^BMSB‚©‚珇ŽŸƒ‰ƒCƒg */
     258        /* TA :MII/RMIIインタフェース上でデータの送信元を切り替える時間 */
     259        /* 10bをライト */
     260        phy_write_bit(true);
     261        phy_write_bit(false);
     262
     263        /* DATA :16ビットのデータ。MSBから順次ライト */
    268264        for (bit = 0x8000; bit != 0; bit >>= 1) {
    269265                phy_write_bit((reg_data & bit) != 0);
    270266        }
    271267
    272         /* IDLE FŽŸ‚ÌMIIŠÇ—ƒtƒH[ƒ}ƒbƒg“ü—Í‚Ü‚Å‚Ì‘Ò‹@ŽžŠÔ */
    273         /* u’P“ƃoƒX‰ð•úviX‚Æ•\‹Lj‚ðs‚¤ */
     268        /* IDLE :次のMII管理フォーマット入力までの待機時間 */
     269        /* 「単独バス解放」(Xと表記)を行う */
    274270        phy_single_rel_bus();
    275271}
     
    278274
    279275/*
    280  * 1 ƒrƒbƒgƒf[ƒ^‚̃‰ƒCƒg
     276 * 1 ビットデータのライト
    281277 */
    282278static void phy_write_bit(bool_t bit)
     
    285281        uint32_t data = bit ? ETHERC_PIR_MDO : 0;
    286282
    287         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     283        /* PHY部インタフェースレジスタへのライト */
    288284        sil_wrw_mem(ETHERC_PIR, data | ETHERC_PIR_MMD | 0/*ETHERC_PIR_MDC*/);
    289285
    290286        for(i = ETHERC_PIR_WAIT; i > 0; i--);
    291287
    292         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     288        /* PHY部インタフェースレジスタへのライト */
    293289        sil_wrw_mem(ETHERC_PIR, data | ETHERC_PIR_MMD | ETHERC_PIR_MDC);
    294290
    295291        for(i = 2 * ETHERC_PIR_WAIT; i > 0; i--);
    296292
    297         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     293        /* PHY部インタフェースレジスタへのライト */
    298294        sil_wrw_mem(ETHERC_PIR, data | ETHERC_PIR_MMD | 0/*ETHERC_PIR_MDC*/);
    299295
     
    302298
    303299/*
    304  * ƒoƒX‰ð•ú
     300 * バス解放
    305301 */
    306302static void phy_release_bus()
     
    308304        int i;
    309305
    310         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     306        /* PHY部インタフェースレジスタへのライト */
    311307        sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/);
    312308
    313309        for(i = ETHERC_PIR_WAIT; i > 0; i--);
    314310
    315         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     311        /* PHY部インタフェースレジスタへのライト */
    316312        sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | ETHERC_PIR_MDC);
    317313
    318314        for(i = 2 * ETHERC_PIR_WAIT; i > 0; i--);
    319315
    320         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     316        /* PHY部インタフェースレジスタへのライト */
    321317        sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/);
    322318
     
    325321
    326322/*
    327  * 1 ƒrƒbƒgƒf[ƒ^‚̃Š[ƒh
     323 * 1 ビットデータのリード
    328324 */
    329325static bool_t phy_read_bit()
     
    334330        for(i = ETHERC_PIR_WAIT; i > 0; i--);
    335331
    336         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     332        /* PHY部インタフェースレジスタへのライト */
    337333        sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | ETHERC_PIR_MDC);
    338334
    339335        for(i = ETHERC_PIR_WAIT; i > 0; i--);
    340336
    341         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     337        /* PHY部インタフェースレジスタへのライト */
    342338        bit = (sil_rew_mem(ETHERC_PIR) & ETHERC_PIR_MDI) != 0;
    343339
    344340        for(i = ETHERC_PIR_WAIT; i > 0; i--);
    345341
    346         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     342        /* PHY部インタフェースレジスタへのライト */
    347343        sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/);
    348344
     
    353349
    354350/*
    355  * ’P“ƃoƒX‰ð•ú
     351 * 単独バス解放
    356352 */
    357353static void phy_single_rel_bus()
     
    361357        for(i = ETHERC_PIR_WAIT; i > 0; i--);
    362358
    363         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     359        /* PHY部インタフェースレジスタへのライト */
    364360        sil_wrw_mem(ETHERC_PIR, ETHERC_PIR_MMD | ETHERC_PIR_MDC);
    365361
    366362        for(i = 2 * ETHERC_PIR_WAIT; i > 0; i--);
    367363
    368         /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^‚ւ̃‰ƒCƒg */
     364        /* PHY部インタフェースレジスタへのライト */
    369365        sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/);
    370366
  • uKadecot/trunk/uip/target/if_rx62n/ether_phy.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2014 Cores Co., Ltd. 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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 *  @(#) $Id$
  • uKadecot/trunk/uip/target/if_rx62n/if_rx62n.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    5652
    5753/*
    58  *  ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚Ɉˑ¶‚·‚éƒ\ƒtƒgƒEƒFƒAî•ñ
     54 *  ネットワークインタフェースに依存するソフトウェア情報
    5955 */
    6056
     
    6662
    6763/*
    68  *  ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚̃\ƒtƒgƒEƒFƒAî•ñ
    69  */
    70 
    71 /* ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚Ɉˑ¶‚·‚éƒ\ƒtƒgƒEƒFƒAî•ñ */
     64 *  ネットワークインタフェースのソフトウェア情報
     65 */
     66
     67/* ネットワークインタフェースに依存するソフトウェア情報 */
    7268
    7369static T_RX62N_SOFTC rx62n_softc;
     
    8884#endif
    8985
    90 /* ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚Ɉˑ¶‚µ‚È‚¢ƒ\ƒtƒgƒEƒFƒAî•ñ */
     86/* ネットワークインタフェースに依存しないソフトウェア情報 */
    9187
    9288T_IF_SOFTC if_softc = {
    93 //      {0,},                                           /* ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚̃AƒhƒŒƒX */
    94 //      0,                                                      /* ‘—Mƒ^ƒCƒ€ƒAƒEƒg                     */
    95         &rx62n_softc,                           /* ƒfƒBƒoƒCƒXˆË‘¶‚̃\ƒtƒgƒEƒFƒAî•ñ     */
     89//      {0,},                                           /* ネットワークインタフェースのアドレス   */
     90//      0,                                                      /* 送信タイムアウト                     */
     91        &rx62n_softc,                           /* ディバイス依存のソフトウェア情報     */
    9692};
    9793
    9894/*
    99  *  ‹ÇŠ•Ï”
     95 *  局所変数
    10096 */
    10197
     
    105101
    106102/*
    107  *  rx62n_stop -- ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚ð’âŽ~‚·‚éB
     103 *  rx62n_stop -- ネットワークインタフェースを停止する。
    108104 *
    109  *    ’ˆÓ: NIC Š„‚荞‚Ý‹ÖŽ~ó‘ԂŌĂяo‚·‚±‚ƁB
     105 *    注意: NIC 割り込み禁止状態で呼び出すこと。
    110106 */
    111107
     
    113109rx62n_stop (T_RX62N_SOFTC *sc)
    114110{
    115         /* “®ìƒ‚[ƒhƒNƒŠƒA */
     111        /* 動作モードクリア */
    116112        sil_wrw_mem(ETHERC_ECMR, 0x00000000);
    117113}
    118114
    119115/*
    120  *  rx62n_init_sub -- ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚̏‰Šú‰»
     116 *  rx62n_init_sub -- ネットワークインタフェースの初期化
    121117 *
    122  *    ’ˆÓ: NIC Š„‚荞‚Ý‹ÖŽ~ó‘ԂŌĂяo‚·‚±‚ƁB
     118 *    注意: NIC 割り込み禁止状態で呼び出すこと。
    123119 */
    124120
     
    129125        PHY_STATE_T state = PHY_STATE_UNINIT;
    130126
    131         /* MAC•”ƒ\ƒtƒgƒEƒGƒAEƒŠƒZƒbƒg */
     127        /* MAC部ソフトウエア・リセット */
    132128        sil_wrw_mem(EDMAC_EDMR, sil_rew_mem(EDMAC_EDMR) | EDMAC_EDMR_SWR_BIT);
    133129
    134         /* ƒŠƒZƒbƒgŠ®—¹‘Ò‚¿ */
     130        /* リセット完了待ち */
    135131        for (i = 0; i < 10000; i++) {
    136132        }
     
    142138                | (uint32_t)mac_addr[5]);
    143139
    144         /* PHYƒŠƒZƒbƒg */
     140        /* PHYリセット */
    145141        while((state = phy_reset(state, 0)) != PHY_STATE_RESET);
    146142        ic->sc->state = state;
     
    149145        sil_wrw_mem(ETHERC_ECSR, 0x00000037);
    150146
    151         /* ƒŠƒ“ƒN•Ï‰»Š„‚荞‚Ý—LŒø */
     147        /* リンク変化割り込み有効 */
    152148        sil_wrw_mem(ETHERC_ECSIPR, sil_rew_mem(ETHERC_ECSIPR) | ETHERC_ECSIPR_LCHNGIP);
    153149
     
    155151        sil_wrw_mem(EDMAC_EESR, 0x47FF0F9F);
    156152
    157         /* ‘—ŽóMŠ„‚荞‚Ý—LŒø */
     153        /* 送受信割り込み有効 */
    158154        sil_wrw_mem(EDMAC_EESIPR, (EDMAC_EESIPR_TCIP | EDMAC_EESIPR_FRIP | EDMAC_EESIPR_RDEIP | EDMAC_EESIPR_FROFIP));
    159155
    160         /* ŽóMƒtƒŒ[ƒ€’·ãŒÀiƒoƒbƒtƒ@ƒTƒCƒYj */
     156        /* 受信フレーム長上限(バッファサイズ) */
    161157        sil_wrw_mem(ETHERC_RFLR, IF_RX62N_BUF_PAGE_SIZE);
    162158
    163         /* 96ƒrƒbƒgŽžŠÔi‰Šú’lj */
     159        /* 96ビット時間(初期値) */
    164160        sil_wrw_mem(ETHERC_IPGR, 0x00000014);
    165161
     
    180176        sil_wrw_mem(EDMAC_RMCR, 0x00000001);
    181177
    182         /* PHY‚̏‰Šú‰»‚𑣂· */
     178        /* PHYの初期化を促す */
    183179        ic->link_pre = true;
    184180        ic->link_now = false;
    185181
    186         /* ƒ^[ƒQƒbƒgˆË‘¶•”‚ÌŠ„ž‚ݏ‰Šú‰» */
     182        /* ターゲット依存部の割込み初期化 */
    187183        rx62n_inter_init();
    188184}
    189185
    190186/*
    191  *  rx62n_set_ecmr -- ECMRƒŒƒWƒXƒ^‚̐ݒè
     187 *  rx62n_set_ecmr -- ECMRレジスタの設定
    192188 */
    193189
     
    204200                ecmr |= ETHERC_ECMR_RTM;
    205201
    206         /* “®ìƒ‚[ƒhÝ’è */
     202        /* 動作モード設定 */
    207203        sil_wrw_mem(ETHERC_ECMR, ecmr);
    208204}
    209205
    210206/*
    211  * rx62n_reset -- ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚ðƒŠƒZƒbƒg‚·‚éB
     207 * rx62n_reset -- ネットワークインタフェースをリセットする。
    212208 */
    213209
     
    215211rx62n_reset (T_IF_SOFTC *ic)
    216212{
    217         /* NIC ‚©‚ç‚ÌŠ„‚荞‚Ý‚ð‹ÖŽ~‚·‚éB*/
     213        /* NIC からの割り込みを禁止する。*/
    218214        dis_int(INTNO_IF_RX62N_TRX);
    219215
     
    221217        rx62n_init_sub(ic);
    222218
    223         /* NIC ‚©‚ç‚ÌŠ„‚荞‚Ý‚ð‹–‰Â‚·‚éB*/
     219        /* NIC からの割り込みを許可する。*/
    224220        ena_int(INTNO_IF_RX62N_TRX);
    225221}
    226222
    227223/*
    228  *  get_rx62n_softc -- ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚̃\ƒtƒgƒEƒFƒAî•ñ‚ð•Ô‚·B
     224 *  get_rx62n_softc -- ネットワークインタフェースのソフトウェア情報を返す。
    229225 */
    230226
     
    236232
    237233/*
    238  * rx62n_watchdog -- ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚̃ƒbƒ`ƒhƒbƒOƒ^ƒCƒ€ƒAƒEƒg
     234 * rx62n_watchdog -- ネットワークインタフェースのワッチドッグタイムアウト
    239235 */
    240236
     
    246242
    247243/*
    248  * rx62n_probe -- ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚ÌŒŸo
     244 * rx62n_probe -- ネットワークインタフェースの検出
    249245 */
    250246
     
    252248rx62n_probe (T_IF_SOFTC *ic)
    253249{
    254         /* ƒ^[ƒQƒbƒgˆË‘¶•”‚̃oƒX‚̏‰Šú‰» */
     250        /* ターゲット依存部のバスの初期化 */
    255251        rx62n_bus_init();
    256252
     
    259255
    260256/*
    261  * rx62n_init -- ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚̏‰Šú‰»
     257 * rx62n_init -- ネットワークインタフェースの初期化
    262258 */
    263259
     
    270266        int i;
    271267
    272         /* NIC ‚©‚ç‚ÌŠ„‚荞‚Ý‚ð‹ÖŽ~‚·‚éB*/
     268        /* NIC からの割り込みを禁止する。*/
    273269        dis_int(INTNO_IF_RX62N_TRX);
    274270
     
    297293        rdsc->rdle = 1;
    298294
    299         /* rx62n_init –{‘Ì‚ðŒÄ‚яo‚·B*/
     295        /* rx62n_init 本体を呼び出す。*/
    300296        rx62n_init_sub(ic);
    301297
     
    304300        }
    305301
    306         /* NIC ‚©‚ç‚ÌŠ„‚荞‚Ý‚ð‹–‰Â‚·‚éB*/
     302        /* NIC からの割り込みを許可する。*/
    307303        ena_int(INTNO_IF_RX62N_TRX);
    308304}
    309305
    310306/*
    311  * rx62n_link -- ƒŠƒ“ƒNó‘Ԃ̕ω»‚ɑ΂·‚鏈—
     307 * rx62n_link -- リンク状態の変化に対する処理
    312308 */
    313309bool_t
     
    324320        }
    325321
    326         /* PHY‚̏‰Šú‰» */
     322        /* PHYの初期化 */
    327323        sc->state = phy_initialize(sc->state, 0, &mode);
    328324        if(sc->state != PHY_STATE_NEGOTIATED){
     
    330326        }
    331327
    332         /* ECMRƒŒƒWƒXƒ^‚̐ݒè */
     328        /* ECMRレジスタの設定 */
    333329        rx62n_set_ecmr(ic, mode);
    334330        return true;
     
    336332
    337333/*
    338  * rx62n_read -- ƒtƒŒ[ƒ€‚̓ǂݍž‚Ý
     334 * rx62n_read -- フレームの読み込み
    339335 */
    340336
     
    379375
    380376/*
    381  * rx62n_start -- ‘—MƒtƒŒ[ƒ€‚ðƒoƒbƒtƒ@ƒŠƒ“ƒO‚·‚éB
     377 * rx62n_start -- 送信フレームをバッファリングする。
    382378 */
    383379
     
    430426
    431427/*
    432  *  RX62N Ethernet Controler ‘—ŽóMŠ„‚荞‚݃nƒ“ƒhƒ‰
     428 *  RX62N Ethernet Controler 送受信割り込みハンドラ
    433429 */
    434430
     
    449445
    450446        if (ecsr & ETHERC_ECSR_LCHNG) {
    451                 /* ETHERC•”Š„‚荞‚Ý—vˆöƒNƒŠƒA */
     447                /* ETHERC部割り込み要因クリア */
    452448                sil_wrw_mem(ETHERC_ECSR, ETHERC_ECSR_LCHNG);
    453449
     
    455451                ic->link_now = (psr & ETHERC_PSR_LMON) != 0;
    456452
    457                 /* ƒŠƒ“ƒNó‘Ԃɕω»‚ ‚è */
     453                /* リンク状態に変化あり */
    458454                if (ic->link_pre != ic->link_now) {
    459                         /* ŽóMŠ„‚荞‚ݏˆ— */
     455                        /* 受信割り込み処理 */
    460456                        acttsk = true;
    461457                }
     
    465461
    466462        if (eesr & EDMAC_EESR_FR) {
    467                 /* DMA•”Š„‚荞‚Ý—vˆöƒNƒŠƒA */
     463                /* DMA部割り込み要因クリア */
    468464                sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_FR);
    469465
    470                 /* ŽóMŠ„‚荞‚ݏˆ— */
     466                /* 受信割り込み処理 */
    471467                acttsk = true;
    472468                ic->rxb_write++;
    473469        }
    474470        if (eesr & EDMAC_EESR_TC) {
    475                 /* DMA•”Š„‚荞‚Ý—vˆöƒNƒŠƒA */
     471                /* DMA部割り込み要因クリア */
    476472                sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_TC);
    477473
    478                 /* ‘—MŠ„‚荞‚ݏˆ— */
     474                /* 送信割り込み処理 */
    479475                acttsk = true;
    480476        }
    481477        if (eesr & (EDMAC_EESR_FROF | EDMAC_EESR_RDE)) {
    482                 /* DMA•”Š„‚荞‚Ý—vˆöƒNƒŠƒA */
     478                /* DMA部割り込み要因クリア */
    483479                sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_FROF | EDMAC_EESR_RDE);
    484480
    485481                ic->over_flow = true;
    486482
    487                 /* ŽóMŠ„‚荞‚ݏˆ— */
     483                /* 受信割り込み処理 */
    488484                acttsk = true;
    489485                ic->rxb_write++;
  • uKadecot/trunk/uip/target/if_rx62n/if_rx62n.cfg

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2014 Cores Co., Ltd. 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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 *  @(#) $Id$
     
    4339
    4440/*
    45  *  if_rx62n ƒRƒ“ƒtƒBƒMƒ
    46 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     41 *  if_rx62n コンフィギュレーションファイル
    4742 */
    4843
     
    5146#include "if_rx62n.h"
    5247
    53 /* Š„‚荞‚݃nƒ“ƒhƒ‰ */
     48/* 割り込みハンドラ */
    5449
    5550DEF_INH(INHNO_IF_RX62N_TRX, { TA_HLNG, if_rx62n_trx_handler });
  • uKadecot/trunk/uip/target/if_rx62n/if_rx62n.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2014 Cores Co., Ltd. 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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 *  @(#) $Id$
     
    5551
    5652/*
    57  *  ƒtƒB[ƒ‹ƒh’·
     53 *  フィールド長
    5854 */
    5955
     
    6157
    6258/*
    63  *  RX62N Ethernet Controler ‚ÉŠÖ‚·‚é’è‹`
     59 *  RX62N Ethernet Controler に関する定義
    6460 */
    6561
    66 #define NUM_IF_RX62N_TXBUF              8       /* ‘—Mƒoƒbƒtƒ@”                       */
    67 #define NUM_IF_RX62N_RXBUF              8       /* ŽóMƒoƒbƒtƒ@”                       */
    68 #define IF_RX62N_BUF_PAGE_SIZE  1518    /* ƒoƒbƒtƒ@ƒTƒCƒY */
     62#define NUM_IF_RX62N_TXBUF              8       /* 送信バッファ数                      */
     63#define NUM_IF_RX62N_RXBUF              8       /* 受信バッファ数                      */
     64#define IF_RX62N_BUF_PAGE_SIZE  1518    /* バッファサイズ */
    6965
    7066/*
    71  *  NIC ‚Ì‘I‘ðƒ}ƒNƒ
     67 *  NIC の選択マクロ
    7268 */
    7369
     
    8379#define T_IF_ETHER_NIC_SOFTC            struct t_rx62n_softc
    8480struct t_if_softc {
    85         //T_IF_ADDR             ifaddr;                 /* ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚̃AƒhƒŒƒX */
    86         //uint16_t              timer;                  /* ‘—Mƒ^ƒCƒ€ƒAƒEƒg                     */
    87         T_IF_ETHER_NIC_SOFTC    *sc;    /* ƒfƒBƒoƒCƒXˆË‘¶‚̃\ƒtƒgƒEƒFƒAî•ñ     */
     81        //T_IF_ADDR             ifaddr;                 /* ネットワークインタフェースのアドレス   */
     82        //uint16_t              timer;                  /* 送信タイムアウト                     */
     83        T_IF_ETHER_NIC_SOFTC    *sc;    /* ディバイス依存のソフトウェア情報     */
    8884        uint8_t rxb_write;
    8985        uint8_t rxb_read;
     
    9490};
    9591
    96 /* IPv6 ŠÖŒW */
     92/* IPv6 関係 */
    9793
    98 #define IF_ETHER_NIC_IN6_IFID(i,a)      get_mac6_ifid(i,a)      /* ƒCƒ“ƒ^ƒtƒF[ƒXŽ¯•ÊŽq‚ÌÝ’è           */
    99 #define IF_ETHER_NIC_ADDMULTI(s)        rx62n_addmulti(s)               /* ƒ}ƒ‹ƒ`ƒLƒƒƒXƒgƒAƒhƒŒƒX‚Ì“o˜^         */
     94#define IF_ETHER_NIC_IN6_IFID(i,a)      get_mac6_ifid(i,a)      /* インタフェース識別子の設定                */
     95#define IF_ETHER_NIC_ADDMULTI(s)        rx62n_addmulti(s)               /* マルチキャストアドレスの登録               */
    10096
    10197#if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY)
    10298
    10399/*
    104  *  ‘O•ûŽQÆ
     100 *  前方参照
    105101 */
    106102
     
    114110
    115111/*
    116  *  ŠÖ”
     112 *  関数
    117113 */
    118114
  • uKadecot/trunk/uip/target/if_rx62n/if_rx62nreg.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2014 Cores Co., Ltd. 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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 *  @(#) $Id$
     
    4743#include "t_stddef.h"
    4844
    49 #define EDMAC_EDMR                      ((uint32_t *)0x000C0000)        /* EDMACƒ‚[ƒhƒŒƒWƒXƒ^ */
     45#define EDMAC_EDMR                      ((uint32_t *)0x000C0000)        /* EDMACモードレジスタ */
    5046#define EDMAC_EDMR_SWR_BIT      0x00000001
    5147#define EDMAC_EDMR_DE_BIT       0x00000040
    5248
    53 #define EDMAC_EDTRR                     ((uint32_t *)0x000C0008)        /* EDMAC‘—M—v‹ƒŒƒWƒXƒ^ */
     49#define EDMAC_EDTRR                     ((uint32_t *)0x000C0008)        /* EDMAC送信要求レジスタ */
    5450#define EDMAC_EDTRR_TR          0x00000001
    5551
    56 #define EDMAC_EDRRR                     ((uint32_t *)0x000C0010)        /* EDMACŽóM—v‹ƒŒƒWƒXƒ^ */
     52#define EDMAC_EDRRR                     ((uint32_t *)0x000C0010)        /* EDMAC受信要求レジスタ */
    5753#define EDMAC_EDRRR_RR          0x00000001
    5854
    59 #define EDMAC_TDLAR                     ((uint32_t *)0x000C0018)        /* ‘—MƒfƒBƒXƒNƒŠƒvƒ^ƒŠƒXƒgæ“ªƒAƒhƒŒƒXƒŒƒWƒXƒ^ */
    60 #define EDMAC_RDLAR                     ((uint32_t *)0x000C0020)        /* ŽóMƒfƒBƒXƒNƒŠƒvƒ^ƒŠƒXƒgæ“ªƒAƒhƒŒƒXƒŒƒWƒXƒ^ */
     55#define EDMAC_TDLAR                     ((uint32_t *)0x000C0018)        /* 送信ディスクリプタリスト先頭アドレスレジスタ */
     56#define EDMAC_RDLAR                     ((uint32_t *)0x000C0020)        /* 受信ディスクリプタリスト先頭アドレスレジスタ */
    6157
    62 #define EDMAC_EESR                      ((uint32_t *)0x000C0028)        /* ETHERC/EDMACƒXƒe[ƒ^ƒXƒŒƒWƒXƒ^ */
     58#define EDMAC_EESR                      ((uint32_t *)0x000C0028)        /* ETHERC/EDMACステータスレジスタ */
    6359#define EDMAC_EESR_FROF         0x00010000
    6460#define EDMAC_EESR_RDE          0x00020000
     
    6763#define EDMAC_EESR_TWB          0x40000000
    6864
    69 #define EDMAC_EESIPR            ((uint32_t *)0x000C0030)        /* ETHERC/EDMACƒXƒe[ƒ^ƒXŠ„‚荞‚Ý‹–‰ÂƒŒƒWƒXƒ^ */
     65#define EDMAC_EESIPR            ((uint32_t *)0x000C0030)        /* ETHERC/EDMACステータス割り込み許可レジスタ */
    7066#define EDMAC_EESIPR_RMAFIP     0x00000080
    7167#define EDMAC_EESIPR_FROFIP     0x00010000
     
    7571#define EDMAC_EESIPR_TWBIP      0x40000000
    7672
    77 #define EDMAC_TRSCER            ((uint32_t *)0x000C0038)        /* ‘—ŽóMƒXƒe[ƒ^ƒXƒRƒs[ŽwŽ¦ƒŒƒWƒXƒ^ */
    78 #define EDMAC_RMFCR                     ((uint32_t *)0x000C0040)        /* ƒ~ƒXƒhƒtƒŒ[ƒ€ƒJƒEƒ“ƒ^ƒŒƒWƒXƒ^ */
    79 #define EDMAC_TFTR                      ((uint32_t *)0x000C0048)        /* ‘—MFIFO‚µ‚«‚¢’lŽw’背ƒWƒXƒ^ */
    80 #define EDMAC_FDR                       ((uint32_t *)0x000C0050)        /* FIFO—e—ÊŽw’背ƒWƒXƒ^ */
    81 #define EDMAC_RMCR                      ((uint32_t *)0x000C0058)        /* ŽóM•ûŽ®§ŒäƒŒƒWƒXƒ^ */
    82 #define EDMAC_TFUCR                     ((uint32_t *)0x000C0064)        /* ‘—MFIFOƒAƒ“ƒ_ƒ‰ƒ“ƒJƒEƒ“ƒg */
    83 #define EDMAC_RFOCR                     ((uint32_t *)0x000C0068)        /* ŽóMFIFOƒI[ƒoƒtƒ[ƒJƒEƒ“ƒg */
    84 #define EDMAC_IOSR                      ((uint32_t *)0x000C006C)        /* ŒÂ•Êo—͐M†Ý’背ƒWƒXƒ^ */
    85 #define EDMAC_FCFTR                     ((uint32_t *)0x000C0070)        /* ƒtƒ[§ŒäŠJŽnFIFO‚µ‚«‚¢’lÝ’背ƒWƒXƒ^ */
    86 #define EDMAC_RPADIR            ((uint32_t *)0x000C0078)        /* ŽóMƒf[ƒ^ƒpƒfƒBƒ“ƒO‘}“üÝ’背ƒWƒXƒ^ */
    87 #define EDMAC_TRIMD                     ((uint32_t *)0x000C007C)        /* ‘—MŠ„‚荞‚ݐݒ背ƒWƒXƒ^ */
    88 #define EDMAC_RBWAR                     ((uint32_t *)0x000C00C8)        /* ŽóMƒoƒbƒtƒ@ƒ‰ƒCƒgƒAƒhƒŒƒXƒŒƒWƒXƒ^ */
    89 #define EDMAC_RDFAR                     ((uint32_t *)0x000C00CC)        /* ŽóMƒfƒBƒXƒNƒŠƒvƒ^ƒtƒFƒbƒ`ƒAƒhƒŒƒXƒŒƒWƒXƒ^ */
    90 #define EDMAC_TBRAR                     ((uint32_t *)0x000C00D4)        /* ‘—Mƒoƒbƒtƒ@ƒŠ[ƒhƒAƒhƒŒƒXƒŒƒWƒXƒ^ */
    91 #define EDMAC_TDFAR                     ((uint32_t *)0x000C00D8)        /* ‘—MƒfƒBƒXƒNƒŠƒvƒ^ƒtƒFƒbƒ`ƒAƒhƒŒƒXƒŒƒWƒXƒ^ */
     73#define EDMAC_TRSCER            ((uint32_t *)0x000C0038)        /* 送受信ステータスコピー指示レジスタ */
     74#define EDMAC_RMFCR                     ((uint32_t *)0x000C0040)        /* ミスドフレームカウンタレジスタ */
     75#define EDMAC_TFTR                      ((uint32_t *)0x000C0048)        /* 送信FIFOしきい値指定レジスタ */
     76#define EDMAC_FDR                       ((uint32_t *)0x000C0050)        /* FIFO容量指定レジスタ */
     77#define EDMAC_RMCR                      ((uint32_t *)0x000C0058)        /* 受信方式制御レジスタ */
     78#define EDMAC_TFUCR                     ((uint32_t *)0x000C0064)        /* 送信FIFOアンダランカウント */
     79#define EDMAC_RFOCR                     ((uint32_t *)0x000C0068)        /* 受信FIFOオーバフローカウント */
     80#define EDMAC_IOSR                      ((uint32_t *)0x000C006C)        /* 個別出力信号設定レジスタ */
     81#define EDMAC_FCFTR                     ((uint32_t *)0x000C0070)        /* フロー制御開始FIFOしきい値設定レジスタ */
     82#define EDMAC_RPADIR            ((uint32_t *)0x000C0078)        /* 受信データパディング挿入設定レジスタ */
     83#define EDMAC_TRIMD                     ((uint32_t *)0x000C007C)        /* 送信割り込み設定レジスタ */
     84#define EDMAC_RBWAR                     ((uint32_t *)0x000C00C8)        /* 受信バッファライトアドレスレジスタ */
     85#define EDMAC_RDFAR                     ((uint32_t *)0x000C00CC)        /* 受信ディスクリプタフェッチアドレスレジスタ */
     86#define EDMAC_TBRAR                     ((uint32_t *)0x000C00D4)        /* 送信バッファリードアドレスレジスタ */
     87#define EDMAC_TDFAR                     ((uint32_t *)0x000C00D8)        /* 送信ディスクリプタフェッチアドレスレジスタ */
    9288
    93 #define ETHERC_ECMR                     ((uint32_t *)0x000C0100)        /* ETHERCƒ‚[ƒhƒŒƒWƒXƒ^ */
     89#define ETHERC_ECMR                     ((uint32_t *)0x000C0100)        /* ETHERCモードレジスタ */
    9490#define ETHERC_ECMR_PRM         0x00000001
    9591#define ETHERC_ECMR_DM          0x00000002
     
    9894#define ETHERC_ECMR_RE          0x00000040
    9995
    100 #define ETHERC_RFLR                     ((uint32_t *)0x000C0108)        /* ŽóMƒtƒŒ[ƒ€’·ãŒÀƒŒƒWƒXƒ^ */
    101 #define ETHERC_ECSR                     ((uint32_t *)0x000C0110)        /* ETHERCƒXƒe[ƒ^ƒXƒŒƒWƒXƒ^ */
     96#define ETHERC_RFLR                     ((uint32_t *)0x000C0108)        /* 受信フレーム長上限レジスタ */
     97#define ETHERC_ECSR                     ((uint32_t *)0x000C0110)        /* ETHERCステータスレジスタ */
    10298#define ETHERC_ECSR_LCHNG       0x00000004
    103 #define ETHERC_ECSIPR           ((uint32_t *)0x000C0118)        /* ETHERCŠ„‚荞‚Ý‹–‰ÂƒŒƒWƒXƒ^ */
     99#define ETHERC_ECSIPR           ((uint32_t *)0x000C0118)        /* ETHERC割り込み許可レジスタ */
    104100#define ETHERC_ECSIPR_LCHNGIP   0x00000004
    105 #define ETHERC_PIR                      ((uint32_t *)0x000C0120)        /* PHY•”ƒCƒ“ƒ^ƒtƒF[ƒXƒŒƒWƒXƒ^ */
     101#define ETHERC_PIR                      ((uint32_t *)0x000C0120)        /* PHY部インタフェースレジスタ */
    106102#define ETHERC_PIR_MDC          0x00000001
    107103#define ETHERC_PIR_MMD          0x00000002
     
    109105#define ETHERC_PIR_MDI          0x00000008
    110106
    111 #define ETHERC_PSR                      ((uint32_t *)0x000C0128)        /* PHY•”ƒXƒe[ƒ^ƒXƒŒƒWƒXƒ^ */
     107#define ETHERC_PSR                      ((uint32_t *)0x000C0128)        /* PHY部ステータスレジスタ */
    112108#define ETHERC_PSR_LMON         0x00000001
    113109
    114 #define ETHERC_RDMLR            ((uint32_t *)0x000C0140)        /* —”¶¬ƒJƒEƒ“ƒ^ãŒÀ’lÝ’背ƒWƒXƒ^ */
    115 #define ETHERC_IPGR                     ((uint32_t *)0x000C0150)        /* IPGÝ’背ƒWƒXƒ^ */
    116 #define ETHERC_APR                      ((uint32_t *)0x000C0154)        /* Ž©“®PAUSEƒtƒŒ[ƒ€Ý’背ƒWƒXƒ^ */
    117 #define ETHERC_MPR                      ((uint32_t *)0x000C0158)        /* Žè“®PAUSEƒtƒŒ[ƒ€Ý’背ƒWƒXƒ^ */
    118 #define ETHERC_RFCF                     ((uint32_t *)0x000C0160)        /* ŽóMPAUSEƒtƒŒ[ƒ€ƒJƒEƒ“ƒ^ */
    119 #define ETHERC_TPAUSER          ((uint32_t *)0x000C0164)        /* Ž©“®PAUSEƒtƒŒ[ƒ€Ä‘—‰ñ”Ý’背ƒWƒXƒ^ */
    120 #define ETHERC_TPAUSECR         ((uint32_t *)0x000C0168)        /* PAUSEƒtƒŒ[ƒ€Ä‘—‰ñ”ƒJƒEƒ“ƒ^ */
    121 #define ETHERC_BCFRR            ((uint32_t *)0x000C016C)        /* BroadcastƒtƒŒ[ƒ€ŽóM‰ñ”Ý’背ƒWƒXƒ^ */
    122 #define ETHERC_MAHR                     ((uint32_t *)0x000C01C0)        /* MACƒAƒhƒŒƒXãˆÊÝ’背ƒWƒXƒ^ */
    123 #define ETHERC_MALR                     ((uint32_t *)0x000C01C8)        /* MACƒAƒhƒŒƒX‰ºˆÊÝ’背ƒWƒXƒ^ */
    124 #define ETHERC_TROCR            ((uint32_t *)0x000C01D0)        /* ‘—MƒŠƒgƒ‰ƒCƒI[ƒoƒJƒEƒ“ƒ^ƒŒƒWƒXƒ^ */
    125 #define ETHERC_CDCR                     ((uint32_t *)0x000C01D4)        /* ’x‰„Õ“ËŒŸoƒJƒEƒ“ƒ^ƒŒƒWƒXƒ^ */
    126 #define ETHERC_LCCR                     ((uint32_t *)0x000C01D8)        /* ƒLƒƒƒŠƒAÁŽ¸ƒJƒEƒ“ƒ^ƒŒƒWƒXƒ^ */
    127 #define ETHERC_CNDCR            ((uint32_t *)0x000C01DC)        /* ƒLƒƒƒŠƒA–¢ŒŸoƒJƒEƒ“ƒ^ƒŒƒWƒXƒ^ */
    128 #define ETHERC_CEFCR            ((uint32_t *)0x000C01E4)        /* CRCƒGƒ‰[ƒtƒŒ[ƒ€ŽóMƒJƒEƒ“ƒ^ƒŒƒWƒXƒ^ */
    129 #define ETHERC_FRECR            ((uint32_t *)0x000C01E8)        /* ƒtƒŒ[ƒ€ŽóMƒGƒ‰[ƒJƒEƒ“ƒ^ƒŒƒWƒXƒ^ */
    130 #define ETHERC_TSFRCR           ((uint32_t *)0x000C01EC)        /* 64ƒoƒCƒg–¢–žƒtƒŒ[ƒ€ŽóMƒJƒEƒ“ƒ^ƒŒƒWƒXƒ^ */
    131 #define ETHERC_TLFRCR           ((uint32_t *)0x000C01F0)        /* Žw’èƒoƒCƒg’´ƒtƒŒ[ƒ€ŽóMƒJƒEƒ“ƒ^ƒŒƒWƒXƒ^ */
    132 #define ETHERC_RFCR                     ((uint32_t *)0x000C01F4)        /* ’[”ƒrƒbƒgƒtƒŒ[ƒ€ŽóMƒJƒEƒ“ƒ^ƒŒƒWƒXƒ^ */
    133 #define ETHERC_MAFCR            ((uint32_t *)0x000C01F8)        /* ƒ}ƒ‹ƒ`ƒLƒƒƒXƒgƒAƒhƒŒƒXƒtƒŒ[ƒ€ŽóMƒJƒEƒ“ƒ^ƒŒƒWƒXƒ^ */
     110#define ETHERC_RDMLR            ((uint32_t *)0x000C0140)        /* 乱数生成カウンタ上限値設定レジスタ */
     111#define ETHERC_IPGR                     ((uint32_t *)0x000C0150)        /* IPG設定レジスタ */
     112#define ETHERC_APR                      ((uint32_t *)0x000C0154)        /* 自動PAUSEフレーム設定レジスタ */
     113#define ETHERC_MPR                      ((uint32_t *)0x000C0158)        /* 手動PAUSEフレーム設定レジスタ */
     114#define ETHERC_RFCF                     ((uint32_t *)0x000C0160)        /* 受信PAUSEフレームカウンタ */
     115#define ETHERC_TPAUSER          ((uint32_t *)0x000C0164)        /* 自動PAUSEフレーム再送回数設定レジスタ */
     116#define ETHERC_TPAUSECR         ((uint32_t *)0x000C0168)        /* PAUSEフレーム再送回数カウンタ */
     117#define ETHERC_BCFRR            ((uint32_t *)0x000C016C)        /* Broadcastフレーム受信回数設定レジスタ */
     118#define ETHERC_MAHR                     ((uint32_t *)0x000C01C0)        /* MACアドレス上位設定レジスタ */
     119#define ETHERC_MALR                     ((uint32_t *)0x000C01C8)        /* MACアドレス下位設定レジスタ */
     120#define ETHERC_TROCR            ((uint32_t *)0x000C01D0)        /* 送信リトライオーバカウンタレジスタ */
     121#define ETHERC_CDCR                     ((uint32_t *)0x000C01D4)        /* 遅延衝突検出カウンタレジスタ */
     122#define ETHERC_LCCR                     ((uint32_t *)0x000C01D8)        /* キャリア消失カウンタレジスタ */
     123#define ETHERC_CNDCR            ((uint32_t *)0x000C01DC)        /* キャリア未検出カウンタレジスタ */
     124#define ETHERC_CEFCR            ((uint32_t *)0x000C01E4)        /* CRCエラーフレーム受信カウンタレジスタ */
     125#define ETHERC_FRECR            ((uint32_t *)0x000C01E8)        /* フレーム受信エラーカウンタレジスタ */
     126#define ETHERC_TSFRCR           ((uint32_t *)0x000C01EC)        /* 64バイト未満フレーム受信カウンタレジスタ */
     127#define ETHERC_TLFRCR           ((uint32_t *)0x000C01F0)        /* 指定バイト超フレーム受信カウンタレジスタ */
     128#define ETHERC_RFCR                     ((uint32_t *)0x000C01F4)        /* 端数ビットフレーム受信カウンタレジスタ */
     129#define ETHERC_MAFCR            ((uint32_t *)0x000C01F8)        /* マルチキャストアドレスフレーム受信カウンタレジスタ */
    134130
    135 /* ‘—MƒfƒBƒXƒNƒŠƒvƒ^ */
     131/* 送信ディスクリプタ */
    136132typedef struct t_rx62n_tx_desc {
    137133        uint32_t        tfs : 26;
     
    147143} T_RX62N_TX_DESC;
    148144
    149 /* ŽóMƒfƒBƒXƒNƒŠƒvƒ^ */
     145/* 受信ディスクリプタ */
    150146typedef struct t_rx62n_rx_desc {
    151147        uint32_t        rfs : 27;
  • uKadecot/trunk/uip/target/if_rx62n/nic_ssp.cfg

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2014 Cores Co., Ltd. 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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 *  @(#) $Id$
     
    4339
    4440/*
    45  *  if_rx62n ƒRƒ“ƒtƒBƒMƒ
    46 ƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒCƒ‹
     41 *  if_rx62n コンフィギュレーションファイル
    4742 */
    4843INCLUDE("if_rx62n.cfg");
  • uKadecot/trunk/uip/target/if_rx62n/uip_nic_config.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2014 Cores Co., Ltd. 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‰ü
    10  *  •ÏEÄ”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‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔ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
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 *  @(#) $Id$
     
    4642
    4743/*
    48  *  ƒlƒbƒgƒ[ƒNƒCƒ“ƒ^ƒtƒF[ƒX‚Ì“à•”Ž¯•Ê–¼‚̃Šƒl[ƒ€
     44 *  ネットワークインタフェースの内部識別名のリネーム
    4945 */
    5046
  • uKadecot/trunk/uip/task/clock-arch.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/task/uip_adpt.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4743
    4844/*
    49  *  uip_task‚ð‹N“®
     45 *  uip_taskを起動
    5046 */
    5147ER uip_start()
     
    5349        ER ret;
    5450
    55         /* uip_task—pŽüŠúƒnƒ“ƒhƒ‰‚Ì‹N“® */
     51        /* uip_task用周期ハンドラの起動 */
    5652        ret = sta_cyc(UIP_CYCHDR);
    5753        if (ret != E_OK) {
     
    6460
    6561/*
    66  *  convert_hexdigit -- 16i”¨•¶Žš—ñ•ÏŠ·
     62 *  convert_hexdigit -- 16進数→文字列変換
    6763 */
    6864int_t convert_hexdigit (char *buf, uint_t val, int_t radix, int_t width, char padchar)
     
    8884
    8985/*
    90  *  ip2str -- IPv4 ƒAƒhƒŒƒX‚𕶎š—ñ‚É•ÏŠ·‚·‚éB
     86 *  ip2str -- IPv4 アドレスを文字列に変換する。
    9187 */
    9288char *ip2str(char *buf, const T_IN4_ADDR ipaddr)
  • uKadecot/trunk/uip/task/uip_adpt.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4844
    4945/*
    50  *  IPv4 ƒAƒhƒŒƒX
     46 *  IPv4 アドレス
    5147 */
    5248
     
    5450
    5551/*
    56  *  ITRON TCP/IPv4 ƒAƒhƒŒƒX/ƒ|[ƒg”ԍ†‚Ì’è‹`
     52 *  ITRON TCP/IPv4 アドレス/ポート番号の定義
    5753 */
    5854
    5955typedef struct t_ipv4ep {
    60         T_IN4_ADDR      ipaddr;         /* IPv4ƒAƒhƒŒƒX         */
    61         u16_t           portno;         /* ƒ|[ƒg”ԍ†           */
     56        T_IN4_ADDR      ipaddr;         /* IPv4アドレス             */
     57        u16_t           portno;         /* ポート番号                */
    6258} T_IPV4EP;
    6359
     
    6662typedef struct t_tcp_ccep
    6763{
    68         T_IN4_ADDR      ripaddr;                /* ƒŠƒ‚[ƒgIPv4ƒAƒhƒŒƒX         */
    69         u16_t           rport;                  /* ƒŠƒ‚[ƒgƒ|[ƒg”ԍ†           */
    70         u16_t           lport;                  /* ƒ[ƒJƒ‹ƒ|[ƒg”ԍ†           */
     64        T_IN4_ADDR      ripaddr;                /* リモートIPv4アドレス         */
     65        u16_t           rport;                  /* リモートポート番号            */
     66        u16_t           lport;                  /* ローカルポート番号            */
    7167        void(*callback)(struct uip_conn *uip_conn, int fncd, void *p_parblk);
    7268} T_TCP_CCEP;
     
    7874typedef struct t_udp_ccep
    7975{
    80         T_IN4_ADDR      ripaddr;                /* ƒŠƒ‚[ƒgIPv4ƒAƒhƒŒƒX         */
    81         u16_t           rport;                  /* ƒŠƒ‚[ƒgƒ|[ƒg”ԍ†           */
    82         u16_t           lport;                  /* ƒ[ƒJƒ‹ƒ|[ƒg”ԍ†           */
     76        T_IN4_ADDR      ripaddr;                /* リモートIPv4アドレス         */
     77        u16_t           rport;                  /* リモートポート番号            */
     78        u16_t           lport;                  /* ローカルポート番号            */
    8379        void (*callback)(struct uip_udp_conn *uip_udp_conn, int fncd, void *p_parblk);
    8480} T_UDP_CCEP;
  • uKadecot/trunk/uip/task/uip_task.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    100100        PT_BEGIN(&uiptsk->pt);
    101101
    102         /* NIC ‚ð‰Šú‰»‚·‚éB*/
     102        /* NIC を初期化する。*/
    103103        IF_ETHER_NIC_PROBE(ic);
    104104        IF_ETHER_NIC_INIT(ic);
     
    273273
    274274/*
    275  *  uIP ƒvƒƒgƒXƒŒƒbƒh‹N“®ƒ^ƒXƒN
     275 *  uIP プロトスレッド起動タスク
    276276 */
    277277void uip_task(intptr_t exinf)
     
    283283
    284284/*
    285  *  uIP ƒ^ƒXƒN‹N“®—pŽüŠúƒnƒ“ƒhƒ‰[
     285 *  uIP タスク起動用周期ハンドラー
    286286 */
    287287void uip_cychdr(intptr_t exinf)
  • uKadecot/trunk/uip/task/uip_task.cfg

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    4541
    4642/*
    47  * uIP ƒ^ƒXƒN‹N“®—pŽüŠúƒnƒ“ƒhƒ‰[
     43 * uIP タスク起動用周期ハンドラー
    4844 */
    4945CRE_CYC(UIP_CYCHDR, { TA_NULL, &uiptsk, uip_cychdr, 1, 0 });
  • uKadecot/trunk/uip/task/uip_task.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚Ɓ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‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    31  *      –Ɛӂ·‚邱‚ƁD
     6 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    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
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    5046
    5147/*
    52  *  uIP ƒ^ƒXƒNŠÖ˜A‚̒萔‚̃fƒtƒHƒ‹ƒg’l‚Ì’è‹`
     48 *  uIP タスク関連の定数のデフォルト値の定義
    5349 */
    5450#ifndef UIP_TASK_PRIORITY
    55 #define UIP_TASK_PRIORITY       3               /* ‰Šú—Dæ“x */
     51#define UIP_TASK_PRIORITY       3               /* 初期優先度 */
    5652#endif /* UIP_TASK_PRIORITY */
    5753
    5854#ifndef UIP_TASK_STACK_SIZE
    59 #define UIP_TASK_STACK_SIZE     256     /* ƒXƒ^ƒbƒN—̈æ‚̃TƒCƒY */
     55#define UIP_TASK_STACK_SIZE     256     /* スタック領域のサイズ */
    6056#endif /* UIP_TASK_STACK_SIZE */
    6157
  • uKadecot/trunk/uip/uip/clock.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/lc-addrlabels.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/lc-switch.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/lc.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/psock.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/psock.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/pt.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/timer.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/timer.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uip-fw.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uip-fw.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uip-neighbor.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uip-neighbor.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uip-split.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uip-split.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uip.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uip.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uip_arch.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uip_arp.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uip_arp.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uiplib.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uiplib.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/uip/uip/uipopt.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
Note: See TracChangeset for help on using the changeset viewer.