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

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

?? msmcan.c

?? CANOPen通信的一些源碼
?? 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精品中文字幕一区二区三区| 成人av电影在线| 欧美区视频在线观看| 亚洲综合一二区| 欧美日韩久久一区| 日本在线不卡一区| 久久嫩草精品久久久久| 成人av片在线观看| 一区二区三区国产精品| 欧美人与性动xxxx| 激情久久五月天| 国产精品久久久久久久裸模| 色av成人天堂桃色av| 日韩在线一区二区三区| 久久女同性恋中文字幕| 91免费在线视频观看| 日韩和欧美的一区| 久久精品日韩一区二区三区| 色天天综合久久久久综合片| 日韩电影在线观看电影| 欧美激情一区二区三区| 在线观看国产日韩| 美腿丝袜亚洲三区| 亚洲欧洲精品一区二区三区不卡| 欧美亚洲免费在线一区| 国产一区二区三区在线看麻豆| 国产精品二三区| 5858s免费视频成人| 成人黄色免费短视频| 亚洲成av人影院| 国产日韩精品视频一区| 欧美日韩久久久一区| 国产99久久久国产精品潘金网站| 一区二区三区四区在线免费观看| 欧美成人video| 色老汉一区二区三区| 国产一本一道久久香蕉| 亚洲狠狠爱一区二区三区| 久久精品视频一区| 欧美放荡的少妇| 97久久久精品综合88久久| 经典三级在线一区| 亚洲bt欧美bt精品| 亚洲欧美影音先锋| 久久亚洲一级片| 911国产精品| 在线看国产日韩| 成人动漫av在线| 国产一区91精品张津瑜| 三级一区在线视频先锋| 亚洲精品五月天| 日本一区二区成人| 精品国产91洋老外米糕| 欧美日韩精品福利| 色先锋aa成人| voyeur盗摄精品| 国产成人综合在线播放| 老司机精品视频一区二区三区| 亚洲尤物在线视频观看| 亚洲天堂2014| 中文字幕在线不卡一区二区三区| 精品国产自在久精品国产| 91精品国产综合久久福利| 欧美午夜电影一区| 在线观看一区不卡| 91蝌蚪porny| 97久久人人超碰| 91蜜桃在线免费视频| 成人国产精品免费网站| 成人在线视频一区| 成人免费av在线| 成人福利在线看| av欧美精品.com| av爱爱亚洲一区| 91女人视频在线观看| 色婷婷久久久综合中文字幕| 99精品热视频| 91激情在线视频| 欧美在线观看18| 欧美日韩精品一区二区在线播放| 欧美天天综合网| 欧美精品第1页| 日韩欧美你懂的| 久久夜色精品国产噜噜av| 久久久久久久久久久久久久久99| 久久免费的精品国产v∧| 国产午夜精品一区二区三区四区 | 亚洲成人一区二区| 亚洲一区二区在线视频| 日韩精品三区四区| 另类中文字幕网| 国产成人免费视频网站高清观看视频| 国产麻豆一精品一av一免费 | 精品在线免费观看| 国产精品一区二区在线观看网站 | 日韩视频免费观看高清完整版在线观看| 91精品国产综合久久蜜臀| 日韩一二在线观看| 国产亚洲欧美一级| 亚洲精品你懂的| 日韩制服丝袜av| 国产成人啪免费观看软件| 99久久99久久久精品齐齐| 欧美撒尿777hd撒尿| 欧美成人艳星乳罩| 最新中文字幕一区二区三区| 亚洲成人一二三| 国产一区二区三区| 色成人在线视频| 日韩美女一区二区三区四区| 欧美国产1区2区| 亚洲成人av福利| 国产精品一卡二| 欧美在线视频日韩| 欧美成人乱码一区二区三区| 国产精品的网站| 日本成人在线电影网| 成人av网址在线观看| 777久久久精品| 亚洲欧洲精品一区二区三区| 日本女优在线视频一区二区| 99热精品国产| 日韩欧美一卡二卡| 一区二区三区视频在线看| 国产一区二区视频在线播放| 欧美午夜精品一区二区蜜桃| 久久精品日韩一区二区三区| 亚洲高清免费观看| 国产成人午夜电影网| 日韩欧美色综合| 亚洲综合成人网| 风间由美中文字幕在线看视频国产欧美| 在线免费精品视频| 久久久综合网站| 日本不卡不码高清免费观看| 色综合中文字幕| 欧美国产综合色视频| 日本sm残虐另类| 欧美三级日韩三级| 亚洲精品视频在线看| 国产99久久久久久免费看农村| 欧美一区二区久久| 亚洲乱码国产乱码精品精小说| 国产成人亚洲精品青草天美| 日韩精品自拍偷拍| 日本91福利区| 欧美狂野另类xxxxoooo| 一区二区三区日韩在线观看| 成人h版在线观看| 国产欧美精品一区aⅴ影院| 麻豆久久一区二区| 3atv一区二区三区| 一区二区欧美在线观看| 91影视在线播放| 国产精品久久久久桃色tv| 丰满岳乱妇一区二区三区| 精品国产乱码久久久久久闺蜜| 免费成人美女在线观看.| 7777女厕盗摄久久久| 亚洲精品高清在线| 色噜噜狠狠成人中文综合| 亚洲欧美日韩在线不卡| 91网站最新地址| 亚洲情趣在线观看| 92国产精品观看| 亚洲精品亚洲人成人网| 91福利在线免费观看| 一区二区三区日韩欧美| 欧美日韩综合不卡| 三级影片在线观看欧美日韩一区二区 | 国产精品麻豆久久久| 成人av资源网站| 亚洲欧美日韩综合aⅴ视频| 91麻豆国产精品久久| 一区二区在线观看免费视频播放| 91麻豆福利精品推荐| 亚洲v中文字幕| 日韩一区二区三区四区| 精品在线观看免费| 2023国产精品自拍| 成人黄色免费短视频| 亚洲欧美日韩在线播放| 欧美少妇一区二区| 美女网站色91| 国产日本欧洲亚洲| 99精品国产99久久久久久白柏| 一区二区三区四区高清精品免费观看| 欧美视频一区二区三区在线观看| 日韩**一区毛片| 国产欧美日韩卡一| 色综合久久综合网97色综合| 亚洲va欧美va国产va天堂影院| 日韩亚洲欧美中文三级| 国产 欧美在线| 一二三区精品福利视频| 日韩欧美国产系列| 99热这里都是精品| 日本不卡视频一二三区| 欧美激情一区二区三区| 欧美色网站导航|