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

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

?? ser_esci.c

?? 開放源碼實時操作系統源碼.
?? C
?? 第 1 頁 / 共 2 頁
字號:
//==========================================================================
//
//      ser_esci.c
//
//      Freescale sSCI Serial I/O Interface Module (interrupt driven)
//
//==========================================================================
//####ECOSGPLCOPYRIGHTBEGIN####
// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
// Copyright (C) 2996 eCosCentric Ltd
//
// eCos is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2 or (at your option) any later version.
//
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
// for more details.
//
// You should have received a copy of the GNU General Public License along
// with eCos; if not, write to the Free Software Foundation, Inc.,
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
//
// As a special exception, if other files instantiate templates or use macros
// or inline functions from this file, or you compile this file and link it
// with other works to produce a work based on this file, this file does not
// by itself cause the resulting work to be covered by the GNU General Public
// License. However the source code for this file must still be made available
// in accordance with section (3) of the GNU General Public License.
//
// This exception does not invalidate any other reasons why a work based on
// this file might be covered by the GNU General Public License.
// -------------------------------------------
//####ECOSGPLCOPYRIGHTEND####
//==========================================================================
//#####DESCRIPTIONBEGIN####
//
// Author(s):   Ilija Koco <ilijak@siva.com.mk>
// Contributors:
// Date:        2006-04-20
// Purpose:     eSCI Serial I/O module (interrupt driven version)
// Description: 
//
//   
//####DESCRIPTIONEND####
//==========================================================================
#include <pkgconf/io_serial.h>
#include <pkgconf/io.h>

#include <cyg/io/io.h>
#include <cyg/hal/hal_intr.h>
#include <cyg/hal/hal_arbiter.h>
#include <cyg/hal/var_io.h>
#include <cyg/io/devtab.h>
#include <cyg/infra/diag.h>
#include <cyg/io/serial.h>
#include <cyg/devs/ser_esci.h>

// Only build this driver for if ESCI is needed.
#ifdef CYGPKG_IO_SERIAL_FREESCALE_ESCI

typedef struct esci_serial_info {
    CYG_ADDRWORD   esci_base;          // Base address of the esci port
    CYG_WORD       interrupt_num;      // INTC interrupt vector
    cyg_priority_t interrupt_priority; // INTC interupt priority
    cyg_interrupt  interrupt_obj;      // Interrupt object
    cyg_handle_t   interrupt_handle;   // Interrupt handle
} esci_serial_info;

static bool esci_serial_init(struct cyg_devtab_entry * tab);
static bool esci_serial_putc(serial_channel * chan, unsigned char c);
static Cyg_ErrNo esci_serial_lookup(struct cyg_devtab_entry ** tab, 
                                    struct cyg_devtab_entry * sub_tab, 
                                    const char * name);
static unsigned char esci_serial_getc(serial_channel *chan);
static Cyg_ErrNo esci_serial_set_config(serial_channel *chan, cyg_uint32 key, 
                                        const void *xbuf, cyg_uint32 *len);
static void esci_serial_start_xmit(serial_channel *chan);
static void esci_serial_stop_xmit(serial_channel *chan);

// Interrupt servers
static cyg_uint32 esci_serial_ISR(cyg_vector_t vector, cyg_addrword_t data);
static void       esci_serial_DSR(cyg_vector_t vector, cyg_ucount32 count, 
                                  cyg_addrword_t data);

static SERIAL_FUNS(esci_serial_funs, 
                   esci_serial_putc, 
                   esci_serial_getc,
                   esci_serial_set_config,
                   esci_serial_start_xmit,
                   esci_serial_stop_xmit);

// Available baud rates
static unsigned short select_baud[] = {
    0,                            // Unused
    0,                            // 50     bps unsupported
    0,                            // 75     bps unsupported
    0,                            // 110    bps unsupported
    0,                            // 134_5  bps unsupported
    0,                            // 150    bps unsupported
    0,                            // 200    bps unsupported
    FREESCALE_ESCI_BAUD(300),     // 300    bps
    FREESCALE_ESCI_BAUD(600),     // 600    bps
    FREESCALE_ESCI_BAUD(1200),    // 1200   bps
    0,                            // 1800   bps unsupported
    FREESCALE_ESCI_BAUD(2400),    // 2400   bps
    0,                            // 3600   bps unsupported
    FREESCALE_ESCI_BAUD(4800),    // 4800   bps
    0,                            // 7200   bps unsupported
    FREESCALE_ESCI_BAUD(9600),    // 9600   bps
    FREESCALE_ESCI_BAUD(14400),   // 14400  bps
    FREESCALE_ESCI_BAUD(19200),   // 19200  bps
    FREESCALE_ESCI_BAUD(38400),   // 38400  bps
    FREESCALE_ESCI_BAUD(57600),   // 57600  bps
    FREESCALE_ESCI_BAUD(115200),  // 115200 bps
    0                             // 230400 bps unsupported
};

#if defined CYGPKG_IO_SERIAL_FREESCALE_ESCI_A
static esci_serial_info esci_serial_info0 = {
    esci_base          : CYGADDR_IO_SERIAL_FREESCALE_ESCI_A_BASE,
    interrupt_num      : CYGNUM_IO_SERIAL_FREESCALE_ESCI_A_INT_VECTOR,
    interrupt_priority : CYGNUM_IO_SERIAL_FREESCALE_ESCI_A_INT_PRIORITY
};
#if CYGNUM_IO_SERIAL_FREESCALE_ESCI_A_BUFSIZE > 0
static unsigned char 
    esci_serial_out_buf0[CYGNUM_IO_SERIAL_FREESCALE_ESCI_A_BUFSIZE]; 
static unsigned char 
    esci_serial_in_buf0[CYGNUM_IO_SERIAL_FREESCALE_ESCI_A_BUFSIZE];

static 
SERIAL_CHANNEL_USING_INTERRUPTS(
                                esci_serial_channel0,
                                esci_serial_funs,
                                esci_serial_info0,
                                CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_FREESCALE_ESCI_A_BAUD),
                                CYG_SERIAL_STOP_DEFAULT,
                                CYG_SERIAL_PARITY_DEFAULT,
                                CYG_SERIAL_WORD_LENGTH_DEFAULT,
                                CYG_SERIAL_FLAGS_DEFAULT,
                                &esci_serial_out_buf0[0],
                                sizeof(esci_serial_out_buf0),
                                &esci_serial_in_buf0[0],
                                sizeof(esci_serial_in_buf0));
#else 
static 
SERIAL_CHANNEL(esci_serial_channel0,
               esci_serial_funs,
               esci_serial_info0,
               CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_FREESCALE_ESCI_A_BAUD),
               CYG_SERIAL_STOP_DEFAULT,
               CYG_SERIAL_PARITY_DEFAULT,
               CYG_SERIAL_WORD_LENGTH_DEFAULT,
               CYG_SERIAL_FLAGS_DEFAULT);
#endif
DEVTAB_ENTRY(esci_serial_io0,
             CYGDAT_IO_SERIAL_FREESCALE_ESCI_A_NAME,
             0, // does not depend on a lower level device driver
             &cyg_io_serial_devio,
             esci_serial_init,
             esci_serial_lookup,
             &esci_serial_channel0);
#endif // ifdef CYGPKG_IO_SERIAL_FREESCALE_ESCI_A

#if defined CYGPKG_IO_SERIAL_FREESCALE_ESCI_B
static esci_serial_info esci_serial_info1 = {
    esci_base          : CYGADDR_IO_SERIAL_FREESCALE_ESCI_B_BASE,
    interrupt_num      : CYGNUM_IO_SERIAL_FREESCALE_ESCI_B_INT_VECTOR,
    interrupt_priority : CYGNUM_IO_SERIAL_FREESCALE_ESCI_B_INT_PRIORITY
};
#if CYGNUM_IO_SERIAL_FREESCALE_ESCI_B_BUFSIZE > 0
static unsigned char 
    esci_serial_out_buf1[CYGNUM_IO_SERIAL_FREESCALE_ESCI_B_BUFSIZE]; 
static unsigned char 
    esci_serial_in_buf1[CYGNUM_IO_SERIAL_FREESCALE_ESCI_B_BUFSIZE];

static 
SERIAL_CHANNEL_USING_INTERRUPTS(esci_serial_channel1,
                                esci_serial_funs,
                                esci_serial_info1,
                                CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_FREESCALE_ESCI_B_BAUD),
                                CYG_SERIAL_STOP_DEFAULT,
                                CYG_SERIAL_PARITY_DEFAULT,
                                CYG_SERIAL_WORD_LENGTH_DEFAULT,
                                CYG_SERIAL_FLAGS_DEFAULT,
                                &esci_serial_out_buf1[0],
                                sizeof(esci_serial_out_buf1),
                                &esci_serial_in_buf1[0],
                                sizeof(esci_serial_in_buf1));
#else 
static 
SERIAL_CHANNEL(esci_serial_channel1,
               esci_serial_funs,
               esci_serial_info1,
               CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_FREESCALE_ESCI_B_BAUD),
               CYG_SERIAL_STOP_DEFAULT,
               CYG_SERIAL_PARITY_DEFAULT,
               CYG_SERIAL_WORD_LENGTH_DEFAULT,
               CYG_SERIAL_FLAGS_DEFAULT);
#endif
DEVTAB_ENTRY(esci_serial_io1,
             CYGDAT_IO_SERIAL_FREESCALE_ESCI_B_NAME,
             0, // does not depend on a lower level device driver
             &cyg_io_serial_devio,
             esci_serial_init,
             esci_serial_lookup,
             &esci_serial_channel1);
#endif // ifdef CYGPKG_IO_SERIAL_FREESCALE_ESCI_B

#if defined CYGPKG_IO_SERIAL_FREESCALE_ESCI_C
static esci_serial_info esci_serial_info2 = {
    esci_base          : CYGADDR_IO_SERIAL_FREESCALE_ESCI_C_BASE,
    interrupt_num      : CYGNUM_IO_SERIAL_FREESCALE_ESCI_C_INT_VECTOR,
    interrupt_priority : CYGNUM_IO_SERIAL_FREESCALE_ESCI_C_INT_PRIORITY
};
#if CYGNUM_IO_SERIAL_FREESCALE_ESCI_C_BUFSIZE > 0
static unsigned char 
    esci_serial_out_buf2[CYGNUM_IO_SERIAL_FREESCALE_ESCI_C_BUFSIZE]; 
static unsigned char 
    esci_serial_in_buf2[CYGNUM_IO_SERIAL_FREESCALE_ESCI_C_BUFSIZE];

static 
SERIAL_CHANNEL_USING_INTERRUPTS(esci_serial_channel2,
                                esci_serial_funs,
                                esci_serial_info2,
                                CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_FREESCALE_ESCI_C_BAUD),
                                CYG_SERIAL_STOP_DEFAULT,
                                CYG_SERIAL_PARITY_DEFAULT,
                                CYG_SERIAL_WORD_LENGTH_DEFAULT,
                                CYG_SERIAL_FLAGS_DEFAULT,
                                &esci_serial_out_buf2[0],
                                sizeof(esci_serial_out_buf2),
                                &esci_serial_in_buf2[0],
                                sizeof(esci_serial_in_buf2));
#else 
static 
SERIAL_CHANNEL(esci_serial_channel2,
               esci_serial_funs,
               esci_serial_info2,
               CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_FREESCALE_ESCI_C_BAUD),
               CYG_SERIAL_STOP_DEFAULT,
               CYG_SERIAL_PARITY_DEFAULT,
               CYG_SERIAL_WORD_LENGTH_DEFAULT,
               CYG_SERIAL_FLAGS_DEFAULT);
#endif
DEVTAB_ENTRY(esci_serial_io2,
             CYGDAT_IO_SERIAL_FREESCALE_ESCI_C_NAME,
             0, // does not depend on a lower level device driver
             &cyg_io_serial_devio,
             esci_serial_init,
             esci_serial_lookup,
             &esci_serial_channel2);
#endif // ifdef CYGPKG_IO_SERIAL_FREESCALE_ESCI_C


#if defined CYGPKG_IO_SERIAL_FREESCALE_ESCI_D
static esci_serial_info esci_serial_info3 = {
    esci_base          : CYGADDR_IO_SERIAL_FREESCALE_ESCI_D_BASE,
    interrupt_num      : CYGNUM_IO_SERIAL_FREESCALE_ESCI_D_INT_VECTOR,
    interrupt_priority : CYGNUM_IO_SERIAL_FREESCALE_ESCI_D_INT_PRIORITY
};
#if CYGNUM_IO_SERIAL_FREESCALE_ESCI_D_BUFSIZE > 0
static unsigned char 
    esci_serial_out_buf3[CYGNUM_IO_SERIAL_FREESCALE_ESCI_D_BUFSIZE]; 
static unsigned char 
    esci_serial_in_buf3[CYGNUM_IO_SERIAL_FREESCALE_ESCI_D_BUFSIZE];

