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

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

?? edb7xxx_serial.c

?? eCos1.31版
?? C
?? 第 1 頁 / 共 2 頁
字號:
    edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv;    volatile cyg_uint32 *syscon = (volatile cyg_uint32 *)edb7xxx_chan->syscon;    volatile cyg_uint32 *blcfg = (volatile cyg_uint32 *)edb7xxx_chan->control;    unsigned int baud_divisor = select_baud[new_config->baud];    cyg_uint32 _lcr;    if (baud_divisor == 0) return false;    // Disable port interrupts while changing hardware    _lcr = select_word_length[new_config->word_length - CYGNUM_SERIAL_WORD_LENGTH_5] |         select_stop_bits[new_config->stop] |        select_parity[new_config->parity] |        UBLCR_FIFOEN | UART_BITRATE(baud_divisor);#ifdef CYGDBG_IO_INIT    diag_printf("Set CTL: %x = %x\n", blcfg, _lcr);#endif    *blcfg = _lcr;    *syscon |= SYSCON1_UART1EN;    if (new_config != &chan->config) {        chan->config = *new_config;    }    return true;}// Function to initialize the device.  Called at bootstrap time.static bool edb7xxx_serial_init(struct cyg_devtab_entry *tab){    serial_channel *chan = (serial_channel *)tab->priv;    edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv;#ifdef CYGDBG_IO_INIT    diag_printf("EDB7XXX SERIAL init - dev: %x.%d\n", edb7xxx_chan->control, edb7xxx_chan->tx_int_num);#endif    (chan->callbacks->serial_init)(chan);  // Really only required for interrupt driven devices    if (chan->out_cbuf.len != 0) {        cyg_drv_interrupt_create(edb7xxx_chan->tx_int_num,                                 99,                     // Priority - unused                                 (cyg_addrword_t)chan,   //  Data item passed to interrupt handler                                 edb7xxx_serial_tx_ISR,                                 edb7xxx_serial_tx_DSR,                                 &edb7xxx_chan->serial_tx_interrupt_handle,                                 &edb7xxx_chan->serial_tx_interrupt);        cyg_drv_interrupt_attach(edb7xxx_chan->serial_tx_interrupt_handle);        cyg_drv_interrupt_mask(edb7xxx_chan->tx_int_num);        edb7xxx_chan->tx_enabled = false;    }    if (chan->in_cbuf.len != 0) {        cyg_drv_interrupt_create(edb7xxx_chan->rx_int_num,                                 99,                     // Priority - unused                                 (cyg_addrword_t)chan,   //  Data item passed to interrupt handler                                 edb7xxx_serial_rx_ISR,                                 edb7xxx_serial_rx_DSR,                                 &edb7xxx_chan->serial_rx_interrupt_handle,                                 &edb7xxx_chan->serial_rx_interrupt);        cyg_drv_interrupt_attach(edb7xxx_chan->serial_rx_interrupt_handle);        cyg_drv_interrupt_unmask(edb7xxx_chan->rx_int_num);    }    edb7xxx_serial_config_port(chan, &chan->config, true);    return true;}// This routine is called when the device is "looked" up (i.e. attached)static Cyg_ErrNo edb7xxx_serial_lookup(struct cyg_devtab_entry **tab,                   struct cyg_devtab_entry *sub_tab,                  const char *name){    serial_channel *chan = (serial_channel *)(*tab)->priv;    (chan->callbacks->serial_init)(chan);  // Really only required for interrupt driven devices    return ENOERR;}// Send a character to the device output buffer.// Return 'true' if character is sent to devicestatic booledb7xxx_serial_putc(serial_channel *chan, unsigned char c){    edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv;    volatile cyg_uint8  *data = (volatile cyg_uint8  *)edb7xxx_chan->data;    volatile cyg_uint32 *stat = (volatile cyg_uint32 *)edb7xxx_chan->stat;    if ((*stat & SYSFLG1_UTXFF1) == 0) {// Transmit buffer/FIFO is not full        *data = c;        return true;    } else {// No space        return false;    }}// Fetch a character from the device input buffer, waiting if necessarystatic unsigned char edb7xxx_serial_getc(serial_channel *chan){    unsigned char c;    edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv;    volatile cyg_uint32 *data = (volatile cyg_uint32 *)edb7xxx_chan->data;    volatile cyg_uint32 *stat = (volatile cyg_uint32 *)edb7xxx_chan->stat;    while (*stat & SYSFLG1_URXFE1) ; // Wait for char    c = *data;    return c;}// Set up the device characteristics; baud rate, etc.static bool edb7xxx_serial_set_config(serial_channel *chan, cyg_serial_info_t *config){    return edb7xxx_serial_config_port(chan, config, false);}// Enable the transmitter (interrupt) on the devicestatic voidedb7xxx_serial_start_xmit(serial_channel *chan){    edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv;    edb7xxx_chan->tx_enabled = true;    cyg_drv_interrupt_unmask(edb7xxx_chan->tx_int_num);}// Disable the transmitter on the devicestatic void edb7xxx_serial_stop_xmit(serial_channel *chan){    edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv;    cyg_drv_interrupt_mask(edb7xxx_chan->tx_int_num);    edb7xxx_chan->tx_enabled = false;}// Serial I/O - low level Tx interrupt handler (ISR)static cyg_uint32 edb7xxx_serial_tx_ISR(cyg_vector_t vector, cyg_addrword_t data){    serial_channel *chan = (serial_channel *)data;    edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv;    cyg_drv_interrupt_mask(edb7xxx_chan->tx_int_num);    cyg_drv_interrupt_acknowledge(edb7xxx_chan->tx_int_num);    return CYG_ISR_CALL_DSR;  // Cause DSR to be run}// Serial I/O - high level Tx interrupt handler (DSR)static void       edb7xxx_serial_tx_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data){    serial_channel *chan = (serial_channel *)data;    edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv;    (chan->callbacks->xmt_char)(chan);    if (edb7xxx_chan->tx_enabled) {        cyg_drv_interrupt_unmask(edb7xxx_chan->tx_int_num);    }}// Serial I/O - low level Rx interrupt handler (ISR)static cyg_uint32 edb7xxx_serial_rx_ISR(cyg_vector_t vector, cyg_addrword_t data){    serial_channel *chan = (serial_channel *)data;    edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv;    cyg_drv_interrupt_mask(edb7xxx_chan->rx_int_num);    cyg_drv_interrupt_acknowledge(edb7xxx_chan->rx_int_num);    return CYG_ISR_CALL_DSR;  // Cause DSR to be run}// Serial I/O - high level Rx interrupt handler (DSR)static void       edb7xxx_serial_rx_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data){    serial_channel *chan = (serial_channel *)data;    edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv;    volatile cyg_uint32 *datreg = (volatile cyg_uint32 *)edb7xxx_chan->data;    volatile cyg_uint32 *stat = (volatile cyg_uint32 *)edb7xxx_chan->stat;    while (!(*stat & SYSFLG1_URXFE1))        (chan->callbacks->rcv_char)(chan, *datreg);    cyg_drv_interrupt_unmask(edb7xxx_chan->rx_int_num);}// Serial I/O - low level Ms interrupt handler (ISR)static cyg_uint32 edb7xxx_serial_ms_ISR(cyg_vector_t vector, cyg_addrword_t data){    serial_channel *chan = (serial_channel *)data;    edb7xxx_serial_info *edb7xxx_chan = (edb7xxx_serial_info *)chan->dev_priv;    cyg_drv_interrupt_mask(edb7xxx_chan->ms_int_num);    cyg_drv_interrupt_acknowledge(edb7xxx_chan->ms_int_num);    return CYG_ISR_CALL_DSR;  // Cause DSR to be run}// Serial I/O - high level Ms interrupt handler (DSR)static void       edb7xxx_serial_ms_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data){}#endif // CYGPKG_IO_SERIAL_ARM_EDB7XXX

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品美女久久久久久久| 国产伦精一区二区三区| 色综合色狠狠综合色| 国产精品福利影院| 色综合天天综合| 亚洲一二三四在线观看| 欧美视频一区在线| 日产欧产美韩系列久久99| 91精品婷婷国产综合久久 | 中文字幕乱码一区二区免费| 国产69精品一区二区亚洲孕妇| 亚洲国产精品成人综合| 色综合久久六月婷婷中文字幕| 欧美日韩免费电影| 亚洲最大的成人av| 欧美猛男男办公室激情| 国内精品第一页| 国产精品久久久久久久久果冻传媒| av午夜一区麻豆| 亚洲国产精品一区二区久久| 日韩视频永久免费| 成人三级伦理片| 亚洲成人自拍偷拍| 精品乱人伦一区二区三区| 国产高清不卡二三区| 夜夜爽夜夜爽精品视频| 欧美成人高清电影在线| 91美女在线视频| 老司机精品视频导航| 中文在线一区二区| 777a∨成人精品桃花网| 成人午夜电影网站| 亚洲地区一二三色| 欧美国产一区视频在线观看| 欧美猛男男办公室激情| www.欧美精品一二区| 成人永久免费视频| 亚洲精品亚洲人成人网 | 色综合天天视频在线观看 | 精品精品国产高清一毛片一天堂| 99久久久久久99| 黄色资源网久久资源365| 亚洲美女免费在线| 久久只精品国产| 在线播放欧美女士性生活| 91一区在线观看| 国产精品18久久久久久久久 | 亚洲美女屁股眼交| 国产日韩欧美制服另类| 91精品国产综合久久精品app| www.色综合.com| 国产主播一区二区| 日韩精品免费视频人成| 一区二区三区蜜桃| 精品中文字幕一区二区小辣椒| 亚洲国产经典视频| 日韩一区二区三| 欧美调教femdomvk| 99热精品国产| av成人老司机| 成人午夜在线播放| 极品少妇一区二区三区精品视频| 性做久久久久久久久| 一区二区视频在线看| 亚洲视频 欧洲视频| 国产欧美综合在线| 久久综合九色欧美综合狠狠 | 国产麻豆精品视频| 久久机这里只有精品| 免费一级片91| 免费在线欧美视频| 视频一区二区三区中文字幕| 亚洲成av人片一区二区| 有码一区二区三区| 一区二区三区国产| 亚洲精品免费视频| 亚洲综合在线第一页| 亚洲六月丁香色婷婷综合久久| 亚洲视频免费看| 91视频国产观看| 波多野结衣中文一区| 成人a级免费电影| 成人精品国产福利| 99精品视频在线观看免费| 不卡视频免费播放| 91在线观看视频| 日本乱码高清不卡字幕| 欧美日韩不卡在线| 日韩一区二区在线看片| 欧美精品一区二区久久婷婷| 久久久久久久综合狠狠综合| 日本一区二区三区国色天香| 国产亚洲人成网站| 亚洲人成在线播放网站岛国 | 日韩欧美一级二级| 久久久久久久精| 日韩理论在线观看| 亚洲综合视频网| 久久国产精品第一页| 国产精品99久久久久久宅男| 成人aa视频在线观看| 欧美日精品一区视频| 韩国欧美国产1区| 久久综合久久综合久久综合| 欧美日韩在线精品一区二区三区激情| 日本精品视频一区二区| 欧美丰满一区二区免费视频| 亚洲精品在线三区| 亚洲色图欧美激情| 天天综合网天天综合色| 国产激情一区二区三区桃花岛亚洲| 国产毛片精品国产一区二区三区| 欧美aaaaaa午夜精品| 国产一区二区三区黄视频| 国产精品一区三区| 91国产成人在线| 91精品国产综合久久精品图片| 91精品国产乱码久久蜜臀| 日韩精品在线一区| 国产欧美精品一区| 亚洲欧美日韩成人高清在线一区| 亚洲欧美日本在线| 日日夜夜精品视频免费 | 亚洲欧美日韩久久精品| 亚洲国产成人91porn| 黄色小说综合网站| 91欧美激情一区二区三区成人| 欧美日韩视频在线一区二区| 日韩美女在线视频| 99这里只有久久精品视频| av亚洲精华国产精华精华 | 午夜激情久久久| 久久国产福利国产秒拍| 蜜臀av一区二区三区| 在线观看视频一区| 久久先锋影音av鲁色资源网| 亚洲精品欧美在线| 精品亚洲欧美一区| eeuss影院一区二区三区| 精品国产1区二区| 亚洲另类春色校园小说| 国内成+人亚洲+欧美+综合在线| www.欧美.com| 精品国产91洋老外米糕| 天堂资源在线中文精品| 99久久婷婷国产| 日韩午夜在线播放| 一区二区三区精密机械公司| 久久aⅴ国产欧美74aaa| 色综合咪咪久久| 久久精品亚洲精品国产欧美kt∨ | 毛片不卡一区二区| 日本韩国欧美国产| 国产亚洲成av人在线观看导航| 午夜精品福利一区二区三区蜜桃| 国产成人午夜精品5599| 欧美日韩极品在线观看一区| 欧美激情在线一区二区三区| 日产国产欧美视频一区精品| 欧美日本国产一区| 亚洲免费av在线| 粉嫩蜜臀av国产精品网站| 日韩一卡二卡三卡国产欧美| 亚洲欧美在线视频| 国产一区二区主播在线| 日韩精品一区在线| 日韩电影免费一区| 欧美伊人精品成人久久综合97| 欧美激情一区二区三区| 9i看片成人免费高清| 久久久不卡网国产精品一区| 奇米精品一区二区三区在线观看一 | 欧美伊人久久大香线蕉综合69| 亚洲一区二区在线观看视频| 国产欧美一区二区三区鸳鸯浴| 婷婷开心久久网| 色综合一区二区三区| 国产精品久久久久婷婷| 国产激情一区二区三区| 国产女人水真多18毛片18精品视频| 激情深爱一区二区| 日韩欧美美女一区二区三区| 日韩综合小视频| 欧美色偷偷大香| 日韩精品欧美精品| 337p亚洲精品色噜噜狠狠| 午夜精品久久久久影视| 欧美日韩一区二区三区四区| 亚洲小说欧美激情另类| 欧美亚洲图片小说| 亚洲国产裸拍裸体视频在线观看乱了 | 老司机精品视频线观看86| 久久综合色婷婷| 国产精品一区二区91| 国产情人综合久久777777| 国产xxx精品视频大全| 亚洲精品一卡二卡| 欧美年轻男男videosbes| 午夜精品在线看| 欧美一级视频精品观看|