Пример #1
0
/*
 *  シリアルI/Oポートに対する割込み処理
 */
static void
uart_rx_isr_siop(SIOPCB *siopcb)
{
    if (uart_getready(siopcb)) {
        /*
         *  受信通知コールバックルーチンを呼び出す.
         */
        uart_ierdy_rcv(siopcb->exinf);
    }
}
Пример #2
0
/*
 *  SIOの割込みサービスルーチン
 */
void
int_timer2()
{
    SIOPCB *siopcb = &(siopcb_table[0]);

    sil_rew_mem((VP)(TADR_TC_BASE+TC_WINDOW*2+TOFF_TC_SR));
    if (uart_getready(siopcb)) {
        /*
         *  受信通知コールバックルーチンを呼び出す.
         */
        uart_ierdy_rcv(siopcb->exinf);
    }
}
Пример #3
0
/*                                                                            
 *  シリアルI/Oポートに対する割込み処理                                       
 */
static void
uart_isr_siop(SIOPCB *siopcb)
{
    /*
     * エッジ割込みのため割込み処理前にACK
     */
    intc_ack_interrupt(1 << (UARTINTLVL - 1));
    
    if (uart_getready(siopcb)) {
        /*
         *  受信通知コールバックルーチンを呼び出す.
         */
        uart_ierdy_rcv(siopcb->exinf);
    }

    if (uart_putready(siopcb)) {
        /*
         *  送信可能コールバックルーチンを呼び出す.
         */
        uart_ierdy_snd(siopcb->exinf);
    }
}