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/target/cq_frk_fm3_gcc/target_serial.c

    • Property svn:mime-type set to text/plain; charset=shift_jis
    r93 r95  
    1010 *              Nagoya Municipal Industrial Research Institute, JAPAN
    1111 *
    12  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    13  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    14  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    15  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    16  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    17  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    18  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    20 ƒƒ“ƒgi—˜—p
    21  *      ŽÒƒ}ƒjƒ
    22 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    23  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    24  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    25  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    26  *      ‚ƁD
    27  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    28 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    29 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    30  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    31  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    32  *        •ñ‚·‚邱‚ƁD
    33  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    34  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    35  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    36  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    37  *      –Ɛӂ·‚邱‚ƁD
     12 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17 *      スコード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21 *      の無保証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24 *      と.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28 *        報告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33 *      免責すること.
    3834 *
    39  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    40  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    41  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    42  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    43  *  ‚̐ӔC‚𕉂í‚È‚¢D
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39 *  の責任を負わない.
    4440 *
    4541 */
    4642
    4743/*
    48  * ƒVƒŠƒAƒ‹ƒhƒ‰ƒCƒoiCQ-FRM-FM3—pj
     44 * シリアルドライバ(CQ-FRM-FM3用)
    4945 */
    5046
     
    5551
    5652/*
    57  * ƒŒƒWƒXƒ^Ý’è’l
     53 * レジスタ設定値
    5854 */
    5955#define PORT2SIOPID(x)  ((x) + 1)
     
    6258
    6359/*
    64  * USARTƒŒƒWƒXƒ^’è‹`
     60 * USARTレジスタ定義
    6561 *  #define MFS_SMR(ch)                         (MFS_BASEADDR((ch)) + 0x00)
    6662 *  #define MFS_SCR(ch)                         (MFS_BASEADDR((ch)) + 0x01)
     
    7470
    7571/*
    76  *  ƒrƒbƒgŠ„‚è“–‚Ă̓oƒCƒgƒAƒNƒZƒX—p‚É‹Lq‚µ‚Ä‚¢‚é
     72 *  ビット割り当てはバイトアクセス用に記述している
    7773 */
    7874
     
    9490#define SMR_WAKEUP                                      (1U << 4)
    9591
    96 #define SMR_SBL_1OR3                            (0U << 3)       /* ESCR.ESBL = 0‚Å1 */
    97 #define SMR_SBL_2OR4                            (1U << 3)       /* ESCR.ESBL = 0‚Å2 */
     92#define SMR_SBL_1OR3                            (0U << 3)       /* ESCR.ESBL = 01 */
     93#define SMR_SBL_2OR4                            (1U << 3)       /* ESCR.ESBL = 02 */
    9894
    9995#define SMR_BDS_LSBFIRST                        (0U << 2)
     
    131127
    132128/*
    133  * ƒVƒŠƒAƒ‹I/Oƒ|[ƒgŠÇ—ƒuƒƒbƒNƒGƒŠƒA
     129 * シリアルI/Oポート管理ブロックエリア
    134130 */
    135131SIOPCB siopcb_table[TNUM_PORT];
     
    153149
    154150/*
    155  *  ’჌ƒxƒ‹o—͂̏‰Šú‰»
     151 *  低レベル出力の初期化
    156152 */
    157153
     
    160156        uint32_t ch = INDEX_PORT(siopid);
    161157       
    162         /* ‰Šú‰»Ï‚݂̏ꍇ‚Í‚·‚®‚ɃŠƒ^[ƒ“ */
     158        /* 初期化済みの場合はすぐにリターン */
    163159        if((sil_reb_mem((void*)MFS_SCR(ch)) & (SCR_TXE | SCR_RXE)) != 0)
    164160        {
     
    166162        }
    167163       
    168         /* USART‚Ì–³Œø‰»CƒŠƒZƒbƒg */
     164        /* USARTの無効化,リセット */
    169165        sil_wrb_mem((void *)MFS_SCR(ch) , SCR_UPCL);
    170166        sil_wrb_mem((void *)MFS_SCR(ch) , 0x0);
    171167       
    172         /* ’ʐMƒ‚[ƒhÝ’è */
     168        /* 通信モード設定 */
    173169        sil_wrb_mem((void *)MFS_SMR(ch) ,
    174170                        (SMR_MODE_ASYNC_NORMAL | SMR_SBL_1OR3 | SMR_BDS_LSBFIRST | SMR_SOE_DISABLE));
    175171        sil_wrb_mem((void *)MFS_ESCR(ch) ,
    176172                        (ESCR_FLWEN_DISABLE | ESCR_INV_NRZ | ESCR_PEN_DISABLE | ESCR_DATALEN_8));
    177         /* ’ʐM‘¬“xÝ’è */
    178         sil_wrh_mem((void *)MFS_BGR0(ch) , BPS_SETTING);        /* ƒn[ƒtƒ[ƒhƒAƒNƒZƒX‚·‚é */
    179         /* FIFO–³Œø‰» */
     173        /* 通信速度設定 */
     174        sil_wrh_mem((void *)MFS_BGR0(ch) , BPS_SETTING);        /* ハーフワードアクセスする */
     175        /* FIFO無効化 */
    180176        sil_wrb_mem((void *)MFS_FCR0(ch) , 0x00);
    181177        sil_wrb_mem((void *)MFS_FCR1(ch) , 0x00);
    182178       
    183         /* USART‚Ì—LŒø‰» */
     179        /* USARTの有効化 */
    184180        sil_orb((void *)MFS_SMR(ch) , SMR_SOE_ENABLE);
    185181        sil_orb((void*)MFS_SCR(ch) , (SCR_TXE | SCR_RXE));
     
    187183
    188184/*
    189  *  ƒ^[ƒQƒbƒg‚̃VƒŠƒAƒ‹‰Šú‰»
     185 *  ターゲットのシリアル初期化
    190186 */
    191187void target_usart_init(ID siopid)
     
    193189        target_low_output_init(siopid);
    194190       
    195         /* Š„ž‚Ý‹–‰Â */
     191        /* 割込み許可 */
    196192        x_clear_int(INTNO_SIO_TX);
    197193        x_clear_int(INTNO_SIO_RX);
    198         /* Š„ž‚Ý‹ÖŽ~ */
     194        /* 割込み禁止 */
    199195        (void)ena_int(INTNO_SIO_TX);
    200196        (void)ena_int(INTNO_SIO_RX);
     
    202198
    203199/*
    204  *  ƒ^[ƒQƒbƒg‚̃VƒŠƒAƒ‹I—¹
     200 *  ターゲットのシリアル終了
    205201 */
    206202void target_usart_term(ID siopid)
    207203{
    208         /* Š„ž‚Ý‹ÖŽ~ */
     204        /* 割込み禁止 */
    209205        (void)dis_int(INTNO_SIO_TX);
    210206        (void)dis_int(INTNO_SIO_RX);
    211207       
    212         /* USART‚Ì–³Œø‰» */
     208        /* USARTの無効化 */
    213209        sil_andb((void*)MFS_SCR(INDEX_PORT(siopid)) , (SCR_TXE | SCR_RIE));
    214210}
    215211
    216212/*
    217  *  SIO‰Šú‰»
     213 *  SIO初期化
    218214 */
    219215void sio_initialize(intptr_t exinf)
     
    229225
    230226/*
    231  *  ƒVƒŠƒAƒ‹ƒI[ƒvƒ“
     227 *  シリアルオープン
    232228 */
    233229SIOPCB *sio_opn_por(ID siopid, intptr_t exinf)
     
    248244
    249245/*
    250  *  ƒVƒŠƒAƒ‹ƒNƒ[ƒY
     246 *  シリアルクローズ
    251247 */
    252248void sio_cls_por(SIOPCB *p_siopcb)
     
    256252
    257253/*
    258  *  Š„ž‚݃nƒ“ƒhƒ‰
     254 *  割込みハンドラ
    259255 */
    260256void sio_isr_tx(intptr_t exinf)
     
    277273
    278274/*
    279  *  1•¶Žš‘—M
     275 *  1文字送信
    280276 */
    281277bool_t sio_snd_chr(SIOPCB *siopcb, char c)
     
    293289
    294290/*
    295  *  1•¶ŽšŽóM
     291 *  1文字受信
    296292 */
    297293int_t sio_rcv_chr(SIOPCB *siopcb)
     
    307303
    308304/*
    309  *  ƒR[ƒ‹ƒoƒbƒN‚Ì‹–‰Â
     305 *  コールバックの許可
    310306 */
    311307void sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn)
     
    324320
    325321/*
    326  *  ƒR[ƒ‹ƒoƒbƒN‚Ì‹ÖŽ~
     322 *  コールバックの禁止
    327323 */
    328324void sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn)
     
    341337
    342338/*
    343  *  1•¶Žšo—́iƒ|[ƒŠƒ“ƒO‚ł̏o—́j
     339 *  1文字出力(ポーリングでの出力)
    344340 */
    345341void sio_pol_snd_chr(char c, ID siopid)
Note: See TracChangeset for help on using the changeset viewer.