?? cpcimultiint.h
字號:
/**********************************************************************
chengjy@felab, copyright 2002-2004
cpciMultiInt.h
零槽控制器的多板中斷處理需要的常數定義
**********************************************************************/
#ifndef _CPCIMULTIINT_H
#define _CPCIMULTIINT_H
/*~~~~~~~~~~~~~~~~~地址轉換~~~~~~~~~~~~~~~~~~~~*/
/*基地址定義, 從bsp繼承: mcpx750.h*/
#define PCI_MEM_BASE_MODE1 0x81000000
#define PCI_MEM_BASE_MODE2 0xc0000000
#define PCI_MSTR_MEMIO_LOCAL PCI_MEM_BASE_MODE2 /*pci mem -- cpu view base address*/
#define PCI_MSTR_IO_LOCAL 0x80000000 /*pci io -- cpu view base address*/
#define PCI_SLV_MEM_BUS 0x80000000 /*mem -- pci view base address*/
/*pci總線上的地址到cpu地址的轉換*/
#define PCIMEM2CPU(x) ((UINT*)((UINT)(x)+PCI_MSTR_MEMIO_LOCAL))
#define PCIIO2CPU(x) ((UINT*)((UINT)(x)+PCI_MSTR_IO_LOCAL))
/*內存地址從cpu local bus到pci地址的轉換*/
#define CPU2PCIMEM(x) ((UINT*)((UINT)(x)-PCI_MSTR_MEMIO_LOCAL))
#define CPU2PCIIO(x) ((UINT*)((UINT)(x)-PCI_MSTR_IO_LOCAL))
/*cpu mem 地址到pci地址的轉換*/
#define CPUMEM2PCI(x) ((UINT*)((UINT)(x)+PCI_SLV_MEM_BUS))
/*********************FCI 9656相關***************************/
/*FCI板9656的vendor 和device ID號*/
#define PCI_F9656_VENDOR_ID 0x10B5
#define PCI_F9656_DEVICE_ID 0x9656
/*fci 板9656 的pci mem 操作*/
#define F9656MEM2CPU0(x,index) ((UINT*)(pciBoard[index].pcimem0+(x))) /*mem0區*/
#define F9656MEM2CPU1(x,index) ((UINT*)(pciBoard[index].pcimem1+(x))) /*mem1區*/
/*9656 字序轉換*/
#define F9656_BYTE_SWAP(x) \
(((((UINT)(x))<<24)&0xFF000000)+((((UINT)(x))<<8)&0x00FF0000) \
+((((UINT)(x))>>8)&0x0000FF00)+((((UINT)(x))>>24)&0x000000FF))
/*定義單板狀態*/
#define STATUS_NORMAL 0x00
#define STATUS_ERROR 0x01
#define STATUS_WARNING 0x02
#define STATUS_INVALID 0x03
#define STATUS_UNAVAILABLE 0x04
#define STATUS_DISABLE 0x05
/*用戶任務的堆棧大小*/
#define USER_STACK_SIZE 2000
/*定義任務名*/
#define TNAME_F9656INTHDL "tF9656intHdl"
#define TPRI_F9656INTHDL 120
/*~~~~~~~~~~~~~~~~~~~~CPCI 插卡的基本信息~~~~~~~~~~~~~~~~~~~~*/
struct pciBoardIndex
{
int index; /*板號*/
char intNum; /*中斷號*/
int intTimes; /*已經產生的中斷次數*/
UINT pcimem0; /*cpci器件申請的memory0 的基地址*/
UINT pcimem1; /*cpci器件申請的memory1的基地址*/
SEM_ID semPci; /*同步用信號燈*/
};
struct pciIntIndex
{
char enable;
};
#define MAX_BOARD_SUPPORT 7 /*最多支持的插板數*/
#define MAX_INT_SUPPORT 4 /*CPCI 插板最多支持4個中斷*/
/* CompactPCI Bus INTA# level */
#define CPCIINT2CPU(x) ((char)(x)+0x10) /*從獲取的中斷號轉換到cpu對應的中斷號*/
#define CPCI_INTA_LEVEL_CPU CPCIINT2CPU(8) /*CPU看到的CPCI的中斷A */
#define INT_INDEX2NUM(x) ((x)+CPCI_INTA_LEVEL_CPU)
#define INT_NUM2INDEX(x) ((x)-CPCI_INTA_LEVEL_CPU)
#endif /*_CPCIMULTIINT_H*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -