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

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uKadecot/trunk/ssp/pdic/rx600/rx630_uart.c

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