⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 net_nic.h

📁 uC/OS-II下的CS8900网卡芯片驱动
💻 H
📖 第 1 页 / 共 2 页
字号:
#define PP_BufEvent_SWInt	    0x0040
#define PP_BufEvent_Rdy4Tx	    0x0100
#define PP_BufEvent_TxUnder 	0x0200
#define PP_BufEvent_RxMiss	    0x0400


#define PP_LineStat             0x0134                          /* Line status                                            */
#define PP_LineStat_LinkOK      0x0080                          /* Line is connected and working                          */
#define PP_LineStat_AUI         0x0100                          /* Connected via AUI                                      */
#define PP_LineStat_10BT        0x0200                          /* Connected via twisted pair                             */
#define PP_LineStat_Polarity    0x1000                          /* Line polarity OK (10BT only)                           */
#define PP_LineStat_CRS         0x4000                          /* Frame being received                                   */

#define PP_SelfStat             0x0136                          /* Chip status                                            */
#define PP_SelfStat_InitD       0x0080                          /* Chip initialization complete                           */
#define PP_SelfStat_SIBSY       0x0100                          /* EEPROM is busy                                         */
#define PP_SelfStat_EEPROM      0x0200                          /* EEPROM present                                         */
#define PP_SelfStat_EEPROM_OK   0x0400                          /* EEPROM checks out                                      */
#define PP_SelfStat_ELPresent   0x0800                          /* External address latch logic available                 */
#define PP_SelfStat_EEsize      0x1000                          /* Size of EEPROM                                         */

#define PP_BusStat              0x0138                          /* Bus status                                             */
#define PP_BusStat_TxBid        0x0080                          /* Tx error                                               */
#define PP_BusStat_TxRDY        0x0100                          /* Ready for Tx data                                      */

#define PP_LAF                  0x0150                          /* Logical address filter (6 bytes)                       */
#define PP_IA                   0x0158                          /* Individual address (MAC)                               */

#define PP_Rx_LENGTH            0x0402                          /* Receive length, in bytes                               */

/*
*********************************************************************************************************
*                               NIC DRIVER LAYER / ETHERNET ERROR CODES
*
* Note(s) : (1) ALL NIC-independent     error codes #define'd in      'net_err.h';
*               ALL CS8900A-specific    error codes #define'd in this 'net_nic.h'.
*
*           (2) Network error code '10,000' series reserved for NIC drivers.
*********************************************************************************************************
*/

#define  CS8900_ERR_RX_BUSY                        10700
#define  CS8900_ERR_TX_BUSY                        10701


/*
*********************************************************************************************************
*                                          GLOBAL VARIABLES
*********************************************************************************************************
*/

NET_NIC_EXT  CPU_BOOLEAN  NetNIC_ConnStatus;                    /* NIC's connection status : DEF_ON/DEF_OFF.              */

#if (NET_CTR_CFG_STAT_EN == DEF_ENABLED)                        /* -------------------- NET DRV STATS ------------------- */
NET_NIC_EXT  NET_CTR      NetNIC_StatRxPktCtr;
NET_NIC_EXT  NET_CTR      NetNIC_StatTxPktCtr;
#endif

#if (NET_CTR_CFG_ERR_EN  == DEF_ENABLED)                        /* -------------------- NET DRV ERRS -------------------- */
NET_NIC_EXT  NET_CTR      NetNIC_ErrRxPktDiscardedCtr;
NET_NIC_EXT  NET_CTR      NetNIC_ErrTxPktDiscardedCtr;
#endif


/*
*********************************************************************************************************
*                                         FUNCTION PROTOTYPES
*********************************************************************************************************
*/

void         NetNIC_Init             (NET_ERR      *perr);

void         NetNIC_IntEn            (NET_ERR      *perr);

void         NetNIC_MAC_AddrSet      (CPU_INT08U   *paddr,      NET_ERR     *perr);


                                                                /* -------------------- STATUS FNCTS -------------------- */
CPU_BOOLEAN  NetNIC_ConnStatusGet    (void);

void         NetNIC_ISR_Handler      (void);                    /* Decode & handle rx/tx ISRs.                            */


                                                                /* ---------------------- RX FNCTS ---------------------- */