static 
SERIAL_CHANNEL_USING_INTERRUPTS(esci_serial_channel3,
                                esci_serial_funs,
                                esci_serial_info3,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美自拍丝袜亚洲| 无码av免费一区二区三区试看| 久久99久久精品| 日韩一区二区影院| 激情综合色综合久久| 精品国产一区二区精华| 国产美女精品人人做人人爽 | 亚洲另类一区二区| 欧美自拍偷拍一区| 蜜臀久久久久久久| 国产午夜精品久久久久久免费视| 成人高清视频在线观看| 亚洲国产综合在线| 日韩一区二区在线免费观看| 国产成+人+日韩+欧美+亚洲| 亚洲乱码国产乱码精品精小说| 欧美三片在线视频观看| 国内一区二区在线| 亚洲精品日日夜夜| 日韩女优电影在线观看| 国产99久久久国产精品潘金 | 国产精品一区二区久激情瑜伽| 欧美国产精品v| 在线精品视频免费播放| 麻豆91免费看| 亚洲欧美一区二区三区久本道91| 日韩一区二区三区视频| 北条麻妃国产九九精品视频| 亚洲成人免费视频| 国产人久久人人人人爽| 欧美日韩午夜精品| youjizz久久| 蜜臀a∨国产成人精品| 中文在线免费一区三区高中清不卡| 欧美日韩国产综合一区二区三区 | 日本欧美在线观看| 中文字幕一区二区三区四区不卡 | 国产亚洲视频系列| 欧美精品一二三| 成人av在线资源| 老司机午夜精品| 日韩影院在线观看| 亚洲欧美经典视频| 久久这里只精品最新地址| 欧美日韩激情在线| 9色porny自拍视频一区二区| 久久国产夜色精品鲁鲁99| 亚洲精品精品亚洲| 国产精品色眯眯| 精品欧美黑人一区二区三区| 在线观看91视频| 成年人国产精品| 国产一区二区三区在线观看精品| 天天综合日日夜夜精品| 日韩伦理免费电影| 国产日韩欧美激情| 欧美不卡在线视频| 777奇米四色成人影色区| 一本一道久久a久久精品综合蜜臀| 国产精品原创巨作av| 美女久久久精品| 香蕉影视欧美成人| 一区二区三区日韩欧美精品| **欧美大码日韩| 国产欧美日韩不卡| 国产亚洲成av人在线观看导航 | 久久综合资源网| 日韩欧美在线影院| 91精品国产色综合久久| 欧美三级三级三级| 欧美日韩精品综合在线| 欧美亚洲综合一区| 在线观看日韩国产| 欧美日韩另类一区| 精品视频在线免费看| 在线观看亚洲专区| 欧美亚洲综合久久| 欧美在线你懂得| 欧美绝品在线观看成人午夜影视| 欧美伊人久久大香线蕉综合69| 国产嫩草影院久久久久| 成人永久看片免费视频天堂| 极品销魂美女一区二区三区| 久久99精品久久久久久动态图| 理论电影国产精品| 狠狠色狠狠色综合日日91app| 国产自产v一区二区三区c| 精品一区二区免费在线观看| 国产一区美女在线| 国产成a人亚洲精| 91免费观看在线| 欧美在线免费视屏| 日韩欧美精品三级| 久久久久久久国产精品影院| 国产日本欧美一区二区| 国产午夜精品福利| 国产精品12区| 丝袜国产日韩另类美女| 人人爽香蕉精品| 国产成人三级在线观看| av在线播放一区二区三区| 色成年激情久久综合| 91精品国产美女浴室洗澡无遮挡| 欧美大片在线观看一区| 亚洲va欧美va人人爽| 欧美国产亚洲另类动漫| 成人av在线资源| 精品婷婷伊人一区三区三| 精品国产区一区| 国产精品嫩草影院av蜜臀| 亚洲成人黄色小说| 国模少妇一区二区三区| 99在线视频精品| 欧美一区二区视频网站| 国产欧美视频一区二区| 亚洲精品日韩综合观看成人91| 日韩中文字幕亚洲一区二区va在线| 裸体健美xxxx欧美裸体表演| av激情亚洲男人天堂| 91精品国产91久久久久久最新毛片| 久久久国产精华| 视频一区二区三区在线| 丁香另类激情小说| 日韩欧美国产三级| 亚洲欧美另类久久久精品| 国产在线国偷精品产拍免费yy| 91浏览器入口在线观看| 2023国产精品| 午夜精品久久一牛影视| 成人h动漫精品一区二| 欧美日韩电影一区| 亚洲免费看黄网站| 激情av综合网| 欧美日韩精品二区第二页| 国产精品国产三级国产aⅴ入口 | 久久91精品久久久久久秒播| 一本一本大道香蕉久在线精品| 久久久久亚洲蜜桃| 视频一区二区三区入口| 色久综合一二码| 亚洲国产精品传媒在线观看| 蜜桃av噜噜一区二区三区小说| 色婷婷精品久久二区二区蜜臀av| 精品国产免费久久| 日韩精品视频网站| 欧美在线高清视频| 亚洲欧美区自拍先锋| 国产·精品毛片| 久久久影视传媒| 美女视频网站黄色亚洲| 欧美久久免费观看| 亚洲自拍欧美精品| 91丨porny丨户外露出| 日本一区二区三区dvd视频在线| 九九视频精品免费| 日韩午夜三级在线| 日韩电影在线观看一区| 91丝袜美腿高跟国产极品老师| 中文字幕欧美国产| 国产成人久久精品77777最新版本| 日韩美一区二区三区| 日本人妖一区二区| 日韩一区二区精品葵司在线| 五月综合激情日本mⅴ| 91福利资源站| 亚洲午夜精品网| 欧美日韩国产高清一区| 肉丝袜脚交视频一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲成人av一区二区三区| 欧美揉bbbbb揉bbbbb| 丝袜美腿亚洲综合| 精品伦理精品一区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 精品在线免费观看| 精品国产伦一区二区三区免费 | 亚洲h动漫在线| 欧美理论片在线| 免费在线成人网| 国产清纯美女被跳蛋高潮一区二区久久w | 久久精品99久久久| 久久理论电影网| 成人综合婷婷国产精品久久 | 久久久久久亚洲综合| 国产精品原创巨作av| 国产精品久久久久久户外露出| 色综合天天综合网国产成人综合天| 日韩久久一区二区| 欧美猛男男办公室激情| 轻轻草成人在线| 国产日韩亚洲欧美综合| 99久久精品国产毛片| 亚洲成a人片在线不卡一二三区| 欧美高清视频一二三区| 国产真实乱偷精品视频免| 国产精品久久一级| 欧美视频一二三区| 国产综合色精品一区二区三区| 亚洲日穴在线视频| 91精品国产91久久综合桃花|