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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? flexcan.h

?? 56f8300E系列dsp的BOOTloader
?? H
字號(hào):
#ifndef FLEXCAN_H
#define FLEXCAN_H
/******************************************************************************
*
*       COPYRIGHT 2002 MOTOROLA, ALL RIGHTS RESERVED
*
*       The code is the property of Motorola St.Petersburg Software Development
*       and is Motorola Confidential Proprietary Information.
*
*       The copyright notice above does not evidence any
*       actual or intended publication of such source code.
*
* Functions:    
*
* Description:     
*
* Notes:        
*
******************************************************************************/

#ifdef __cplusplus
extern "C" {
#endif

#include "arch.h"
#include "can.h"



/****************************************************************************************/

/* Masks of CODE for MB Control/Status register */
#define FC_MB_NOTACTIVE     0x00
#define FC_MB_ACTIVE        0x40
#define FC_MB_FULL          0x20
#define FC_MB_OVERRUN       0x60
#define FC_MB_BUSY          0x10
#define FC_MB_NOTREADY      0x80
#define FC_MB_SEND          0xC0
#define FC_MB_REMOTEFRAME   0xA0
#define FC_MB_SEND_RF_DATA  0xE0



/* Get Rx Error Counter ( 8-bit value of Rx Error Counter  ) */
#define ioctlCAN_GET_RX_ERR_CNT(h, p)  ( h, pArchIO.CAN.ErrorCounterReg) >> 8 )

/* Get Tx Error Counter (  8-bit value of Tx Error Counter ) */
#define ioctlCAN_GET_TX_ERR_CNT(h, p)  ( h, pArchIO.CAN.ErrorCounterReg) & 0x00FF )

/* Get free running timer value ( 16-bit value of Timer ) */
#define ioctlCAN_GET_TIMER(h, p)  periphMemRead(&ArchIO.CAN.TimerReg)

/*  Shut down FlexCAN clocks */
#define ioctlCAN_GET_STOP(h, p)   periphBitSet(0x8000, &ArchIO.CAN.ConfigReg)

/* DEBUG mode */
#define ioctlCAN_SET_DEBUG(h, p)  periphBitSet(0x5000, &ArchIO.CAN.ConfigReg)

/* Enable FlexCAN clocks to be running */
#define ioctlCAN_RUN(h, p)  periphBitClear(0xF000, &ArchIO.CAN.ConfigReg )

/* Soft reset */
#define ioctlCAN_STOP(h, p)  periphBitSet(0x0200, &ArchIO.CAN.ConfigReg)

/* Listen only mode if value != 0, Normal mode if value = 0 */
#define ioctlCAN_SET_LISTEN_ONLY( h,  value ) \
    ( value ? ( periphBitSet(0x0008, &ArchIO.CAN.Control0Reg) ) \
            : ( periphBitClear(0x0008, &ArchIO.CAN.Control0Reg)  ) )

/* Power save mode if value != 0, Normal mode if value = 0 */
#define ioctlCAN_SET_POWER_SAVE( h, value ) \
    ( value ? ( periphBitSet(0x0020, &ArchIO.CAN.ConfigReg )   ) \
            : ( periphBitClear(0x0020, &ArchIO.CAN.ConfigReg ) ) )



/*** FlexCAN Masks for registers ***/

/* FCMCR0 - Module Configuration Register */
#define CAN_STOP        0x8000  /* stop FlexCAN clocks */
#define CAN_FRZ1        0x4000  /* FlexCAN response to the HALT */
#define CAN_HALT        0x1000  /* Halt FlexCAN Sclock */
#define CAN_NOT_RDY     0x0800  /* FlexCAN not ready */
#define CAN_WAKE_MASK   0x0400  /* FlexCAN wake up interrupt mask */
#define CAN_SOFT_RST    0x0200  /* Soft Reset */ 
#define CAN_FREEZ_ACK   0x0100  /* FlexCAN disabled */
#define CAN_SELF_WAKE   0x0040  /* Self Wake up */
#define CAN_PWR_SAVE    0x0020  /* Auto power save */
#define CAN_STOP_ACK    0x0010  /* FlexCAN stopped */

/* FCCTL0 -  Control Register 0 */
#define CAN_BUSOFF_MASK 0x8000  /* FlexCAN bus off interrupt mask */
#define CAN_ERROR_MASK  0x4000  /* FlexCAN error interrupt mask */
#define CAN_SAMP        0x0080  /* Sampling Mode */
#define CAN_LOOPB       0x0040  /* Loop Back Self Test mode */
#define CAN_TSYNC       0x0020  /* Timer Synchronization Mode */
#define CAN_LBUF        0x0010  /* Lowest buffer transmitted first */
#define CAN_LOM         0x0008  /* Listen Only Mode */

/* FCSTATUS - Error & Status register */
#define CAN_WAKEINT     0x0001
#define CAN_ERRINT      0x0002
#define CAN_BOFFINT     0x0004
#define CAN_ERRPASSIVE  0x0010
#define CAN_BOFF        0x0020
#define CAN_CONFINE     0x0030
#define CAN_TXRX        0x0040
#define CAN_IDLE        0x0080
#define CAN_RXWARN      0x0100
#define CAN_TXWARN      0x0200
#define CAN_STUFF_ERR   0x0400
#define CAN_FORM_ERR    0x0800
#define CAN_CRC_ERR     0x1000
#define CAN_ACK_ERR     0x2000
#define CAN_BIT0_ERR    0x4000
#define CAN_BIT1_ERR    0x8000

    


/* general masks and register */
#define CAN_SHORT_IDE_MASK  0x0008  /* mask for 29/11 address mode */
#define CAN_SHORT_SRR_MASK  0x0010  /* mask for transmit buffer mode */
#define CAN_LONG_IDE_MASK   0x00080000  /* long mask for 29/11 address mode */
#define CAN_LONG_SRR_MASK   0x00100000  /* long mask for transmit buffer mode */


typedef unsigned long CANADDRESSTYPE;     /* CAN ID address type */


typedef struct                              /* message buffer for receiving */
{
    io_sInterface *         drvInterface;
    CANADDRESSTYPE          canID;
    unsigned int            flags;          /* current status */
    void (*callback)();
}can_sBuffer;


enum FlexCANDeviceEnum
{

    sFlexCAN_size = sizeof(can_sBuffer),
    sFlexCAN_word_size = sizeof(can_sBuffer) / 2 ,
    sFlexCAN_size_callback   = sizeof( ((can_sBuffer*)0)->callback ),
    sFlexCAN_offset_canID 		= (int)&((can_sBuffer*)0)->canID,
    sFlexCAN_offset_flags 		= (int)&((can_sBuffer*)0)->flags,
    sFlexCAN_offset_callback    = (int)&((can_sBuffer*)0)->callback,
};


typedef struct               			/* flexcan initializing structure */  
{
    UWord16  TxSize;                    /* max number of Tx buffers */ 
    can_pRawCallBack pRawCallBack;      /* custom callback */
    UWord16 regFCMCR;                   /* Module Configuration Register */
    UWord16 regFCCTL0;                  /* Control Register 0 */
    UWord16 regFCCTL1;                  /* Control Register 1 */
} can_sInitialState;

typedef const struct 
{
	ssize_t  (*pRead)(handle_t hndl, void *buf, size_t);
	ssize_t  (*pWrite)(handle_t hndl, const void *buf, size_t len);
	int      (*pClose)(handle_t hndl);
	unsigned int  (*pIoctl[5])(handle_t hndl, unsigned long params );
} io_sFLEXCANInterface;


/****************** PROTOTYPES OF FUNCTIONS *********************/
void FC_Init();
void SetCANID( volatile unsigned short* pAddr, CANADDRESSTYPE canID, unsigned long addr_flags );
CANADDRESSTYPE GetCANID( unsigned long id );
int CheckCANID( CANADDRESSTYPE canID, unsigned int mode );
void FC_InitCallBack( CANADDRESSTYPE mask, CANADDRESSTYPE canID );
void CANReceiveISR(void);
unsigned int GetRxStatus( can_sBuffer* pbuf );
unsigned int GetTxStatus( can_sBuffer* pbuf );
void PrepareCANID( can_sBuffer* pbuf, unsigned int cmd );

handle_t  flexcanPreOpen(const char * pName, int oFlags, ...);
handle_t  flexcanOpen(const char * pName, int oFlags, CANADDRESSTYPE canID );
ssize_t flexcanWrite( handle_t handle,  const void *pBuffer, size_t size);
ssize_t flexcanRead( handle_t handle,  void *pBuffer, size_t size);
int flexcanClose( handle_t handle );
void CANBufferISR(void);

unsigned int ioctlCAN_RESET       (handle_t FileDesc, unsigned long params );
unsigned int ioctlCAN_SET_SLEEP   (handle_t FileDesc, unsigned long params );
unsigned int ioctlCAN_SET_WAKEUP  (handle_t FileDesc, unsigned long params );
unsigned int ioctlCAN_GET_STATUS  (handle_t FileDesc, unsigned long params );
unsigned int ioctlCANID_GET_STATUS(handle_t FileDesc, unsigned long params );
unsigned int ioctlCANID_SET_MASK  (handle_t FileDesc, unsigned long params );      



#define    CAN_BUF_READ_HANDLE   0x0100
#define    CAN_BUF_SYNCHRONOUS   0x0200
#define    CAN_BUF_2B            0x0400


#ifdef __cplusplus
}
#endif

#endif /* FLEXCAN_H */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人手机在线视频| 成人激情动漫在线观看| 国产成人夜色高潮福利影视| 欧美三级资源在线| 中文字幕在线播放不卡一区| 免费观看久久久4p| 91小视频免费观看| 久久综合色天天久久综合图片| 一区二区三区四区乱视频| 国产精品资源站在线| 欧美一区二区高清| 亚洲一区免费观看| 93久久精品日日躁夜夜躁欧美| 久久久久久99久久久精品网站| 亚洲sss视频在线视频| 91在线码无精品| 国产区在线观看成人精品| 日本欧美韩国一区三区| 欧美色精品天天在线观看视频| 亚洲特黄一级片| 成人永久免费视频| 国产亚洲欧美中文| 国模冰冰炮一区二区| 日韩一级片在线观看| 亚洲午夜视频在线观看| 在线观看欧美精品| 亚洲蜜臀av乱码久久精品 | 日韩avvvv在线播放| av电影在线观看一区| 国产欧美日产一区| 国产精品自拍在线| 国产午夜精品美女毛片视频| 精彩视频一区二区| 精品久久久久久久久久久久久久久 | 欧美丰满一区二区免费视频| 亚洲一区二区在线播放相泽| 91麻豆精品一区二区三区| 中文字幕一区二区三区在线不卡| 国产99久久久久| 国产欧美日韩不卡免费| 成人午夜激情片| 亚洲欧洲一区二区三区| av亚洲产国偷v产偷v自拍| 中文欧美字幕免费| 99视频精品免费视频| 亚洲日本va午夜在线电影| 91蝌蚪国产九色| 亚洲欧美偷拍卡通变态| 色婷婷精品大视频在线蜜桃视频| 亚洲精品美腿丝袜| 欧美三级视频在线| 日韩av网站在线观看| 日韩精品中午字幕| 国产在线精品不卡| 欧美高清在线视频| 91社区在线播放| 亚洲电影中文字幕在线观看| 91精品国产综合久久香蕉的特点| 久久精品99久久久| 国产午夜精品一区二区三区四区| 成人精品免费看| 一区二区三区视频在线观看| 69久久夜色精品国产69蝌蚪网| 久久狠狠亚洲综合| 亚洲国产精品99久久久久久久久| 99精品欧美一区二区三区综合在线| 一区二区三区四区精品在线视频| 欧美久久久久中文字幕| 国产在线一区二区综合免费视频| 国产亚洲va综合人人澡精品| caoporm超碰国产精品| 一区二区在线观看免费| 69堂国产成人免费视频| 国产一区二区视频在线| 国产精品久久久久久久久动漫| 欧洲一区二区三区在线| 美女一区二区三区| 国产精品嫩草影院av蜜臀| 欧美无人高清视频在线观看| 毛片av一区二区| 国产精品色婷婷| 欧美日韩一区二区三区四区五区| 久久99在线观看| 亚洲欧美日韩一区| 欧美日韩精品免费观看视频 | 亚洲三级在线播放| 91精品综合久久久久久| 国产福利一区二区三区视频| 一区二区三区精品视频| 精品国产青草久久久久福利| 99视频一区二区三区| 日本亚洲三级在线| 椎名由奈av一区二区三区| 欧美一级片在线| 成人不卡免费av| 奇米在线7777在线精品 | 精品欧美一区二区久久| 色天使久久综合网天天| 国内精品久久久久影院一蜜桃| 自拍偷拍国产精品| 欧美精品一区二区三区很污很色的 | 亚洲高清久久久| 国产精品麻豆欧美日韩ww| 欧美一区二区三区免费大片| av电影在线观看完整版一区二区| 免费视频一区二区| 夜夜夜精品看看| 亚洲国产精品成人综合色在线婷婷| 欧美片网站yy| 91免费版在线| 国产精品一卡二卡在线观看| 亚洲超碰精品一区二区| 欧美—级在线免费片| 欧美一区永久视频免费观看| 94色蜜桃网一区二区三区| 国产美女在线精品| 水蜜桃久久夜色精品一区的特点| 最新久久zyz资源站| 精品免费日韩av| 8x8x8国产精品| 欧洲av在线精品| 不卡在线视频中文字幕| 韩国v欧美v日本v亚洲v| 石原莉奈在线亚洲三区| 亚洲精品欧美激情| 欧美国产精品专区| 欧美精品一区二区三区蜜桃| 欧美一区二区三区在线| 在线亚洲精品福利网址导航| 99久久国产综合精品麻豆 | 亚洲一区二区三区四区在线免费观看| 久久久激情视频| 精品国产乱码久久久久久夜甘婷婷| 欧美性色欧美a在线播放| 99视频精品全部免费在线| 国产盗摄一区二区三区| 国内精品久久久久影院色 | 亚洲欧美激情插| 国产精品久久久久永久免费观看 | 亚洲免费观看在线视频| 国产精品视频一二三区 | 欧美一区二区三区免费视频| 欧美三级电影网站| 色婷婷国产精品综合在线观看| 亚洲va韩国va欧美va| 亚洲一区二区三区自拍| 一区二区三区欧美久久| 亚洲精品ww久久久久久p站 | 欧美精品一区二区精品网| 欧美一卡二卡在线| 宅男在线国产精品| 91精品国产色综合久久不卡蜜臀| 欧美日韩在线播| 欧美日韩国产一区二区三区地区| 欧美在线观看你懂的| 欧美午夜不卡视频| 欧美日韩国产综合视频在线观看| 欧美三电影在线| 欧美日韩第一区日日骚| 6080午夜不卡| 91精品国产麻豆国产自产在线 | 国产亚洲欧美一区在线观看| 久久色在线观看| 国产亚洲欧美在线| 中文字幕不卡的av| 国产精品午夜电影| 国产精品嫩草99a| 最新国产成人在线观看| 一区二区欧美视频| 亚洲国产精品一区二区www在线| 亚洲在线成人精品| 午夜久久久久久久久| 日韩国产一区二| 激情综合网最新| 国产mv日韩mv欧美| 9i在线看片成人免费| 在线视频国内自拍亚洲视频| 欧美午夜精品理论片a级按摩| 欧美日韩一区二区三区免费看| 欧美日韩激情在线| 欧美电影免费观看完整版| www精品美女久久久tv| 亚洲国产精品ⅴa在线观看| ...av二区三区久久精品| 亚洲免费观看高清完整版在线观看 | 久久精品人人做人人爽97| 国产精品国产三级国产aⅴ入口 | 亚洲欧美国产三级| 亚洲福中文字幕伊人影院| 麻豆免费看一区二区三区| 国产精品白丝jk黑袜喷水| av中文字幕一区| 欧美日韩一二三| 精品国产网站在线观看| 亚洲欧美综合在线精品| 午夜成人免费视频| 国内成+人亚洲+欧美+综合在线| 99久久综合国产精品| 欧美一区二视频| 国产精品美女www爽爽爽|