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

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

?? msmcan.c

?? CAN例程 源碼 CAN例程 源碼
?? C
字號:
/* msmcan.c - implementation of Board Interface for MSM CAN PC104 *//* Copyright 2001 Wind River Systems, Inc. *//* modification history --------------------14dec01,dnb written*//* DESCRIPTIONThis file contains the functions that provide a board-level interfaceto the MSM CAN PC104 card.*//* includes */#include <vxWorks.h>#include <errnoLib.h>#include <intLib.h>#include <iv.h>#include <sysLib.h>#include <string.h> /* for strtok_r */#include <CAN/wnCAN.h>#include <CAN/canController.h>#include <CAN/canBoard.h>#include <CAN/i82527.h>#include <CAN/private/msmcan.h>#if (CPU != SH7750)static const char deviceName[] ="MSMCAN PC104";struct MSMCAN_PC104_DeviceEntry *msmcan_pc104_DeviceArray;UINT max_msmcan_pc104_boards;/* external reference */STATUS CAN_DEVICE_establishLinks(WNCAN_DEVICE *pDev, WNCAN_BoardType brdType,                      WNCAN_ControllerType ctrlType);/************************************************************************** msmcan_pc104_isr - board-level isr*** RETURNS: N/A*   * ERRNO: N/A**/    static void msmcan_pc104_isr(    ULONG param){    struct MSMCAN_PC104_DeviceEntry *pDE;    pDE = (struct MSMCAN_PC104_DeviceEntry *)param;    if(pDE->allocated)    {        i82527ISR((ULONG)&pDE->canDevice);    }    return;}  /************************************************************************** msmcan_pc104_enableIrq - enable irq on board*** RETURNS: N/A*   * ERRNO: N/A**/static void msmcan_pc104_enableIrq(    struct WNCAN_Device *pDev){     return;}/************************************************************************** msmcan_pc104_disableIrq - disable irq on board*** RETURNS: N/A*   * ERRNO: N/A**/static void msmcan_pc104_disableIrq(    struct WNCAN_Device *pDev){     return;}/************************************************************************** msmcan_pc104_200_new - install driver for pc104 board*** RETURNS: OK or ERROR*   * ERRNO: N/A**/STATUS msmcan_pc104_new(    ULONG ioAddress,    UINT irq){    UINT          i;	UINT          brdNdx=0xff;    int           oldLevel;    STATUS        retCode;    VOIDFUNCPTR*  irqVec = 0;    struct  WNCAN_Device *pDev;    struct  MSMCAN_PC104_DeviceEntry *pDeviceEntry;    retCode = ERROR;      /* pessimistic */    pDeviceEntry = 0;    /* find a free device data structure */    for(i = 0 ; i < max_msmcan_pc104_boards; i++)    {        if(msmcan_pc104_DeviceArray[i].inUse == 0)        {            msmcan_pc104_DeviceArray[i].inUse = 1;            pDeviceEntry = &msmcan_pc104_DeviceArray[i];			brdNdx = i;            break;        }                }    if(!pDeviceEntry)    {        errnoSet(S_can_out_of_memory);        goto exit;    }    /* setup data structures */    pDev        = &pDeviceEntry->canDevice;    pDev->pCtrl = &pDeviceEntry->canController;    pDev->pBrd  =  &pDeviceEntry->canBoard;    pDev->deviceName = deviceName;    pDev->pBrd->irq = irq;    pDev->pBrd->ioAddress = ioAddress;    pDev->pBrd->xtalFreq = _16MHZ;	/* set default baud rate to 250 Kbits/sec */	pDev->pCtrl->brp = 1;       	pDev->pCtrl->sjw = 0;  	pDev->pCtrl->tseg1 = 0xc;	pDev->pCtrl->tseg2 = 0x1;	pDev->pCtrl->samples = 0;    pDev->pCtrl->chnType = g_i82527chnType;    pDev->pCtrl->chnMode = &pDeviceEntry->i82527chnMode[0];    pDev->pCtrl->numChn  = I82527_MAX_MSG_OBJ;	pDev->pCtrl->csData  = &pDeviceEntry->can82527;    if(CAN_DEVICE_establishLinks(pDev, WNCAN_MSMCAN, WNCAN_I82527) == ERROR)    {        pDev = 0;                    goto exit;    }    pDev->deviceId = brdNdx; /* index into deviceEntry array */        /* connect to isr */    oldLevel = intLock();    #if CPU_FAMILY == I80X86        irqVec = INUM_TO_IVEC(irq+0x20);    #elif CPU_FAMILY == PPC        irqVec = INUM_TO_IVEC(irq+0x40);    #else        #warning irqVec not defined     #endif    intConnect(irqVec,msmcan_pc104_isr, (ULONG)pDeviceEntry);            /* activate interrupt at board and cpu level */    #if (CPU_FAMILY == I80X86)        sysIntEnablePIC(pDev->pBrd->irq);    #elif CPU_FAMILY == PPC        intEnable(pDev->pBrd->irq+0x40);    #else        #warning interrupts cannot be enabled    #endif    intUnlock(oldLevel);        pDeviceEntry->ioAddress = ioAddress;    pDeviceEntry->irq       = irq;    retCode = OK;    exit:    return retCode;}/************************************************************************** msmcan_pc104_canInByte*** RETURNS: *   * ERRNO: **/static UCHAR msmcan_pc104_canInByte(    struct WNCAN_Device *pDev,    unsigned int offset){    sysOutByte(pDev->pBrd->ioAddress + 1,offset);    return sysInByte(pDev->pBrd->ioAddress);}/************************************************************************** msmcan_pc104_canOutByte*** RETURNS: *   * ERRNO: **/static void msmcan_pc104_canOutByte(    struct WNCAN_Device *pDev,    unsigned int offset,    UCHAR value){    sysOutByte(pDev->pBrd->ioAddress + 1,offset);    sysOutByte(pDev->pBrd->ioAddress, value);}/************************************************************************** msmcan_pc104_establishLinks - set up function pointers*** RETURNS: OK always*   * ERRNO: N/A**/STATUS msmcan_pc104_establishLinks(struct WNCAN_Device *pDev){    pDev->pBrd->onEnterISR = 0;    pDev->pBrd->onLeaveISR = 0;    pDev->pBrd->enableIrq  = msmcan_pc104_enableIrq;    pDev->pBrd->disableIrq = msmcan_pc104_disableIrq;    pDev->pBrd->canInByte = msmcan_pc104_canInByte;    pDev->pBrd->canOutByte = msmcan_pc104_canOutByte;    return OK;}/************************************************************************** msmcan_pc104_open - open a CAN device** RETURNS: pointer to a WNCAN_Device structure or 0 if error*   * ERRNO: S_can_illegal_board_no*        S_can_illegal_ctrl_no*        S_can_busy**/struct WNCAN_Device *msmcan_pc104_open(UINT brdNdx){    struct WNCAN_Device *pRet = 0;   /* pessimistic */        if((brdNdx >= max_msmcan_pc104_boards) ||       (msmcan_pc104_DeviceArray[brdNdx].inUse == 0))    {        errnoSet(S_can_illegal_board_no);    }    else if(msmcan_pc104_DeviceArray[brdNdx].allocated == 1)    {        errnoSet(S_can_busy);    }    else    {        msmcan_pc104_DeviceArray[brdNdx].allocated = 1;        pRet = &msmcan_pc104_DeviceArray[brdNdx].canDevice;    }    return pRet;}/************************************************************************** msmcan_pc104_close - close the specified CAN device** RETURNS: N/A*   * ERRNO: N/A**/void msmcan_pc104_close(struct WNCAN_Device *pDev){    UINT   brdNdx;        if (pDev != 0)    {		brdNdx = pDev->deviceId;        msmcan_pc104_DeviceArray[brdNdx].allocated = 0;    }    return;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品一区二区| 五月天激情综合网| 久久综合九色综合欧美就去吻| 欧美最新大片在线看| 91成人免费在线| 99国产精品国产精品毛片| 成a人片亚洲日本久久| 国产精品一二三区在线| 粉嫩13p一区二区三区| 国产91精品露脸国语对白| 成人精品一区二区三区四区| 国产99精品国产| 不卡的av网站| 99精品国产91久久久久久| 色婷婷av一区二区三区大白胸| 91视频观看视频| 欧美综合亚洲图片综合区| 欧美日韩五月天| 日韩视频中午一区| 国产欧美日韩不卡免费| 国产精品久久久一区麻豆最新章节| 日韩一区日韩二区| 亚洲永久免费av| 麻豆91小视频| 成人18精品视频| 欧美色综合网站| 日韩一级高清毛片| 国产日韩欧美激情| 亚洲精品久久久久久国产精华液| 午夜精品一区二区三区免费视频| 蜜桃av噜噜一区| 不卡的av中国片| 777亚洲妇女| 中文字幕乱码亚洲精品一区| 亚洲麻豆国产自偷在线| 免费成人美女在线观看.| 国产福利精品一区| 欧美日韩激情一区二区三区| 久久久久久久av麻豆果冻| 亚洲日本青草视频在线怡红院| 肉肉av福利一精品导航| 日本aⅴ免费视频一区二区三区| 国产精品综合二区| 欧美日韩一区二区在线观看视频| 欧美大胆一级视频| 亚洲日本护士毛茸茸| 久久精品国产一区二区三 | 欧美激情综合在线| 一区2区3区在线看| 国产成人精品在线看| 在线亚洲人成电影网站色www| 欧美成人性福生活免费看| 一区二区在线看| 久久超级碰视频| 欧美丝袜丝交足nylons| 精品久久久影院| 亚洲成人动漫av| 91网站黄www| 国产精品人成在线观看免费| 热久久国产精品| 欧美日本在线播放| 亚洲一区在线观看免费| 成人夜色视频网站在线观看| 日韩限制级电影在线观看| 一区二区三区精品| 99综合电影在线视频| 久久久精品tv| 美女视频黄 久久| 欧美日韩亚洲综合在线| 亚洲激情图片一区| 91影视在线播放| 国产精品丝袜一区| 成人黄色电影在线| 中文字幕免费观看一区| 国产一区二区导航在线播放| 精品国产乱码久久久久久老虎| 午夜国产不卡在线观看视频| 色婷婷av久久久久久久| 亚洲黄色在线视频| 99精品在线观看视频| 亚洲欧美综合色| 91麻豆swag| 一区二区三区不卡视频| 在线免费不卡电影| 亚洲精选在线视频| 欧美制服丝袜第一页| 亚洲国产美女搞黄色| 欧美亚男人的天堂| 日韩中文字幕av电影| 日韩欧美第一区| 国产精品88av| 国产精品久久久久一区二区三区共| 成人免费观看av| 亚洲精品少妇30p| 欧美日韩在线播放一区| 婷婷成人综合网| 欧美tk—视频vk| 成人动漫视频在线| 一区二区欧美国产| 欧美一卡二卡在线| 成人永久看片免费视频天堂| 亚洲欧美偷拍卡通变态| 欧美日本一区二区三区四区 | 日韩久久久久久| 麻豆成人免费电影| 欧美激情在线一区二区三区| 色综合久久久久| 午夜精品在线看| 精品乱人伦小说| 成人avav在线| 日韩av一区二区三区四区| 国产无一区二区| 欧美网站一区二区| 国产真实精品久久二三区| 亚洲人成7777| 欧美成人精精品一区二区频| 99视频精品在线| 久久精品国产一区二区| 一区二区三区在线视频免费观看| 日韩欧美一区二区在线视频| jizzjizzjizz欧美| 久久精品国产99国产精品| 亚洲精品视频一区| 久久久亚洲综合| 欧美一区二区三区视频免费播放 | 亚洲一区影音先锋| 国产亚洲精品7777| 欧美一区二区精品| 欧美在线免费播放| 成人性生交大片免费看视频在线| 日本中文一区二区三区| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲精品成人精品456| 日韩免费电影一区| 在线看一区二区| 99r国产精品| 国产乱理伦片在线观看夜一区| 亚洲福利一区二区| 亚洲麻豆国产自偷在线| 国产精品污网站| 久久综合久久鬼色| 精品国免费一区二区三区| 51午夜精品国产| 欧美在线一二三| 色综合色综合色综合| 成人精品免费看| 国产精品一级在线| 国产一区二区在线观看免费 | 欧美一级理论片| 欧美日韩一区二区三区在线| 一本色道久久综合精品竹菊| www.综合网.com| 不卡av免费在线观看| 99精品国产91久久久久久| eeuss影院一区二区三区| 从欧美一区二区三区| 国产精品白丝jk白祙喷水网站| 国产一区二区三区美女| 精品系列免费在线观看| 美国毛片一区二区三区| 国产在线精品一区二区三区不卡| 国产一区二区在线看| 国产传媒一区在线| 不卡高清视频专区| 91免费视频观看| 欧美伊人久久久久久午夜久久久久| 色8久久人人97超碰香蕉987| 欧美视频自拍偷拍| 91精品国产91久久久久久最新毛片| 欧美一区二区国产| 国产亚洲综合av| 成人欧美一区二区三区白人| 一区二区三区在线观看国产| 午夜免费欧美电影| 久久99国产精品久久99果冻传媒| 久久99国产乱子伦精品免费| 成人理论电影网| 欧美手机在线视频| 精品电影一区二区| 国产精品另类一区| 亚洲大片免费看| 激情综合五月婷婷| 99精品在线观看视频| 欧美一区二区三区白人| 国产女同性恋一区二区| 一区二区三区中文在线观看| 日韩精品视频网站| 成人动漫精品一区二区| 欧美日韩一区 二区 三区 久久精品 | 国产乱码一区二区三区| 91免费版在线| 精品免费国产一区二区三区四区| 国产精品欧美久久久久无广告| 亚洲午夜精品17c| 粉嫩高潮美女一区二区三区| 欧美日韩精品一区二区三区蜜桃| xnxx国产精品| 亚洲18影院在线观看| av在线播放成人| 欧美大片在线观看一区|