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

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

?? edb7xxx_serial.c

?? 移植到WLIT項目的redboot源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
//==========================================================================////      io/serial/arm/edb7xxx_serial.c////      Cirrus Logic EDB7XXX Serial I/O Interface Module (interrupt driven)////==========================================================================//####COPYRIGHTBEGIN####//                                                                          // -------------------------------------------                              // The contents of this file are subject to the Red Hat eCos Public License // Version 1.1 (the "License"); you may not use this file except in         // compliance with the License.  You may obtain a copy of the License at    // http://www.redhat.com/                                                   //                                                                          // Software distributed under the License is distributed on an "AS IS"      // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the // License for the specific language governing rights and limitations under // the License.                                                             //                                                                          // The Original Code is eCos - Embedded Configurable Operating System,      // released September 30, 1998.                                             //                                                                          // The Initial Developer of the Original Code is Red Hat.                   // Portions created by Red Hat are                                          // Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             // All Rights Reserved.                                                     // -------------------------------------------                              //                                                                          //####COPYRIGHTEND####//==========================================================================//#####DESCRIPTIONBEGIN####//// Author(s):   gthomas// Contributors:  gthomas// Date:        1999-02-04// Purpose:     EDB7XXX Serial I/O module (interrupt driven version)// Description: ////####DESCRIPTIONEND####////==========================================================================#include <pkgconf/system.h>#include <pkgconf/io_serial.h>#include <pkgconf/io.h>#include <cyg/io/io.h>#include <cyg/hal/hal_intr.h>#include <cyg/io/devtab.h>#include <cyg/io/serial.h>#include <cyg/infra/diag.h>#ifdef CYGPKG_IO_SERIAL_ARM_EDB7XXX#include "edb7xxx_serial.h"typedef struct edb7xxx_serial_info {    CYG_ADDRWORD   data,                      // Pointer to data register                   control,                   // Pointer to baud rate/line control register                   stat,                      // Pointer to system flags for this port                   syscon;                    // Pointer to system control for this port    CYG_WORD       tx_int_num,                // Transmit interrupt number                   rx_int_num,                // Receive interrupt number                   ms_int_num;                // Modem Status Change interrupt number    cyg_interrupt  serial_tx_interrupt,                    serial_rx_interrupt,                    serial_ms_interrupt;    cyg_handle_t   serial_tx_interrupt_handle,                    serial_rx_interrupt_handle,                    serial_ms_interrupt_handle;    bool           tx_enabled;} edb7xxx_serial_info;static bool edb7xxx_serial_init(struct cyg_devtab_entry *tab);static bool edb7xxx_serial_putc(serial_channel *chan, unsigned char c);static Cyg_ErrNo edb7xxx_serial_lookup(struct cyg_devtab_entry **tab,                                    struct cyg_devtab_entry *sub_tab,                                   const char *name);static unsigned char edb7xxx_serial_getc(serial_channel *chan);static Cyg_ErrNo edb7xxx_serial_set_config(serial_channel *chan, cyg_uint32 key,                                           const void *xbuf, cyg_uint32 *len);static void edb7xxx_serial_start_xmit(serial_channel *chan);static void edb7xxx_serial_stop_xmit(serial_channel *chan);static cyg_uint32 edb7xxx_serial_tx_ISR(cyg_vector_t vector, cyg_addrword_t data);static void       edb7xxx_serial_tx_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data);static cyg_uint32 edb7xxx_serial_rx_ISR(cyg_vector_t vector, cyg_addrword_t data);static void       edb7xxx_serial_rx_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data);static cyg_uint32 edb7xxx_serial_ms_ISR(cyg_vector_t vector, cyg_addrword_t data);static void       edb7xxx_serial_ms_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data);static SERIAL_FUNS(edb7xxx_serial_funs,                    edb7xxx_serial_putc,                    edb7xxx_serial_getc,                   edb7xxx_serial_set_config,                   edb7xxx_serial_start_xmit,                   edb7xxx_serial_stop_xmit    );#ifdef CYGPKG_IO_SERIAL_ARM_EDB7XXX_SERIAL1static edb7xxx_serial_info edb7xxx_serial_info1 = {UARTDR1, // Data register                                                 UBLCR1,  // Port control                                                 SYSFLG1, // Status                                                 SYSCON1, // System config                                                 CYGNUM_HAL_INTERRUPT_UTXINT1, // Tx interrupt                                                 CYGNUM_HAL_INTERRUPT_URXINT1, // Rx interrupt                                                 0 /*CYGNUM_HAL_INTERRUPT_UMSINT*/}; // Modem control#if CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL1_BUFSIZE > 0static unsigned char edb7xxx_serial_out_buf1[CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL1_BUFSIZE];static unsigned char edb7xxx_serial_in_buf1[CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL1_BUFSIZE];static SERIAL_CHANNEL_USING_INTERRUPTS(edb7xxx_serial_channel1,                                       edb7xxx_serial_funs,                                        edb7xxx_serial_info1,                                       CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL1_BAUD),                                       CYG_SERIAL_STOP_DEFAULT,                                       CYG_SERIAL_PARITY_DEFAULT,                                       CYG_SERIAL_WORD_LENGTH_DEFAULT,                                       CYG_SERIAL_FLAGS_DEFAULT,                                       &edb7xxx_serial_out_buf1[0], sizeof(edb7xxx_serial_out_buf1),                                       &edb7xxx_serial_in_buf1[0], sizeof(edb7xxx_serial_in_buf1)    );#elsestatic SERIAL_CHANNEL(edb7xxx_serial_channel1,                      edb7xxx_serial_funs,                       edb7xxx_serial_info1,                      CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL1_BAUD),                      CYG_SERIAL_STOP_DEFAULT,                      CYG_SERIAL_PARITY_DEFAULT,                      CYG_SERIAL_WORD_LENGTH_DEFAULT,                      CYG_SERIAL_FLAGS_DEFAULT    );#endifDEVTAB_ENTRY(edb7xxx_serial_io1,              CYGDAT_IO_SERIAL_ARM_EDB7XXX_SERIAL1_NAME,             0,                     // Does not depend on a lower level interface             &cyg_io_serial_devio,              edb7xxx_serial_init,              edb7xxx_serial_lookup,     // Serial driver may need initializing             &edb7xxx_serial_channel1    );#endif //  CYGPKG_IO_SERIAL_ARM_EDB7XXX_SERIAL2#ifdef CYGPKG_IO_SERIAL_ARM_EDB7XXX_SERIAL2static edb7xxx_serial_info edb7xxx_serial_info2 = {UARTDR2, // Data register                                                 UBLCR2,  // Port control                                                 SYSFLG2, // Status                                                 SYSCON2, // System config                                                 CYGNUM_HAL_INTERRUPT_UTXINT2, // Tx interrupt                                                 CYGNUM_HAL_INTERRUPT_URXINT2, // Rx interrupt                                                 0};      // No modem control#if CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL2_BUFSIZE > 0static unsigned char edb7xxx_serial_out_buf2[CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL2_BUFSIZE];static unsigned char edb7xxx_serial_in_buf2[CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL2_BUFSIZE];static SERIAL_CHANNEL_USING_INTERRUPTS(edb7xxx_serial_channel2,                                       edb7xxx_serial_funs,                                        edb7xxx_serial_info2,                                       CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL2_BAUD),                                       CYG_SERIAL_STOP_DEFAULT,                                       CYG_SERIAL_PARITY_DEFAULT,                                       CYG_SERIAL_WORD_LENGTH_DEFAULT,                                       CYG_SERIAL_FLAGS_DEFAULT,                                       &edb7xxx_serial_out_buf2[0], sizeof(edb7xxx_serial_out_buf2),                                       &edb7xxx_serial_in_buf2[0], sizeof(edb7xxx_serial_in_buf2)    );#elsestatic SERIAL_CHANNEL(edb7xxx_serial_channel2,                      edb7xxx_serial_funs,                       edb7xxx_serial_info2,                      CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_EDB7XXX_SERIAL2_BAUD),                      CYG_SERIAL_STOP_DEFAULT,                      CYG_SERIAL_PARITY_DEFAULT,                      CYG_SERIAL_WORD_LENGTH_DEFAULT,                      CYG_SERIAL_FLAGS_DEFAULT    );#endifDEVTAB_ENTRY(edb7xxx_serial_io2,              CYGDAT_IO_SERIAL_ARM_EDB7XXX_SERIAL2_NAME,             0,                     // Does not depend on a lower level interface             &cyg_io_serial_devio,              edb7xxx_serial_init,              edb7xxx_serial_lookup,     // Serial driver may need initializing             &edb7xxx_serial_channel2    );#endif //  CYGPKG_IO_SERIAL_ARM_EDB7XXX_SERIAL2// Internal function to actually configure the hardware to desired baud rate, etc.static booledb7xxx_serial_config_port(serial_channel *chan, cyg_serial_info_t *new_config, bool init){    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] | 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产污网站| 日本大胆欧美人术艺术动态| 亚洲电影你懂得| 成人自拍视频在线观看| 欧美日韩成人高清| 中文字幕日韩一区| 国精产品一区一区三区mba视频| 日本精品一级二级| 国产亚洲欧美一区在线观看| 蜜臀av亚洲一区中文字幕| av午夜精品一区二区三区| 欧美成人女星排名| 午夜av一区二区三区| 成人黄色777网| 久久久噜噜噜久久人人看 | 欧美探花视频资源| 日本一区二区三区免费乱视频| 美女视频黄a大片欧美| 欧美这里有精品| 专区另类欧美日韩| 成人性生交大合| 国产亚洲综合av| 国产精选一区二区三区| 精品国产凹凸成av人网站| 五月综合激情婷婷六月色窝| 欧美三级韩国三级日本一级| 一区二区三区 在线观看视频| 成人午夜激情在线| 国产精品乱码妇女bbbb| 国产精品77777| 欧美激情在线看| 不卡一区二区在线| 亚洲人快播电影网| 色综合天天视频在线观看| 亚洲三级小视频| 色综合一个色综合亚洲| 亚洲欧美日韩人成在线播放| 成人午夜视频福利| 日本一区二区三区四区在线视频 | 亚洲一区二区三区免费视频| 91在线观看一区二区| 亚洲视频在线一区二区| 91麻豆精品在线观看| 亚洲精品免费播放| 在线观看av一区| 天天色天天爱天天射综合| 4438x成人网最大色成网站| 日韩国产在线一| 久久亚洲二区三区| 国产成人在线视频网站| ...xxx性欧美| 在线观看视频一区二区| 青青草原综合久久大伊人精品优势| 91精品在线免费| 国产乱码字幕精品高清av| 国产精品久久久久久亚洲毛片| 91网站最新网址| 亚洲18影院在线观看| 精品美女一区二区| 99久久综合狠狠综合久久| 一区二区在线看| 精品久久一区二区| 91丨九色porny丨蝌蚪| 琪琪久久久久日韩精品| 国产日韩欧美一区二区三区乱码| 99r国产精品| 日本欧美肥老太交大片| 国产亚洲午夜高清国产拍精品| 色婷婷一区二区三区四区| 日本亚洲一区二区| 成人欧美一区二区三区黑人麻豆| 9191成人精品久久| 福利91精品一区二区三区| 一二三四区精品视频| 国产午夜精品美女毛片视频| 欧美午夜宅男影院| 福利电影一区二区三区| 视频一区二区国产| 自拍av一区二区三区| 欧美sm美女调教| 欧美日韩一区二区不卡| 豆国产96在线|亚洲| 日本中文一区二区三区| 亚洲欧美另类综合偷拍| 欧美xxxx老人做受| 欧美日韩激情一区二区| 99v久久综合狠狠综合久久| 久久99国产精品麻豆| 亚洲一区二区视频在线| 日本一区二区三区电影| 日韩欧美亚洲另类制服综合在线| 色94色欧美sute亚洲线路二 | 久久精品欧美一区二区三区麻豆| 欧美日韩国产成人在线免费| 99re这里只有精品首页| 国产黄色精品网站| 首页国产丝袜综合| 亚洲自拍偷拍欧美| 国产精品国产三级国产aⅴ原创 | 亚洲精品欧美专区| 国产目拍亚洲精品99久久精品| 欧美一级高清片在线观看| 欧美日韩一区二区三区不卡| 91麻豆123| 成人激情黄色小说| 国产福利91精品一区| 国内不卡的二区三区中文字幕 | 午夜视频久久久久久| 亚洲激情图片一区| 亚洲精品美国一| 亚洲免费大片在线观看| 亚洲人成影院在线观看| 中文字幕一区二区三| 综合亚洲深深色噜噜狠狠网站| 欧美极品aⅴ影院| 国产日韩v精品一区二区| 久久这里只精品最新地址| 欧美成人a在线| 久久老女人爱爱| 中国色在线观看另类| 国产精品久久久久婷婷二区次| 国产精品乱码一区二区三区软件| 欧美国产视频在线| 国产精品三级av| 亚洲婷婷综合色高清在线| 亚洲视频你懂的| 伊人婷婷欧美激情| 香蕉成人伊视频在线观看| 日韩不卡一二三区| 久久国产精品一区二区| 国产精品91xxx| 91污在线观看| 欧美亚一区二区| 欧美大白屁股肥臀xxxxxx| 久久这里都是精品| 国产精品久久久久久久久久免费看 | 九九久久精品视频| 国产91富婆露脸刺激对白| jizzjizzjizz欧美| 欧美男生操女生| 久久精品一二三| 一区二区三区欧美亚洲| 日本va欧美va瓶| 成人精品视频一区| 欧美在线影院一区二区| 日韩免费观看高清完整版 | 亚洲成a人v欧美综合天堂 | 视频精品一区二区| 国产很黄免费观看久久| 在线观看免费一区| 欧美电影免费观看高清完整版在| 久久久av毛片精品| 夜夜亚洲天天久久| 麻豆精品国产91久久久久久| 成人午夜视频免费看| 777午夜精品视频在线播放| 国产女人aaa级久久久级| 亚洲自拍偷拍麻豆| 国产精品99久久久久久宅男| 欧美性猛片aaaaaaa做受| 欧美va日韩va| 性做久久久久久| 成人av在线看| 欧美岛国在线观看| 亚洲精品免费视频| 国产精品18久久久久久vr| 欧美久久久久久蜜桃| 日韩理论片在线| 国产精品亚洲综合一区在线观看| 欧美色精品天天在线观看视频| 久久这里只有精品视频网| 性欧美大战久久久久久久久| 99国内精品久久| 国产视频一区二区在线| 美洲天堂一区二卡三卡四卡视频| 91久久人澡人人添人人爽欧美| 久久精品夜夜夜夜久久| 精品一区二区综合| 欧美丰满嫩嫩电影| 亚洲电影第三页| 欧洲日韩一区二区三区| 最新久久zyz资源站| 粉嫩一区二区三区性色av| 日韩欧美一区二区久久婷婷| 污片在线观看一区二区| 91成人免费网站| 亚洲自拍偷拍欧美| 91国内精品野花午夜精品| 国产精品看片你懂得| 成人免费看视频| 国产精品视频一二| 亚洲一区二区不卡免费| 日本女人一区二区三区| 欧美亚洲图片小说| 中文字幕一区二区在线观看| av一区二区不卡| 日本一区二区三区国色天香| 美腿丝袜一区二区三区| 欧美成人激情免费网| 性久久久久久久久久久久|