亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sngks32csio.c

?? Vxworks下BSP源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
        pChan->putRcvArg     = callbackArg;        return (OK);    default:        return (ENOSYS);    }    }/********************************************************************************* at91cPollOutput - output a character in polled mode** RETURNS: OK if a character arrived, EIO on device error, EAGAIN* if the output buffer if full. ENOSYS if the device is* interrupt-only.*/LOCAL int at91cPollOutput    (    SIO_CHAN *pSioChan,    char      outChar    )    {    AT91C_CHAN * pChan = (AT91C_CHAN *)pSioChan;    UINT32    status;    /* is the transmitter ready to accept a character? */    AT91C_SIO_REG_READ (pChan, AT91C_US_CSR, status);    if ((status & AT91C_US_TXREADY) == 0x00)        return (EAGAIN);    /* write out the character */    AT91C_SIO_REG_WRITE(pChan, AT91C_US_THR, outChar);    return (OK);    }/******************************************************************************** at91cPollInput - poll the device for input** RETURNS: OK if a character arrived, EIO on device error, EAGAIN* if the input buffer if empty, ENOSYS if the device is* interrupt-only.*/LOCAL int at91cPollInput    (    SIO_CHAN *    pSioChan,    char *        thisChar    )    {    AT91C_CHAN * pChan = (AT91C_CHAN *)pSioChan;    UINT32    status;    AT91C_SIO_REG_READ (pChan,AT91C_US_CSR, status);    if ((status & AT91C_US_RXREADY) == 0x00)        return (EAGAIN);    /* no input available at this time */    /* got a character */    AT91C_SIO_REG_READ(pChan, AT91C_US_RHR, *thisChar);    return (OK);    }/******************************************************************************** at91cModeSet - toggle between interrupt and polled mode** RETURNS: OK on success, EIO on unsupported mode.*/LOCAL int at91cModeSet    (    AT91C_CHAN * pChan,        /* channel */    uint_t          newMode       /* new mode */    )    {/*    UINT32    temp;*/    if ((newMode != SIO_MODE_POLL) && (newMode != SIO_MODE_INT))        return (EIO);    /* Don't enter interrupt mode unless it is allowed. */    if ((newMode == SIO_MODE_INT) && (!at91cIntrMode))    return (EIO);    /* set the new mode */    pChan->mode = newMode;    if (pChan->mode == SIO_MODE_INT)        {                AT91C_SIO_REG_WRITE(pChan, AT91C_US_CR,AT91C_US_RSTRX | AT91C_US_RSTTX);    /*Reset RX & TX*/        AT91C_SIO_REG_WRITE(pChan, AT91C_US_CR, AT91C_US_RXEN |AT91C_US_TXEN);		/*Enable Rx & Tx*/	 AT91C_SIO_REG_WRITE(pChan, AT91C_US_IER, AT91C_US_RXRDY |AT91C_US_TXRDY);	/*Enable Rx & Tx interrupt*/        intEnable(pChan->intLevel);        }    else        { 	 AT91C_SIO_REG_WRITE(pChan, AT91C_US_CR,AT91C_US_RSTRX | AT91C_US_RSTTX);    /*Reset RX & TX*/        AT91C_SIO_REG_WRITE(pChan, AT91C_US_CR, AT91C_US_RXEN |AT91C_US_TXEN);		/*Enable Rx & Tx*/        intDisable (pChan->intLevel);        }	    return (OK);    }/********************************************************************************* at91cHup - hang up the modem control lines ** Resets the RTS and DTR signals.** RETURNS: OK*/LOCAL STATUS at91cHup    (    AT91C_CHAN * pChan     /* pointer to channel */    )    {    FAST int     oldlevel;    /* current interrupt level mask */    oldlevel = intLock ();    /* set RTS and DTR low */    /*AT91C_SIO_REG_WRITE(pChan, AT91C_US_CR, AT91C_US_RTSDIS | AT91C_US_DTRDIS);            */    intUnlock (oldlevel);    return (OK);    }    /********************************************************************************* at91cOpen - Set the modem control lines ** Set the modem control lines(RTS, DTR) TRUE if not already set.  ** RETURNS: OK*/LOCAL STATUS at91cOpen    (    AT91C_CHAN * pChan     /* pointer to channel */    )    {    FAST int     oldlevel;    /* current interrupt level mask */    oldlevel = intLock ();    /* set RTS and DTR active *//*    AT91C_SIO_REG_WRITE(pChan, AT91C_US_CR, AT91C_US_RTSEN | AT91C_US_DTREN);    */    intUnlock (oldlevel);    return (OK);    }/******************************************************************************** at91cOptSet - set hardware options** This routine sets up the hardware according to the specified option* argument.  If the hardware cannot support a particular option value, then* it should ignore that portion of the request.** RETURNS: OK upon success, or EIO for invalid arguments.*/LOCAL int at91cOptSet    (    AT91C_CHAN * pChan,        /* channel */    uint_t    newOpts              /* new options */    )    {                UINT32 dataBits = AT91C_US_CHRL_8_BITS;    UINT32 stopBits = AT91C_US_NBSTOP_1_BIT;    BOOL hdweFlowCtrl=TRUE;    BOOL rcvrEnable = TRUE;    int  lvl;    UINT32 temp=AT91C_US_PAR_NONE;    UINT32 result;        if (pChan == NULL || newOpts & 0xffffff00)    return EIO;    /* do nothing if options already set */    if (pChan->options == newOpts)    return OK;    /* ignore requests for unsupported options */    /* decode individual request elements */    switch (newOpts & CSIZE)    {    case CS5:        dataBits = AT91C_US_CHRL_5_BITS; break;    case CS6:        dataBits = AT91C_US_CHRL_6_BITS; break;    case CS7:        dataBits = AT91C_US_CHRL_7_BITS; break;    default:    case CS8:        dataBits = AT91C_US_CHRL_8_BITS; break;    }    if (newOpts & STOPB)        stopBits = AT91C_US_NBSTOP_2_BIT;    else        stopBits = AT91C_US_NBSTOP_1_BIT;    switch (newOpts & (PARENB|PARODD))    {    case PARENB|PARODD:        /* enable odd parity */            temp=AT91C_US_PAR_ODD;        break;    case PARENB:        /* enable even parity */        temp=AT91C_US_PAR_EVEN;         break;    case PARODD:        /* invalid mode, not normally used. */        break;    default:    case 0:        temp=AT91C_US_PAR_NONE ;/* no parity */        break;    }    if (newOpts & CLOCAL)    {        /* clocal disables hardware flow control */        hdweFlowCtrl = FALSE;    }    if ((newOpts & CREAD) == 0)        rcvrEnable = FALSE;    lvl = intLock ();    /*     * Reset the device according to dataBits, stopBits, hdweFlowCtrl,     * rcvrEnable, and parity selections.     */    /*    AT91C_SIO_REG_READ(pChan, AT91C_US_MR, result);        AT91C_SIO_REG_WRITE(pChan,AT91C_US_MR,(result|dataBits|temp|stopBits));*/    AT91C_SIO_REG_WRITE(pChan,AT91C_US_CR,AT91C_US_RSTRX | AT91C_US_RSTTX);/*RESET*/    AT91C_SIO_REG_WRITE(pChan,AT91C_US_CR,AT91C_US_RXEN | AT91C_US_TXEN);	/*TX&RX ENABLE*/    AT91C_SIO_REG_WRITE(pChan,AT91C_US_MR,(dataBits|temp|stopBits));       intUnlock (lvl);    pChan->options = newOpts;    return (OK);    }/********************************************************************************* at91cIoctl - special device control** This routine handles the IOCTL messages from the user. It supports commands * to get/set baud rate, mode(INT,POLL), hardware options(parity, number of * data bits) and modem control(RTS/CTS and DTR/DSR handshakes).* The ioctl commands SIO_HUP and SIO_OPEN are used to implement the HUPCL(hang* up on last close) function.** As on a UNIX system, requesting a baud rate of zero is translated into* a hangup request.  The DTR and RTS lines are dropped.  This should cause* a connected modem to drop the connection.  The SIO_HUP command will only* hangup if the HUPCL option is active.  The SIO_OPEN function will raise* DTR and RTS lines whenever it is called. Use the BAUD_RATE=0 function* to hangup when HUPCL is not active.** The CLOCAL option will disable hardware flow control.  When selected,* hardware flow control is not used.  When not selected hardware flow control* is based on the RTS/CTS signals.  CTS is the clear to send input* from the other end.  It must be true for this end to begin sending new* characters.  In most drivers, the RTS signal will be assumed to be connected* to the opposite end's CTS signal and can be used to control output from* the other end.  Raising RTS asserts CTS at the other end and the other end* can send data.  Lowering RTS de-asserts CTS and the other end will stop* sending data. (This is non-EIA defined use of RTS).** RETURNS: OK on success, ENOSYS on unsupported request, EIO on failed* request.*/LOCAL int at91cIoctl    (    SIO_CHAN *    pSioChan,        /* device to control */    int        request,        /* request code */    void *    someArg            /* some argument */    )    {    AT91C_CHAN *pChan = (AT91C_CHAN *) pSioChan;    int     oldlevel;        /* current interrupt level mask */    int     arg = (int)someArg;        switch (request)    {    case SIO_BAUD_SET:        /*         * like unix, a baud request for 0 is really a request to         * hangup.         */        if (arg == 0)        return at91cHup (pChan);        /*         * Set the baud rate. Return EIO for an invalid baud rate, or         * OK on success.         */        if (arg < AT91C_BAUD_MIN || arg > AT91C_BAUD_MAX)            {        return (EIO);            }	            /* Calculate the baud rate constant for the new baud rate */            switch(arg)                {	           case 1200:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    AT91C_SIO_REG_WRITE(pChan,AT91C_US_BRGR, AT91C_CD_1200);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 2400:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    AT91C_SIO_REG_WRITE(pChan,AT91C_US_BRGR, AT91C_CD_2400);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 4800:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    AT91C_SIO_REG_WRITE(pChan,AT91C_US_BRGR, AT91C_CD_4800);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 9600:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    AT91C_SIO_REG_WRITE(pChan,AT91C_US_BRGR,AT91C_CD_9600);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 19200:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    AT91C_SIO_REG_WRITE(pChan,AT91C_US_BRGR,AT91C_CD_19200);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 38400:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    AT91C_SIO_REG_WRITE(pChan,AT91C_US_BRGR,AT91C_CD_38400);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 57600:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    AT91C_SIO_REG_WRITE(pChan,AT91C_US_BRGR,AT91C_CD_57600);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 115200:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    AT91C_SIO_REG_WRITE(pChan,AT91C_US_BRGR,AT91C_CD_115200);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);                case 230400:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    AT91C_SIO_REG_WRITE(pChan,AT91C_US_BRGR,AT91C_CD_230400);                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);#if 0                case 460800:                    /* disable interrupts during chip access */                    oldlevel = intLock ();                    AT91C_SIO_REG_WRITE(pChan,AT91C_US_BRGR,   );                    intUnlock (oldlevel);                    pChan->baudRate=arg;                    return (OK);   #endif                       default:                    return(EIO);                }            break;    case SIO_BAUD_GET:            /* Get the baud rate and return OK */            *(int *)arg = pChan->baudRate;            break;    case SIO_MODE_SET:        /*         * Set the mode (e.g., to interrupt or polled). Return OK         * or EIO for an unknown or unsupported mode.         */        return (at91cModeSet (pChan, arg));    case SIO_MODE_GET:                    /* Get the current mode and return OK.  */        *(int *)arg = pChan->mode;        return (OK);    case SIO_AVAIL_MODES_GET:        /* Get the available modes and return OK.  */        *(int *)arg = SIO_MODE_INT | SIO_MODE_POLL;         return (OK);    case SIO_HW_OPTS_SET:        /*         * Optional command to set the hardware options (as defined         * in sioLib.h).         * Return OK, or ENOSYS if this command is not implemented.         * Note: several hardware options are specified at once.         * This routine should set as many as it can and then return         * OK. The SIO_HW_OPTS_GET is used to find out which options         * were actually set.         */        return (at91cOptSet (pChan, arg));    case SIO_HW_OPTS_GET:        /*         * Optional command to get the hardware options (as defined         * in sioLib.h). Return OK or ENOSYS if this command is not         * implemented.  Note: if this command is unimplemented, it         * will be assumed that the driver options are CREAD | CS8         * (e.g., eight data bits, one stop bit, no parity, ints enabled).         */        *(int *)arg = pChan->options;        return (OK);    case SIO_HUP:            /* check if hupcl option is enabled */            if (pChan->options & HUPCL)                 return (at91cHup (pChan));            return (OK);    case SIO_OPEN:            return (at91cOpen (pChan)); /* always open */    default:        return (ENOSYS);    }    return (ENOSYS);    }/********************************************************************************* dummyCallback - dummy callback routine** RETURNS: ERROR.*/LOCAL STATUS dummyCallback (void)    {    return (ERROR);    }#if 0void myDelay(){	int i;		*(volatile UINT32 *)0xfffff800 = 0x35;	*(volatile UINT32 *)0xfffff810 = 0x35;		while(1)	{	*(volatile UINT32 *)0xfffff834 = 0x35;/*lit*/		for(i=0;i<1000000;i++);		*(volatile UINT32 *)0xfffff830 = 0x35;		for(i=0;i<1000000;i++);		}}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
偷窥少妇高潮呻吟av久久免费| 精品国产髙清在线看国产毛片| 中文字幕一区二区三区四区不卡| 国产美女在线观看一区| 精品毛片乱码1区2区3区| 黄一区二区三区| 欧美激情艳妇裸体舞| 99久久精品国产毛片| 亚洲一区二区三区四区五区中文 | 国产精品美女久久久久aⅴ | jlzzjlzz国产精品久久| 亚洲欧洲制服丝袜| 欧美色老头old∨ideo| 日本成人中文字幕在线视频| 精品成a人在线观看| 成人看片黄a免费看在线| 一区二区三区在线视频观看| 制服丝袜亚洲色图| 国产福利不卡视频| 一区二区三区中文字幕电影| 日韩一区二区在线看| 大白屁股一区二区视频| 亚洲成在人线在线播放| 久久综合一区二区| 91蜜桃免费观看视频| 六月丁香综合在线视频| 国产精品久久久久久久久动漫| 欧美性生活大片视频| 国产成人一级电影| 香蕉av福利精品导航| 国产精品网站一区| 337p亚洲精品色噜噜| 成人听书哪个软件好| 丝袜亚洲另类丝袜在线| 国产精品女人毛片| 欧美不卡一区二区三区| 欧洲国内综合视频| 国产精品白丝av| 日日夜夜精品视频免费| 国产精品成人一区二区艾草 | 国产精品18久久久久久久久久久久| 日本sm残虐另类| 中文字幕亚洲在| 日韩免费高清av| 欧美视频一区二区三区四区| 国产精品88888| 日本美女视频一区二区| 亚洲男人天堂av| 国产欧美久久久精品影院| 91精品国产免费久久综合| 日韩欧美视频在线| 91丨porny丨在线| 国产在线视频一区二区三区| 一区二区高清免费观看影视大全| 久久久久综合网| 日韩欧美高清一区| 在线观看一区二区精品视频| av资源站一区| 成人在线综合网| 国产伦精品一区二区三区免费迷| 日本不卡一区二区| 亚洲高清免费观看| 亚洲一区二区欧美| 亚洲欧美日韩中文播放| 国产精品污网站| 亚洲国产精品av| 欧美精品一区二区三区四区| 日韩午夜在线观看| 正在播放亚洲一区| 欧美专区亚洲专区| 91国产免费看| 欧洲av一区二区嗯嗯嗯啊| 91黄色免费看| 欧洲视频一区二区| 91福利精品第一导航| 色丁香久综合在线久综合在线观看| 不卡在线观看av| 成人的网站免费观看| 国产a精品视频| a级高清视频欧美日韩| 91在线视频播放地址| 91原创在线视频| 91免费国产在线| 欧美性大战久久久久久久蜜臀| 色就色 综合激情| 欧美色图免费看| 91精品国产综合久久久久久漫画 | 欧美成人高清电影在线| 精品国产一区二区三区忘忧草 | 精品久久久久久久久久久久久久久久久 | 欧美一卡2卡三卡4卡5免费| 日韩一区二区免费在线观看| 欧美成人一区二区三区片免费| 精品福利二区三区| 国产精品水嫩水嫩| 亚洲日本va在线观看| 一区二区三区四区中文字幕| 亚洲成人你懂的| 国产曰批免费观看久久久| 懂色av一区二区夜夜嗨| 91无套直看片红桃| 欧美日韩午夜影院| 久久蜜桃香蕉精品一区二区三区| 国产日产亚洲精品系列| 国产精品嫩草久久久久| 亚洲一区二区三区四区五区黄 | 久久精品国产一区二区三区免费看| 欧美无人高清视频在线观看| 国产一区二区在线影院| 国产精品一区二区在线观看网站| 国产成人在线影院| 欧美亚洲国产怡红院影院| 91精品国产品国语在线不卡| 久久久影院官网| 亚洲综合在线五月| 日产国产高清一区二区三区| 国产美女一区二区三区| 日本韩国一区二区三区| 日韩欧美在线网站| 中文字幕一区二区不卡| 日本欧美一区二区在线观看| 不卡的av中国片| 日韩一级免费一区| 国产精品国产馆在线真实露脸| 日韩av电影免费观看高清完整版| 成人美女视频在线观看| 欧美一区二区三区在线视频 | av综合在线播放| 777欧美精品| 国产精品第五页| 激情综合网最新| 91麻豆国产福利精品| 久久综合99re88久久爱| 亚洲大片在线观看| 9i在线看片成人免费| 日韩欧美成人激情| 亚洲综合免费观看高清完整版| 国产乱子伦视频一区二区三区| 欧美三级三级三级| 中文字幕在线免费不卡| 麻豆国产欧美日韩综合精品二区| 91丝袜美腿高跟国产极品老师 | 国产高清成人在线| 日韩欧美成人一区二区| 亚洲一卡二卡三卡四卡五卡| 成人免费高清视频在线观看| 欧美刺激午夜性久久久久久久| 亚洲图片自拍偷拍| fc2成人免费人成在线观看播放| 精品粉嫩超白一线天av| 日本伊人色综合网| 欧美日韩在线免费视频| 中文字幕一区二区三区四区| 国产精品77777| 久久综合色婷婷| 青青草97国产精品免费观看| 欧美日韩一区二区三区四区| 洋洋成人永久网站入口| 成人av在线一区二区三区| 日本一区二区三区久久久久久久久不 | 精品一区二区三区免费视频| 337p亚洲精品色噜噜狠狠| 午夜日韩在线观看| 欧美亚洲国产bt| 亚洲国产成人av| 欧美日韩aaaaaa| 婷婷综合在线观看| 91精品久久久久久久99蜜桃| 亚洲成人av一区| 欧美高清一级片在线| 亚洲成人免费电影| 欧美一区二区三区系列电影| 秋霞电影一区二区| 日韩欧美一区二区不卡| 久久精品国产精品青草| 亚洲精品一区二区三区四区高清 | 亚洲v精品v日韩v欧美v专区| 欧美日韩国产一区| 无码av免费一区二区三区试看 | 99久久婷婷国产综合精品| 中文字幕不卡在线播放| 成人性视频免费网站| 亚洲视频小说图片| 在线日韩国产精品| 日韩av一区二区在线影视| 日韩一区二区在线观看视频播放| 麻豆精品国产传媒mv男同| 久久综合久久鬼色| 成人自拍视频在线| 一区二区在线免费观看| 欧美一区二区三区思思人| 久久99精品久久久久久动态图| 精品粉嫩超白一线天av| 成人av免费在线观看| 一区二区三区在线看| 91精品欧美久久久久久动漫| 国产剧情一区二区| 美女免费视频一区| 中文字幕欧美国产| 在线观看av一区二区|