CPU_INT16U   NetNIC_RxPktGetSize     (void);                    /* Get NIC rx pkt size.                                   */

void         NetNIC_RxPkt            (void         *ppkt,       /* Rx pkt from NIC.                                       */
                                      CPU_INT16U    size,
                                      NET_ERR      *perr);

void         NetNIC_RxPktDiscard     (CPU_INT16U    size,       /* Discard rx pkt in NIC.                                 */
                                      NET_ERR      *perr);


                                                                /* ---------------------- TX FNCTS ---------------------- */
void         NetNIC_TxPkt            (void         *ppkt,
                                      CPU_INT16U    size,
                                      NET_ERR      *perr);


                                                                /* -------------------- PHYTER FNCTS -------------------- */
void         NetNIC_PhyInit          (NET_ERR      *perr);

CPU_INT16U   NetNIC_PhyRegRd         (CPU_INT08U    phy,
                                      CPU_INT08U    reg,
                                      NET_ERR      *perr);

void         NetNIC_PhyRegWr         (CPU_INT08U    phy,
                                      CPU_INT08U    reg,
                                      CPU_INT16U    val,
                                      NET_ERR      *perr);


                                                                /* ------------------ CS8900A REG FNCTS ----------------- */
#if (NET_DBG_CFG_TEST_EN == DEF_ENABLED)
CPU_INT32U   CS8900_RegRd            (CPU_INT32U    reg_bank,
                                      CPU_INT32U    reg_offset);
#endif


/*
*********************************************************************************************************
*                                         FUNCTION PROTOTYPES
*                                      DEFINED IN OS'S  net_os.c
*********************************************************************************************************
*/

void         NetOS_NIC_Init          (NET_ERR      *perr);      /* Create Drv objs & start Drv tasks.                     */

void         NetOS_NIC_TxRdyWait     (NET_ERR      *perr);      /* Wait on drv tx empty signal from NIC.                  */

void         NetOS_NIC_TxRdySignal   (void);                    /* Post    drv tx empty signal from NIC.                  */


/*
*********************************************************************************************************
*                                         FUNCTION PROTOTYPES
*                                    DEFINED IN PRODUCT'S  net_bsp.c
*********************************************************************************************************
*/

CPU_INT16U   NetNIC_Rd16             (CPU_INT16U    reg_offset);

void         NetNIC_Wr16             (CPU_INT16U    reg_offset,
                                      CPU_INT16U    val);
                                                                /* See this 'net_nic.h  Notes #3b & #3c'.                 */
CPU_INT32U   NetNIC_Rd32             (CPU_INT32U    reg_offset);

void         NetNIC_Wr32             (CPU_INT32U    reg_offset,
                                      CPU_INT32U    val);

void         CS8900_PhyFrameDly      (void);                    /* Implement ???? dly; #### remove if unnecessary.        */
                                                                /*   MAY  use OS dly to preempt or tmr loop.              */

/*
*********************************************************************************************************
*                                         FUNCTION PROTOTYPES
*                                  DEFINED IN PRODUCT's  net_isr_a.s
*********************************************************************************************************
*/

void         NetNIC_ISR              (void);


/*
*********************************************************************************************************
*                                         FUNCTION PROTOTYPES
*                                    DEFINED IN PRODUCT'S  net_isr.c
*
* Note(s) : (1) See this 'net_nic.c  CS8900_Init()     Note #5'.
*
*           (2) See this 'net_nic.c  NetNIC_ISR_Handler()  Note #3'.
*********************************************************************************************************
*/

#if (NET_NIC_CFG_INT_CTRL_EN == DEF_ENABLED)
void         NetNIC_IntInit          (void);                    /* Init int ctrl'r        [see Note #1].                  */

void         NetNIC_IntClr           (void);                    /* Clr  int ctrl'r src(s) [see Note #2].                  */
#endif


/*
*********************************************************************************************************
*                                        CONFIGURATION ERRORS
*********************************************************************************************************
*/
	 	 			 		    	 				 	    	 	 	 		    	     	 	 	 		 	  	  	  	     	 	      	   		 	 	 	   		   			 	  	  			      		   	 			       	  	 		  	 	  	 		 		   		  	  			 	  	 		 	 	 			 	 		 		 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -