Changeset 107 for uKadecot/trunk/src


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

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

Location:
uKadecot/trunk/src/ukadecot
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.