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

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

?? intel82527_can.h

?? intel 82527控制器描述can2.0協議的內容
?? H
字號:
#ifndef __INTEL82527_CAN_H__
#define __INTEL82527_CAN_H__

#include "linux/types.h"

/* The following statements will be for the can bus and intel 82527 */
typedef struct canmessage{
  uint8_t	msgCtrl0Reg;	
	uint8_t	msgCtrl1Reg;
  uint8_t	idReg[4];
	uint8_t	messageConfigReg;
	uint8_t	dataReg[8];         /* data bytes   */
} canmessageobj_t __attribute__ ((packed));

typedef struct {
  uint32_t id;
  int type;                   /* standard or extended frame */
  int rtr;                    /* remote transmission        */
  int len;                    /* data length 0..8           */
  unsigned char d[8];         /* data bytes                 */
  struct timeval timestamp;   /* timestamp                  */
} canmsg;

#define STANDARD 0
#define EXTENDED 1

#define DATAFRAME 0
#define REMOTEFRAME 1

#define ACTIVE	0
#define PASSIVE	1
#define BUSOFF 2

#define BUFFER_SIZE 150
#define MSG_LENGTH  sizeof(canmsg)

typedef struct CAN_Dev {
  int baud_rate;		     	/* baud rate of the bus            */
  int frame_mode;		     	/* normal (0) or extended (1) mode */
  int active_passive_status;   	/* current state of the controller */
  int isopen;                   	/* user application counter        */
  
  int rb_full_counter;         	/* read_buffer full counter (protection against too many interrupts FIXME wtf? */
  
  canmsg read_buf[BUFFER_SIZE];
  int nm_rb;			/* number of messages in the read buffer */
  int rp_rb;			/* read position of the read buffer	 */	
  int wp_rb;			/* write position of the read buffer	 */
  
  canmsg write_buf[BUFFER_SIZE];
  int nm_wb;                     	/* number of messages in the write buffer */
  int wp_wb;                     	/* write position of the write buffer	  */
  int rp_wb;                     	/* read position of the write buffer	  */

  unsigned char *reg_base;
}CAN_Dev;

#define CAN_TIM0_10K		  49
#define CAN_TIM1_10K		0x1c
#define CAN_TIM0_20K		  24	
#define CAN_TIM1_20K		0x1c
#define CAN_TIM0_40K		0x89	/* Old Bit Timing Standard of port */
#define CAN_TIM1_40K		0xEB	/* Old Bit Timing Standard of port */
#define CAN_TIM0_50K		   9
#define CAN_TIM1_50K		0x1c
#define CAN_TIM0_100K      4    /* sp 87%, 16 abtastungen, sjw 1 */
#define CAN_TIM1_100K   0x1c
#define CAN_TIM0_125K		   3
#define CAN_TIM1_125K		0x1c
#define CAN_TIM0_250K		   1
#define CAN_TIM1_250K		0x1c
#define CAN_TIM0_500K		   0
#define CAN_TIM1_500K		0x1c
#define CAN_TIM0_800K		   0
#define CAN_TIM1_800K		0x16
#define CAN_TIM0_1000K		 0
#define CAN_TIM1_1000K	0x14

uint8_t iCanTiming[10][2]={
	{CAN_TIM0_10K,  CAN_TIM1_10K},
	{CAN_TIM0_20K,  CAN_TIM1_20K},
	{CAN_TIM0_40K,  CAN_TIM1_40K},
	{CAN_TIM0_50K,  CAN_TIM1_50K},
	{CAN_TIM0_100K, CAN_TIM1_100K},
	{CAN_TIM0_125K, CAN_TIM1_125K},
	{CAN_TIM0_250K, CAN_TIM1_250K},
	{CAN_TIM0_500K, CAN_TIM1_500K},
	{CAN_TIM0_800K, CAN_TIM1_800K},
	{CAN_TIM0_1000K,CAN_TIM1_1000K}};

#define B1000	0  /* 1 MBit/s   */
#define B500	1  /* 500 Kbit/s */
#define B250	2  /* 250 Kbit/s */
#define B125	3  /* 125 Kbit/s */
#define B20	  4  /* 20 Kbit/s  */

