|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tl16pir552.cTL16PIR552(TI)用 簡易SIOドライバ [詳細]
tl16pir552.cのインクルード依存関係図 ![]()
説明TL16PIR552(TI)用 簡易SIOドライバ
tl16pir552.c で定義されています。 マクロ定義
tl16pir552.c の 105 行で定義されています。
tl16pir552.c の 93 行で定義されています。
tl16pir552.c の 104 行で定義されています。
tl16pir552.c の 92 行で定義されています。
型定義
関数
tl16pir552.c の 117 行で定義されています。 参照先 tl16pir552_reb・tl16pir552_wrb. 参照元 tl16pir552_dis_cbr(). 00118 { 00119 tl16pir552_wrb( addr, reg, tl16pir552_reb( addr, reg ) & val ); 00120 }
tl16pir552.c の 292 行で定義されています。 参照先 DIS_INT・FALSE・IER・tl16pir552_wrb. 00293 { 00294 tl16pir552_wrb( siopcb->siopinib->channel_addr, IER, DIS_INT ); 00295 00296 siopcb->openflag = FALSE; 00297 }
tl16pir552.c の 348 行で定義されています。 参照先 IER・RECEIVE_DATA_AVAILABLE・RECEIVE_LINE_STATUS・SIO_ERDY_RCV・SIO_ERDY_SND・tl16pir552_andb()・TRANS_REG_EMPTY. 00349 { 00350 UB ier_bit = 0; 00351 00352 switch (cbrtn) { 00353 case SIO_ERDY_SND: 00354 ier_bit = TRANS_REG_EMPTY; 00355 break; 00356 case SIO_ERDY_RCV: 00357 ier_bit = (RECEIVE_DATA_AVAILABLE | RECEIVE_LINE_STATUS); 00358 break; 00359 } 00360 00361 tl16pir552_andb( siopcb->siopinib->channel_addr, IER, ~ier_bit ); 00362 }
関数の呼び出しグラフ: ![]()
tl16pir552.c の 328 行で定義されています。 参照先 IER・RECEIVE_DATA_AVAILABLE・RECEIVE_LINE_STATUS・SIO_ERDY_RCV・SIO_ERDY_SND・tl16pir552_orb()・TRANS_REG_EMPTY. 00329 { 00330 UB ier_bit = 0; 00331 00332 switch (cbrtn) { 00333 case SIO_ERDY_SND: 00334 ier_bit = TRANS_REG_EMPTY; 00335 break; 00336 case SIO_ERDY_RCV: 00337 ier_bit = (RECEIVE_DATA_AVAILABLE | RECEIVE_LINE_STATUS); 00338 break; 00339 } 00340 00341 tl16pir552_orb( siopcb->siopinib->channel_addr, IER, ier_bit ); 00342 }
関数の呼び出しグラフ: ![]()
tl16pir552.c の 127 行で定義されています。 参照先 IIR・INT_CHAR_TIME_OUT・INT_MASK・INT_RECEIVE_DATA・INT_TRANS_EMPTY・tl16pir552_reb・TRUE. 00128 { 00129 UB iir; 00130 00131 iir = tl16pir552_reb( siopcb->siopinib->channel_addr, IIR) & INT_MASK; 00132 00133 switch( iir ) { 00134 case INT_TRANS_EMPTY : 00135 siopcb->putready = TRUE; 00136 break; 00137 case INT_RECEIVE_DATA : 00138 case INT_CHAR_TIME_OUT : 00139 siopcb->getready = TRUE; 00140 break; 00141 default : 00142 break; 00143 } 00144 00145 }
tl16pir552.c の 169 行で定義されています。 参照先 FALSE・RBR・tl16pir552_reb. 参照元 tl16pir552_rcv_chr(). 00170 { 00171 siopcb->getready = FALSE; 00172 return((char) tl16pir552_reb( siopcb->siopinib->channel_addr, RBR )); 00173 /* 1byte 単位での文字の取り出しを行ったいるため、tl16pir552_opn_por内の 00174 受信バッファ設定を増やしたとしても性能の向上は見られない。 00175 性能の向上には、バッファ全体のブロック転送を行うなどの修正が必要。*/ 00176 }
tl16pir552.c の 246 行で定義されています。 参照先 get_siopinib・tl16pir552_init_siopinib(). 00247 { 00248 tl16pir552_init_siopinib( get_siopinib(1) ); 00249 #if TNUM_SIOP >= 2 00250 tl16pir552_init_siopinib( get_siopinib(2) ); 00251 #endif /* TNUM_SIOP >= 2 */ 00252 }
関数の呼び出しグラフ: ![]()
tl16pir552.c の 210 行で定義されています。 参照先 DIS_INT・DIVISOR_LATCH_ACC・DLL・DLM・DTR・ENABLE_EXT_INT・FCR・FIFO_ENABLE・IER・LCR・MCR・RECEIVE_DATA_AVAILABLE・RECEIVE_FIFO_RESET・RECEIVE_TRIG_1_BYTE・RTS・SCR・tl16pir552_wrb・TRANS_FIFO_RESET. 参照元 tl16pir552_init()・tl16pir552_opn_por(). 00211 { 00212 /* 00213 * SIOレジスタの初期化 00214 */ 00215 /* 初期処理 */ 00216 tl16pir552_wrb( siopinib->channel_addr, IER, DIS_INT ); 00217 00218 tl16pir552_wrb( siopinib->channel_addr, MCR, ENABLE_EXT_INT ); 00219 00220 /* ボーレートの設定 */ 00221 tl16pir552_wrb( siopinib->channel_addr, LCR, siopinib->lcr_def | DIVISOR_LATCH_ACC ); 00222 00223 tl16pir552_wrb( siopinib->channel_addr, SCR, siopinib->scr_def ); 00224 00225 tl16pir552_wrb( siopinib->channel_addr, DLL, siopinib->boud_lo_def ); 00226 tl16pir552_wrb( siopinib->channel_addr, DLM, siopinib->boud_hi_def ); 00227 00228 /* モードの設定 */ 00229 tl16pir552_wrb( siopinib->channel_addr, LCR, siopinib->lcr_def ); 00230 00231 /* FIFOの設定 */ 00232 tl16pir552_wrb( siopinib->channel_addr, FCR, FIFO_ENABLE ); 00233 tl16pir552_wrb( siopinib->channel_addr, FCR, FIFO_ENABLE | RECEIVE_FIFO_RESET | TRANS_FIFO_RESET | RECEIVE_TRIG_1_BYTE ); 00234 tl16pir552_wrb( siopinib->channel_addr, FCR, FIFO_ENABLE | RECEIVE_TRIG_1_BYTE ); 00235 00236 /* 終了処理 */ 00237 tl16pir552_wrb( siopinib->channel_addr, MCR, DTR | RTS | ENABLE_EXT_INT ); 00238 00239 tl16pir552_wrb( siopinib->channel_addr, IER, RECEIVE_DATA_AVAILABLE); 00240 }
tl16pir552.c の 192 行で定義されています。 参照先 FALSE・siopcb_table・siopinib_table・TNUM_SIOP. 00193 { 00194 SIOPCB *siopcb; 00195 UINT i; 00196 00197 /* 00198 * シリアルI/Oポート管理ブロックの初期化 00199 */ 00200 for (siopcb = siopcb_table, i = 0; i < TNUM_SIOP; siopcb++, i++) { 00201 siopcb->siopinib = &(siopinib_table[i]); 00202 siopcb->openflag = FALSE; 00203 } 00204 }
tl16pir552.c の 368 行で定義されています。 参照先 tl16pir552_get_stat()・tl16pir552_getready()・tl16pir552_ierdy_rcv()・tl16pir552_ierdy_snd()・tl16pir552_putready(). 00369 { 00370 tl16pir552_get_stat(siopcb); 00371 00372 if ( tl16pir552_getready(siopcb) ) { 00373 /* 00374 * 受信通知コールバックルーチンを呼び出す. 00375 */ 00376 tl16pir552_ierdy_rcv(siopcb->exinf); 00377 } else if ( tl16pir552_putready(siopcb) ) { 00378 /* 00379 * 送信可能コールバックルーチンを呼び出す. 00380 */ 00381 tl16pir552_ierdy_snd(siopcb->exinf); 00382 } 00383 }
関数の呼び出しグラフ: ![]()
tl16pir552.c の 258 行で定義されています。 参照先 siopcb_table. 00259 { 00260 #if TNUM_SIOP < 2 00261 return(siopcb_table[0].openflag); 00262 #else /* TNUM_SIOP < 2 */ 00263 return(siopcb_table[0].openflag || siopcb_table[1].openflag); 00264 #endif /* TNUM_SIOP < 2 */ 00265 }
tl16pir552.c の 271 行で定義されています。 参照先 FALSE・get_siopcb・tl16pir552_init_siopinib()・TRUE. 00272 { 00273 SIOPCB *siopcb = get_siopcb(siopid); 00274 const SIOPINIB *siopinib = siopcb->siopinib; 00275 00276 /* シリアルコントローラの初期化 */ 00277 tl16pir552_init_siopinib( siopinib ); 00278 00279 /* 割込みレベル設定、割込み要求クリアは、sio_opn_por(hw_serial.h)で行う。 */ 00280 00281 siopcb->exinf = exinf; 00282 siopcb->getready = siopcb->putready = FALSE; 00283 siopcb->openflag = TRUE; 00284 00285 return(siopcb); 00286 }
関数の呼び出しグラフ: ![]()
tl16pir552.c の 111 行で定義されています。 参照先 tl16pir552_reb・tl16pir552_wrb. 参照元 tl16pir552_ena_cbr(). 00112 { 00113 tl16pir552_wrb( addr, reg, tl16pir552_reb( addr, reg ) | val ); 00114 }
tl16pir552.c の 182 行で定義されています。 参照先 FALSE・THR・tl16pir552_wrb. 参照元 tl16pir552_snd_chr(). 00183 { 00184 siopcb->putready = FALSE; 00185 tl16pir552_wrb( siopcb->siopinib->channel_addr, THR, c ); 00186 }
tl16pir552.c の 410 行で定義されています。 参照先 get_siopinib・LOGTASK_PORTID・LSR・TEMT・THR・tl16pir552_reb・tl16pir552_wrb. 00410 { 00411 00412 const SIOPINIB *siopinib = get_siopinib( LOGTASK_PORTID ); 00413 00414 /* 送信部エンプティになるまで待つ。 */ 00415 while( (tl16pir552_reb( siopinib->channel_addr, LSR ) & (TEMT) ) == 0 ); 00416 00417 tl16pir552_wrb( siopinib->channel_addr, THR, val ); 00418 }
tl16pir552.c の 316 行で定義されています。 参照先 tl16pir552_getchar()・tl16pir552_getready(). 00317 { 00318 if (tl16pir552_getready(siopcb)) { 00319 return((INT)(UB) tl16pir552_getchar(siopcb)); 00320 } 00321 return(-1); 00322 }
関数の呼び出しグラフ: ![]()
tl16pir552.c の 303 行で定義されています。 参照先 FALSE・tl16pir552_putchar()・tl16pir552_putready()・TRUE. 00304 { 00305 if (tl16pir552_putready(siopcb)) { 00306 tl16pir552_putchar(siopcb, c); 00307 return(TRUE); 00308 } 00309 return(FALSE); 00310 }
関数の呼び出しグラフ: ![]()
tl16pir552.c の 389 行で定義されています。 参照先 siopcb_table・tl16pir552_isr_siop(). 00390 { 00391 if (siopcb_table[0].openflag) { 00392 tl16pir552_isr_siop(&(siopcb_table[0])); 00393 } 00394 }
関数の呼び出しグラフ: ![]()
変数
tl16pir552.c の 99 行で定義されています。
初期値: {
{ (VP) UART_CH01,
(UB) WORD_LENGTH_8 | STOP_BITS_1 | PARITY_NON,
(UB) PRE_DIVISOR,
(UB) HI8(DIVISOR),
(UB) LO8(DIVISOR) },
}
tl16pir552.c の 74 行で定義されています。
Copyright © 2006 by TAKAGI Nobuhisa. Copyright © 2006 by Kijineko Inc.. このページは Mon Dec 18 17:22:01 2006 に Doxygen によって生成されました。 データ入力からプログラム開発まで!様々なスキルを持ったメンバーが登録しています【@SOHO】 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||