Ignore:
Timestamp:
Jun 2, 2015, 3:39:53 PM (9 years ago)
Author:
nmir-saito
Message:

ファイルの mime-type 変更

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ssp_qb_r5f100le_cs/trunk/arch/rl78_ca78k0r/prc_config.c

    • Property svn:mime-type set to text/plain; charset=shift_jis
    r93 r95  
    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
    4642/*
    47  *              ƒvƒƒZƒbƒTˆË‘¶ƒ‚ƒWƒ
    48 [ƒ‹iRL78j
     43 *              プロセッサ依存モジュール(RL78)
    4944 */
    5045#pragma EI
     
    5348
    5449/*
    55  *  Š„ž‚Ý”­¶‰ñ”‚ð•Û‘¶‚·‚é•Ï”
     50 *  割込み発生回数を保存する変数
    5651 */
    5752uint8_t intnest;
     
    5954
    6055/*
    61  *  (1) ƒRƒ“ƒeƒLƒXƒg‚ÉŠÖ‚·‚é’è‹`
    62  */
    63 
    64 
    65 /*
    66  *  ƒRƒ“ƒeƒLƒXƒg‚ÌŽQÆ
     56 *  (1) コンテキストに関する定義
     57 */
     58
     59
     60/*
     61 *  コンテキストの参照
    6762 */
    6863bool_t
    6964sense_context(void)
    7065{
    71         /*  ƒlƒXƒgƒJƒEƒ“ƒ^0‚æ‚è‘å‚È‚ç”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg  */
     66        /*  ネストカウンタ0より大なら非タスクコンテキスト  */
    7267        return (intnest > 0);
    7368}
     
    7570
    7671/*
    77  *  (2) ƒVƒXƒeƒ€ó‘Ô‚ÉŠÖ‚·‚é’è‹`
    78  */
    79 
    80 /*
    81  *  CPUƒƒbƒNƒtƒ‰ƒOŽÀŒ»‚Ì‚½‚߂̕ϐ”
    82  */
    83 bool_t          lock_flag;              /* CPUƒƒbƒNƒtƒ‰ƒO‚Ì’l‚ð•ÛŽ‚·‚é•Ï” */
     72 *  (2) システム状態に関する定義
     73 */
     74
     75/*
     76 *  CPUロックフラグ実現のための変数
     77 */
     78bool_t          lock_flag;              /* CPUロックフラグの値を保持する変数 */
    8479#if TMIN_INTPRI != -4
    85 uint8_t         saved_psw;              /* Š„ž‚Ý—Dæ“xƒŒƒxƒ‹‚ð•Û‘¶‚·‚é•Ï” */
     80uint8_t         saved_psw;              /* 割込み優先度レベルを保存する変数 */
    8681#endif
    8782
    8883/*
    89  *  CPU ƒƒbƒNó‘Ԃւ̈ڍs
    90  *      ‚±‚̊֐”‚́CCPU ƒƒbƒNó‘Ô‚Ì‚Æ‚«‚ɌĂт¾‚³‚ê‚È‚¢‚±‚Æ‚ð‘O’ñ‚Æ‚·‚éD
     84 *  CPU ロック状態への移行
     85 *      この関数は,CPU ロック状態のときに呼びだされないことを前提とする.
    9186 */
    9287void
     
    9691        DI();
    9792#else
    98         /* ƒ^ƒXƒN‚Å‚ÍŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚Ì’l‚Í 0 ‚Ì‚Í‚¸‚È‚Ì‚Å•Û‘¶‚·‚é•K—v‚ª‚È‚¢ */
     93        /* タスクでは割込み優先度マスクの値は 0 のはずなので保存する必要がない */
    9994        set_psw(PSW_SET_ISP(get_psw(), ISP_LOCK));
    10095#endif
     
    111106
    112107        /*
    113          *  get_psw() ‚Ì•Ô‚è’l‚ð’¼Ú saved_isp ‚É•Û‘¶‚¹‚¸CˆêŽž•Ï”
    114          *  psw ‚Ö•Û‘¶‚·‚é‚̂́Cget_psw() ‚̌Ăт¾‚µ’¼Œã‚ÉŠ„ž‚Ý‚ª”­¶‚µC
    115          *  ‹N“®‚³‚ꂽŠ„ž‚ݏˆ—‚Å saved_isp ‚ª•ÏX‚³‚ê‚é‰Â”\«‚ª‚ ‚邽‚߁D
     108         *  get_psw() の返り値を直接 saved_isp に保存せず,一時変数
     109         *  psw へ保存するのは,get_psw() の呼びだし直後に割込みが発生し,
     110         *  起動された割込み処理で saved_isp が変更される可能性があるため.
    116111         */
    117112        psw = get_psw();
     
    125120
    126121/*
    127  *  CPUƒƒbƒNó‘Ԃ̉ðœ
    128  *      ‚±‚̊֐”‚́CCPU ƒƒbƒNó‘Ô‚Ì‚Æ‚«‚ɂ̂݌Ăт¾‚³‚ê‚邱‚Æ‚ð‘O’ñ‚Æ‚·‚éD
     122 *  CPUロック状態の解除
     123 *      この関数は,CPU ロック状態のときにのみ呼びだされることを前提とする.
    129124 */
    130125void
     
    135130        EI();
    136131#else
    137         /* ƒ^ƒXƒNŽÀsŽž‚ÍŠ„ž‚݃}ƒXƒN‘S‰ðœó‘Ô‚Ì‚Í‚¸‚Ȃ̂ŁC‘S‰ðœ‚É‚µ‚Ä‚¨‚­ */
     132        /* タスク実行時は割込みマスク全解除状態のはずなので,全解除にしておく */
    138133        set_psw(PSW_SET_ISP(get_psw(), ISP_ENAALL));
    139134#endif
     
    152147
    153148/*
    154  *  CPUƒƒbƒNó‘Ô‚ÌŽQÆ
     149 *  CPUロック状態の参照
    155150 */
    156151bool_t
     
    161156
    162157/*
    163  *  Š„ž‚Ý—Dæ“xƒ}ƒXƒN(IPM) ‚̐ݒè
    164  *    Žw’肵‚½Š„ž‚Ý—Dæ“x(-1, -2, ..., TMIN_INTPRI) ‚ðŒ³‚É
    165  *    ƒvƒƒZƒbƒT‚ÌŠ„ž‚Ý—Dæ“xƒŒƒxƒ‹ (IPL) ‚ðÝ’è‚·‚éD
     158 *  割込み優先度マスク(IPM) の設定
     159 *    指定した割込み優先度(-1, -2, ..., TMIN_INTPRI) を元に
     160 *    プロセッサの割込み優先度レベル (IPL) を設定する.
    166161 */
    167162void
     
    180175
    181176/*
    182  *  (7) dispacher ‚Å‚ÌŠ„ž‚Ý‘Ò‚¿
     177 *  (7) dispacher での割込み待ち
    183178 */
    184179void
     
    191186
    192187/*
    193  *  ƒvƒƒZƒbƒTˆË‘¶‚̏‰Šú‰»
     188 *  プロセッサ依存の初期化
    194189 */
    195190void
     
    199194
    200195/*
    201  *  ƒvƒƒZƒbƒTˆË‘¶‚̏I—¹ˆ—
     196 *  プロセッサ依存の終了処理
    202197 */
    203198void
    204199prc_terminate(void)
    205200{
    206         /* “Á‚É•K—v‚ȏˆ—‚Í‚È‚¢ */
    207 }
    208 
    209 /*
    210  *  Š„ž‚Ý—v‹‹ÖŽ~ƒtƒ‰ƒO‚̃Zƒbƒg
     201        /* 特に必要な処理はない */
     202}
     203
     204/*
     205 *  割込み要求禁止フラグのセット
    211206 */
    212207bool_t
     
    215210        volatile uint8_t *reg_addr;
    216211       
    217         /* ƒŒƒxƒ‹’è‹`‚ª0‚Å‚ ‚éê‡‚ÍCFG_INT‚³‚ê‚Ä‚¢‚È‚¢ */
     212        /* レベル定義が0である場合はCFG_INTされていない */
    218213        if(intpri_table[intno] == 0U)
    219214        {
    220215                return (false);
    221216        }
    222         // Š„ž‚݃}ƒXƒNEƒtƒ‰ƒOEƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚ð1‚ɃZƒbƒg
     217        // 割込みマスク・フラグ・レジスタの該当ビットを1にセット
    223218        if(intno < 32) {
    224219                reg_addr = (volatile uint8_t *)TADR_MK0L;
     
    235230
    236231/*
    237  *  Š„ž‚Ý—v‹‹ÖŽ~ƒtƒ‰ƒO‚̃NƒŠƒA
     232 *  割込み要求禁止フラグのクリア
    238233 */
    239234bool_t
     
    242237        volatile uint8_t *reg_addr;
    243238
    244         /* ƒŒƒxƒ‹’è‹`‚ª0‚Å‚ ‚éê‡‚ÍCFG_INT‚³‚ê‚Ä‚¢‚È‚¢ */
     239        /* レベル定義が0である場合はCFG_INTされていない */
    245240        if(intpri_table[intno] == 0u)
    246241        {
    247242                return (false);
    248243        }
    249         // Š„ž‚݃}ƒXƒNEƒtƒ‰ƒOEƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚ð0‚ɃZƒbƒg
     244        // 割込みマスク・フラグ・レジスタの該当ビットを0にセット
    250245        if(intno < 32) {
    251246                reg_addr = (volatile uint8_t *)TADR_MK0L;
     
    262257
    263258/*
    264  *  Š„ž‚Ý—v‹‚̃NƒŠƒA
     259 *  割込み要求のクリア
    265260 */
    266261void
     
    269264        volatile uint8_t *reg_addr;
    270265
    271         // Š„ž‚Ý—v‹ƒtƒ‰ƒOEƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚ð0‚ɃZƒbƒg
     266        // 割込み要求フラグ・レジスタの該当ビットを0にセット
    272267        if(intno < 32) {
    273268                reg_addr = (volatile uint8_t *)TADR_IF0L;
     
    282277
    283278/*
    284  *  Š„ž‚Ý—v‹‚̃`ƒFƒbƒN
     279 *  割込み要求のチェック
    285280 */
    286281bool_t
     
    289284        volatile uint8_t *reg_addr;
    290285
    291         // Š„ž‚Ý—v‹ƒtƒ‰ƒOEƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚ª 1 ‚È‚ç true
     286        // 割込み要求フラグ・レジスタの該当ビットが 1 なら true
    292287        if(intno < 32) {
    293288                reg_addr = (volatile uint8_t *)TADR_IF0L;
     
    303298
    304299/*
    305  *  Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚Ì‘®«‚̐ݒè
     300 *  割込み要求ラインの属性の設定
    306301 */
    307302void
     
    315310
    316311        /*
    317          *  Š„ž‚݂̃}ƒXƒN
     312         *  割込みのマスク
    318313         *
    319          *  Š„ž‚Ý‚ðŽó‚¯•t‚¯‚½‚܂܁CƒŒƒxƒ‹ƒgƒŠƒK^ƒGƒbƒWƒgƒŠƒK‚̐ݒè‚âCŠ„
    320          *  ž‚Ý—Dæ“x‚̐ݒè‚ðs‚¤‚̂͊댯‚È‚½‚߁CŠ„ž‚Ý‘®«‚É‚©‚©‚í‚炸C
    321          *  ˆê’Uƒ}ƒXƒN‚·‚éD
     314         *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
     315         *  込み優先度の設定を行うのは危険なため,割込み属性にかかわらず,
     316         *  一旦マスクする.
    322317         */
    323318        (void) x_disable_int(intno);
    324319
    325320        /*
    326          * —Dæ“x‚̐ݒè
     321         * 優先度の設定
    327322         */
    328         // —Dæ‡ˆÊŽw’èƒtƒ‰ƒOEƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚É’l‚ðƒZƒbƒg
     323        // 優先順位指定フラグ・レジスタの該当ビットに値をセット
    329324        if(intno < 32) {
    330325                reg_addr = (volatile uint8_t *)TADR_PR00L;
     
    335330                reg_addr += ((intno-32) / 8);
    336331        }
    337         // —Dæ‡ˆÊƒŒƒxƒ‹‚̐ݒè(’áˆÊƒrƒbƒg)
     332        // 優先順位レベルの設定(低位ビット)
    338333        if((IPM2ILVL(intpri) & 0x01) != 0) {
    339334                *reg_addr |= (uint8_t)(1 << (intno % 8));
     
    342337                *reg_addr &= (uint8_t)~(1 << (intno % 8));
    343338        }
    344         // —Dæ‡ˆÊƒŒƒxƒ‹‚̐ݒè(‚ˆÊƒrƒbƒg)
     339        // 優先順位レベルの設定(高位ビット)
    345340        if((IPM2ILVL(intpri) & 0x02) != 0) {
    346341                *(reg_addr+4) |= (uint8_t)(1 << (intno % 8));
     
    351346       
    352347        /*
    353          * ƒgƒŠƒK‚̐ݒè
     348         * トリガの設定
    354349         */
    355350        if(intno <= 7) {
     
    362357        }
    363358       
    364         /* INT’[Žq‚̏ꍇ‚ÍŠ„ž‚ÝŒŸ’m•û–@‚ðÝ’è‚·‚é */
     359        /* INT端子の場合は割込み検知方法を設定する */
    365360        if((intatr & TA_POSEDGE) != 0U)
    366361        {
    367                 // ŠO•”Š„ž‚Ý—§‚¿ã‚ª‚èƒGƒbƒW‹–‰ÂƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚ð1‚ɃZƒbƒg
     362                // 外部割込み立ち上がりエッジ許可レジスタの該当ビットを1にセット
    368363                *reg_addr |= (uint8_t)(1 << (portno % 8));
    369                 // ŠO•”Š„ž‚Ý—§‚¿‰º‚ª‚èƒGƒbƒW‹–‰ÂƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚ð0‚ɃZƒbƒg
     364                // 外部割込み立ち下がりエッジ許可レジスタの該当ビットを0にセット
    370365                *(reg_addr+1) &= (uint8_t)~(1 << (portno % 8));
    371366        }
    372367        else if((intatr & TA_NEGEDGE) != 0U)
    373368        {
    374                 // ŠO•”Š„ž‚Ý—§‚¿ã‚ª‚èƒGƒbƒW‹–‰ÂƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚ð0‚ɃZƒbƒg
     369                // 外部割込み立ち上がりエッジ許可レジスタの該当ビットを0にセット
    375370                *reg_addr &= (uint8_t)~(1 << (portno % 8));
    376                 // ŠO•”Š„ž‚Ý—§‚¿‰º‚ª‚èƒGƒbƒW‹–‰ÂƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚ð1‚ɃZƒbƒg
     371                // 外部割込み立ち下がりエッジ許可レジスタの該当ビットを1にセット
    377372                *(reg_addr+1) |= (uint8_t)(1 << (portno % 8));
    378373        }
    379374        else if((intatr & TA_BOTHEDGE) != 0U)
    380375        {
    381                 // ŠO•”Š„ž‚Ý—§‚¿ã‚ª‚èƒGƒbƒW‹–‰ÂƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚ð1‚ɃZƒbƒg
     376                // 外部割込み立ち上がりエッジ許可レジスタの該当ビットを1にセット
    382377                *reg_addr |= (uint8_t)(1 << (portno % 8));
    383                 // ŠO•”Š„ž‚Ý—§‚¿‰º‚ª‚èƒGƒbƒW‹–‰ÂƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚ð1‚ɃZƒbƒg
     378                // 外部割込み立ち下がりエッジ許可レジスタの該当ビットを1にセット
    384379                *(reg_addr+1) |= (uint8_t)(1 << (portno % 8));
    385380        }
    386         else {  // ‚Ç‚¿‚ç‚Å‚à‚È‚¢ê‡‚̓GƒbƒWŒŸo‚ð‹ÖŽ~
    387                 // ŠO•”Š„ž‚Ý—§‚¿ã‚ª‚èƒGƒbƒW‹–‰ÂƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚ð0‚ɃZƒbƒg
     381        else {  // どちらでもない場合はエッジ検出を禁止
     382                // 外部割込み立ち上がりエッジ許可レジスタの該当ビットを0にセット
    388383                *reg_addr &= (uint8_t)~(1 << (portno % 8));
    389                 // ŠO•”Š„ž‚Ý—§‚¿‰º‚ª‚èƒGƒbƒW‹–‰ÂƒŒƒWƒXƒ^‚ÌŠY“–ƒrƒbƒg‚ð0‚ɃZƒbƒg
     384                // 外部割込み立ち下がりエッジ許可レジスタの該当ビットを0にセット
    390385                *(reg_addr+1) &= (uint8_t)~(1 << (portno % 8));
    391386        }
    392387
    393388        /*
    394          *  Š„ž‚݂̃}ƒXƒN‰ðœ(—Dæ“xÝ’è)
     389         *  割込みのマスク解除(優先度設定)
    395390         */
    396391        if ((intatr & TA_ENAINT) != 0U) {
     
    400395
    401396/*
    402  *  NMI‚ðœ‚­‚·‚ׂĂ̊„ž‚Ý‚Ì‹ÖŽ~
     397 *  NMIを除くすべての割込みの禁止
    403398 */
    404399uint8_t
     
    413408
    414409/*
    415  *  Š„ž‚Ý—Dæ“xƒ}ƒXƒNi“à•”•\Œ»j‚ÌŒ»Ý’l‚̐ݒè
     410 *  割込み優先度マスク(内部表現)の現在値の設定
    416411 */
    417412void
Note: See TracChangeset for help on using the changeset viewer.