#define iCTL 0x00		// Control Register
#define iSTAT 0x01		// Status Register
#define iCPU 0x02		// CPU Interface Register
#define iHSR 0x04		// High Speed Read
#define iSGM0 0x06		// Standard Global Mask byte 0
#define iSGM1 0x07
#define iEGM0 0x08		// Extended Global Mask byte 0
#define iEGM1 0x09
#define iEGM2 0x0a
#define iEGM3 0x0b
#define i15M0 0x0c		// Message 15 Mask byte 0
#define i15M1 0x0d
#define i15M2 0x0e
#define i15M3 0x0f
#define iMSGOBJ1 0x10
#define iCLK 0x1f	// Clock Out Register
#define iMSGOBJ2 0x20
#define iBUS 0x2f		// Bus Configuration Register
#define iMSGOBJ3 0x30
#define iBT0 0x3f		// Bit Timing Register byte 0
#define iMSGOBJ4 0x40
#define iBT1 0x4f
#define iMSGOBJ5 0x50
#define iIRQ 0x5f		// Interrupt Register
#define iMSGOBJ6 0x60
#define iMSGOBJ7 0x70
#define iMSGOBJ8 0x80
#define iMSGOBJ9 0x90
#define iP1C 0x9f		// Port 1 Register
#define iMSGOBJ10 0xA0
#define iP2C 0xaf		// Port 2 Register
#define iMSGOBJ11 0xB0
#define iP1I 0xbf		// Port 1 Data In Register
#define iMSGOBJ12 0xC0
#define iP2I 0xcf		// Port 2 Data In Register
#define iMSGOBJ13 0xD0
#define iP1O 0xdf		// Port 1 Data Out Register
#define iMSGOBJ14 0xE0
#define iP2O 0xef		// Port 2 Data Out Register
#define iMSGOBJ15 0xF0
#define iSRA 0xff		// Serial Reset Address

#define iMSGCTL0	0x00	/* First Control register */
#define iMSGCTL1	0x01	/* Second Control register */
#define iMSGID0		0x02	/* First Byte of Message ID */
#define iMSGID1		0x03
#define iMSGID2		0x04
#define iMSGID3		0x05
#define iMSGCFG		0x06	/* Message Configuration */
#define iMSGDAT0	0x07	/* First Data Byte */
#define iMSGDAT1	0x08
#define iMSGDAT2	0x09
#define iMSGDAT3	0x0a
#define iMSGDAT4	0x0b
#define iMSGDAT5	0x0c
#define iMSGDAT6	0x0d
#define iMSGDAT7	0x0e

/* Control Register (0x00) */
enum i82527_iCTL {
	iCTL_INI = 1,		// Initialization
	iCTL_IE  = 1<<1,	// Interrupt Enable
	iCTL_SIE = 1<<2,	// Status Interrupt Enable
	iCTL_EIE = 1<<3,	// Error Interrupt Enable
	iCTL_CCE = 1<<6		// Change Configuration Enable
};

/* Status Register (0x01) */
enum i82527_iSTAT {
	iSTAT_TXOK = 1<<3,	// Transmit Message Successfully
	iSTAT_RXOK = 1<<4,	// Receive Message Successfully
	iSTAT_WAKE = 1<<5,	// Wake Up Status
	iSTAT_WARN = 1<<6,	// Warning Status
	iSTAT_BOFF = 1<<7	// Bus Off Status
};

#define No_Error 0
#define Stuff_Error 1
#define Form_Error 2
#define Ack_Error 3
#define Bit1_Error 4
#define Bit0_Error 5
#define CRC_Error 6
#define Unused 7

/* CPU Interface Register (0x02) */
enum i82527_iCPU {
	iCPU_CEN = 1,		// Clock Out Enable
	iCPU_MUX = 1<<2,	// Multiplex
	iCPU_SLP = 1<<3,	// Sleep
	iCPU_PWD = 1<<4,	// Power Down Mode
	iCPU_DMC = 1<<5,	// Divide Memory Clock
	iCPU_DSC = 1<<6,	// Divide System Clock
	iCPU_RST = 1<<7		// Hardware Reset Status
};

/* Clock Out Register (0x1f) */
enum i82527_iCLK {
	iCLK_CD0 = 1,		// Clock Divider bit 0
	iCLK_CD1 = 1<<1,
	iCLK_CD2 = 1<<2,
	iCLK_CD3 = 1<<3,
	iCLK_SL0 = 1<<4,	// Slew Rate bit 0
	iCLK_SL1 = 1<<5
};

/* Bus Configuration Register (0x2f) */
enum i82527_iBUS {
	iBUS_DR0 = 1,		// Disconnect RX0 Input
	iBUS_DR1 = 1<<1,	// Disconnect RX1 Input
	iBUS_DT1 = 1<<3,	// Disconnect TX1 Output
	iBUS_POL = 1<<5,	// Polarity
	iBUS_CBY = 1<<6		// Comparator Bypass
};

#define RESET 1			// Bit Pair Reset Status
#define SET 2			// Bit Pair Set Status
#define UNCHANGED 3		// Bit Pair Unchanged

/* Message Control Register 0 (Base Address + 0x0) */
enum i82527_iMSGCTL0 {
	INTPD_SET = SET,		// Interrupt pending
	INTPD_RES = RESET,		// No Interrupt pending
	INTPD_UNC = UNCHANGED,
	RXIE_SET  = SET<<2,		// Receive Interrupt Enable
	RXIE_RES  = RESET<<2,		// Receive Interrupt Disable
	RXIE_UNC  = UNCHANGED<<2,
	TXIE_SET  = SET<<4,		// Transmit Interrupt Enable
	TXIE_RES  = RESET<<4,		// Transmit Interrupt Disable
	TXIE_UNC  = UNCHANGED<<4,
	MVAL_SET  = SET<<6,		// Message Valid
	MVAL_RES  = RESET<<6,		// Message Invalid
	MVAL_UNC  = UNCHANGED<<6
};

/* Message Control Register 1 (Base Address + 0x01) */
enum i82527_iMSGCTL1 {
	NEWD_SET = SET,			// New Data
	NEWD_RES = RESET,		// No New Data
	NEWD_UNC = UNCHANGED,
	MLST_SET = SET<<2,		// Message Lost
	MLST_RES = RESET<<2,		// No Message Lost
	MLST_UNC = UNCHANGED<<2,
	CPUU_SET = SET<<2,		// CPU Updating
	CPUU_RES = RESET<<2,		// No CPU Updating
	CPUU_UNC = UNCHANGED<<2,
	TXRQ_SET = SET<<4,		// Transmission Request
	TXRQ_RES = RESET<<4,		// No Transmission Request
	TXRQ_UNC = UNCHANGED<<4,
	RMPD_SET = SET<<6,		// Remote Request Pending
	RMPD_RES = RESET<<6,		// No Remote Request Pending
	RMPD_UNC = UNCHANGED<<6
};

/* Message Configuration Register (Base Address + 0x06) */
enum i82527_iMSGCFG {
	MCFG_XTD = 1<<2,		// Extended Identifier
	MCFG_DIR = 1<<3			// Direction is Transmit
};

/** The following statements will be for the main file **/
static int ican_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg);
static unsigned int ican_poll(struct file *filp, poll_table *wait);
static int ican_open(struct inode *inode, struct file *filp);
static int ican_release(struct inode *inode, struct file *filp);
static ssize_t ican_read(struct file *filp, char *buf, size_t count, loff_t *f_pos);
static ssize_t ican_write(struct file *filp, const char *buf, size_t count, loff_t *f_pos);


#define CAN_MAJOR	     91
#define REGBASE1  0x78200000  /* address for first intel82527 */
#define REGBASE2  0x78400000  /* address for second intel82527 */
#define IO_RANGE  0xFF

#define INT_REG 0x78600001
#define IRQ_NUM   0x13

unsigned char* int_reg;
struct timeval transmit_timestamp;

#define	CAN_NUMBER	2
CAN_Dev canDev[CAN_NUMBER];
int RxErr[CAN_NUMBER];
int TxErr[CAN_NUMBER];

/** These are for ioctl function **/
#define ICAN_IOC_BASE 'g'
#define ICAN_IOC_SBAUD					_IOW(ICAN_IOC_BASE,  1, 8)
#define ICAN_IOC_MASK					  _IOW(ICAN_IOC_BASE,  2, 8)
#define ICAN_IOC_CRBUF					_IOW(ICAN_IOC_BASE,  3, 8)
#define ICAN_IOC_CWBUF					_IOW(ICAN_IOC_BASE,  4, 8)#define ICAN_IOC_RREG						_IOR(ICAN_IOC_BASE,  5, 8)
#define ICAN_IOC_RTTS						_IOR(ICAN_IOC_BASE,  6, 8)
#define ICAN_IOC_RAPS						_IOR(ICAN_IOC_BASE,  7, 8)
#define ICAN_IOC_SBTR						_IOW(ICAN_IOC_BASE,  8, 8)
#define ICAN_IOC_START					_IOW(ICAN_IOC_BASE,  9, 8)
#define	ICAN_IOC_STOP						_IOW(ICAN_IOC_BASE,  10, 8)
#define ICAN_IOC_RESET					_IOW(ICAN_IOC_BASE,  11, 8)
#define ICAN_IOC_CONF_FILTER		_IOW(ICAN_IOC_BASE,  12, 8)
#define ICAN_IOC_SEND						_IOW(ICAN_IOC_BASE,  13, 8)
#define ICAN_IOC_RECEIVE				_IOW(ICAN_IOC_BASE,  14, 8)

#define CAN_IOC_MAXNR 14

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品自拍毛片| 欧美一级日韩不卡播放免费| 中文字幕在线观看一区| 一区二区三区加勒比av| 91热门视频在线观看| 国产精品一卡二卡在线观看| 亚洲欧洲成人自拍| 亚洲青青青在线视频| 亚洲天堂免费看| 亚洲女性喷水在线观看一区| 亚洲人成精品久久久久| 亚洲手机成人高清视频| 丝袜亚洲另类丝袜在线| 麻豆专区一区二区三区四区五区| 久久97超碰国产精品超碰| 韩国女主播成人在线| 高清不卡在线观看av| 成熟亚洲日本毛茸茸凸凹| 欧洲在线/亚洲| 日韩一区二区麻豆国产| 国产精品高清亚洲| 亚洲国产一区二区在线播放| 韩国欧美国产1区| 精品国产亚洲一区二区三区在线观看| 精品精品国产高清a毛片牛牛| 亚洲国产综合视频在线观看| 日本韩国欧美三级| 一区二区三区在线观看欧美| 91精品国产一区二区三区| 亚洲欧美偷拍另类a∨色屁股| 日本韩国一区二区三区视频| 欧美日韩一级黄| 色综合天天性综合| 韩国欧美国产一区| 蜜臀精品久久久久久蜜臀| 美女www一区二区| 91亚洲国产成人精品一区二三| 日韩精品高清不卡| 一区二区理论电影在线观看| 欧美三区在线观看| 蜜桃精品在线观看| 亚洲日本免费电影| 精品成人在线观看| 亚洲第一会所有码转帖| 99久久久国产精品免费蜜臀| 日本免费在线视频不卡一不卡二| 欧美经典一区二区| 日韩一区二区三区观看| 一本色道久久加勒比精品| 国产精品影视网| 午夜精品久久久久久久久久| 亚洲欧美激情小说另类| 国产午夜精品在线观看| 日韩欧美www| 欧美一区日韩一区| 欧美亚州韩日在线看免费版国语版 | 欧美va亚洲va在线观看蝴蝶网| 色婷婷香蕉在线一区二区| 国产成人夜色高潮福利影视| 老司机精品视频在线| 视频一区二区三区中文字幕| 依依成人精品视频| |精品福利一区二区三区| 欧美国产亚洲另类动漫| 久久精品一级爱片| 精品99999| 欧美精品一区二区高清在线观看| 欧美一区二区视频免费观看| 欧美男生操女生| 91成人在线精品| 在线视频中文字幕一区二区| 色香蕉成人二区免费| 99久久国产综合精品色伊| 成人精品国产一区二区4080| 懂色av一区二区三区蜜臀| 国产精品中文字幕一区二区三区| 日本aⅴ免费视频一区二区三区| 天天亚洲美女在线视频| 日一区二区三区| 秋霞国产午夜精品免费视频| 蜜臀a∨国产成人精品| 美美哒免费高清在线观看视频一区二区 | 精品一区二区影视| 韩国v欧美v亚洲v日本v| 国产乱对白刺激视频不卡| 粉嫩aⅴ一区二区三区四区五区| 成人精品一区二区三区四区 | 成人99免费视频| 91麻豆国产香蕉久久精品| 日本精品视频一区二区三区| 欧美性猛交一区二区三区精品| 精品视频在线看| 日韩视频在线一区二区| 精品国产精品网麻豆系列| 久久亚洲精品国产精品紫薇| 国产精品色噜噜| 亚洲尤物在线视频观看| 日韩av一区二区三区| 狠狠色狠狠色综合日日91app| 成人激情黄色小说| 欧美怡红院视频| 69堂亚洲精品首页| 国产午夜精品理论片a级大结局| 欧美性猛交xxxxxxxx| 国产酒店精品激情| av在线播放一区二区三区| 欧美唯美清纯偷拍| www国产成人免费观看视频 深夜成人网| 国产欧美一区二区三区网站| 亚洲欧美另类小说视频| 免费看精品久久片| 成人免费va视频| 在线成人免费观看| 国产欧美综合色| 亚洲1区2区3区4区| 成人综合婷婷国产精品久久蜜臀| 欧美性色综合网| 久久久久国色av免费看影院| 亚洲国产精品综合小说图片区| 国产一区二区三区| 欧美伊人久久久久久久久影院 | 成人av影院在线| 欧美在线视频日韩| 国产日产欧美一区| 午夜精品久久久久久久| 国产超碰在线一区| 欧美一卡二卡在线观看| 中文字幕亚洲成人| 国产美女主播视频一区| 欧美日韩一区二区三区在线| 国产精品色噜噜| 美女在线视频一区| 91看片淫黄大片一级| 久久久久久亚洲综合| 午夜精品一区在线观看| www.欧美精品一二区| 久久综合九色综合97婷婷女人| 亚洲国产综合91精品麻豆| 成人理论电影网| 久久久久久久久久久久电影| 日韩avvvv在线播放| 在线中文字幕一区| 中文字幕在线观看一区| 国产中文字幕一区| 日韩一级完整毛片| 亚洲福利国产精品| 在线视频你懂得一区| 国产精品乱码人人做人人爱| 极品美女销魂一区二区三区免费| 欧美丰满一区二区免费视频| 亚洲黄色尤物视频| thepron国产精品| 中文在线资源观看网站视频免费不卡| 欧美aaaaaa午夜精品| 欧美美女一区二区在线观看| 亚洲免费成人av| 97se亚洲国产综合自在线不卡| 国产日韩av一区| 国产成人午夜精品影院观看视频 | 国产欧美精品一区二区三区四区| 裸体歌舞表演一区二区| 日韩午夜精品电影| 免费av成人在线| 日韩西西人体444www| 玖玖九九国产精品| 精品日韩在线观看| 黄页视频在线91| 久久久国际精品| 国产超碰在线一区| 国产精品久久一卡二卡| 成人黄色一级视频| 亚洲欧洲国产日韩| 欧洲精品在线观看| 亚洲国产精品久久不卡毛片 | 麻豆成人综合网| 国产欧美精品区一区二区三区| 色综合久久久久| 亚洲欧美偷拍三级| 色哟哟一区二区在线观看 | 亚洲综合999| 777午夜精品免费视频| 奇米色777欧美一区二区| 日韩欧美aaaaaa| 国产精品一区二区在线播放| 日本一区二区成人| 日本韩国欧美一区二区三区| 午夜精品福利一区二区蜜股av| 制服.丝袜.亚洲.中文.综合| 极品少妇xxxx精品少妇偷拍| 国产精品免费视频观看| 一本久久精品一区二区| 日韩高清不卡一区| 久久久91精品国产一区二区三区| 9i看片成人免费高清| 亚洲一区视频在线观看视频| 欧美一区二区三区在线电影| 国产精品77777| 亚洲品质自拍视频| 日韩欧美中文字幕精品| 丁香激情综合五月|