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

📄 net_nic.h

📁 在uCosii操作系统中进行以太网控制芯片lan91c111的控制传输程序
💻 H
📖 第 1 页 / 共 2 页
字号:
*********************************************************************************************************
*                                         FUNCTION PROTOTYPES
*********************************************************************************************************
*/

void         NetNIC_Init             (NET_ERR      *perr);

void         NetNIC_IntEn            (NET_ERR      *perr);



                                                                /* ------------------- STATUS FNCTS ------------------- */
void         NetNIC_ConnStatusChk    (void);

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);



                                                                /* ---------------- LAN91C111 REG FNCTS --------------- */
#if (NET_DBG_CFG_TEST_EN == DEF_ENABLED)
CPU_INT16U   LAN91C111_RegRd         (CPU_INT16U    reg_bank,
                                      CPU_INT16U    reg_offset);
#endif

/*
*********************************************************************************************************
*                                         FUNCTION PROTOTYPES
*                                     DEFINED IN NIC'S  net_nic.c
*********************************************************************************************************
*/
                                                                /* ---------------- LAN91C111 REG FNCTS --------------- */
CPU_INT16U  LAN91C111_RegRd          (CPU_INT16U    reg_bank,
                                      CPU_INT16U    reg_offset);

void        LAN91C111_RegWr          (CPU_INT16U    reg_bank,
                                      CPU_INT16U    reg_offset,
                                      CPU_INT16U    val);

                                                                /* -------------- LAN91C111 PHY REG FNCTS ------------- */

CPU_INT16U  LAN91C111_PhyRegRd       (CPU_INT08U    phy_reg);

void        LAN91C111_PhyRegWr       (CPU_INT08U    phy_reg,
                                      CPU_INT16U    val);

/*$PAGE*/
/*
*********************************************************************************************************
*                                         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 rdy signal from NIC.                  */

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


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

                                                                /* See this 'net_nic.h  Notes #3b & #3c'.               */
#if (NET_NIC_CFG_RD_WR_SEL == NET_NIC_RD_WR_SEL_FNCT)
CPU_INT16U   NetNIC_Rd_16            (CPU_INT16U    reg_offset);

void         NetNIC_Wr_16            (CPU_INT16U    reg_offset,
                                      CPU_INT16U    val);
#endif



void         LAN91C111_PwrCtrl       (CPU_BOOLEAN   pwr);       /* Implement LAN91C111 pwr ctrl (if necessary) :        */
                                                                /*   DEF_ON    Set LAN91C111 'pwr' ON.                  */
                                                                /*   DEF_OFF   Set LAN91C111 'pwr' OFF.                 */

void         LAN91C111_DlyReset      (void);                    /* Implement 50 ms dly (see SMSC AN9.6, Section 4.7.1). */
                                                                /*   MAY  use OS dly to preempt or tmr loop.            */
             
void         LAN91C111_DlyAutoNegAck (void);                    /* Implement 1.5 s dly (see SMSC AN9.6, Section 4.7.1). */
                                                                /*   MUST use OS dly to preempt.                        */

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

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

void         NetNIC_ISR              (void);


/*
*********************************************************************************************************
*                                         FUNCTION PROTOTYPES
*                                    DEFINED IN PRODUCT'S  net_bsp.c
*
* Note(s) : (1) See this 'net_nic.c  LAN91C111_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


/*$PAGE*/
/*
*********************************************************************************************************
*                                        CONFIGURATION ERRORS
*********************************************************************************************************
*/

#ifndef  NET_NIC_CFG_INT_CTRL_EN
#error  "NET_NIC_CFG_INT_CTRL_EN           not #define'd in 'net_cfg.h'"
#error  "                            [MUST be  DEF_DISABLED]           "
#error  "                            [     ||  DEF_ENABLED ]           "
#elif  ((NET_NIC_CFG_INT_CTRL_EN != DEF_DISABLED) && \
        (NET_NIC_CFG_INT_CTRL_EN != DEF_ENABLED ))
#error  "NET_NIC_CFG_INT_CTRL_EN     illegally #define'd in 'net_cfg.h'"
#error  "                            [MUST be  DEF_DISABLED]           "
#error  "                            [     ||  DEF_ENABLED ]           "
#endif



#ifndef  NET_NIC_CFG_RD_WR_SEL
#error  "NET_NIC_CFG_RD_WR_SEL             not #define'd in 'net_cfg.h'"
#error  "                            [MUST be  NET_NIC_RD_WR_SEL_FNCT ]"
#error  "                            [     ||  NET_NIC_RD_WR_SEL_MACRO]"
#elif  ((NET_NIC_CFG_RD_WR_SEL != NET_NIC_RD_WR_SEL_FNCT ) && \
        (NET_NIC_CFG_RD_WR_SEL != NET_NIC_RD_WR_SEL_MACRO))
#error  "NET_NIC_CFG_RD_WR_SEL       illegally #define'd in 'net_cfg.h'"
#error  "                            [MUST be  NET_NIC_RD_WR_SEL_FNCT ]"
#error  "                            [     ||  NET_NIC_RD_WR_SEL_MACRO]"
#endif



#ifndef  LAN91C111_CFG_MAC_ADDR_SEL
#error  "LAN91C111_CFG_MAC_ADDR_SEL        not #define'd in 'net_cfg.h'      "
#error  "                            [MUST be  LAN91C111_MAC_ADDR_SEL_CFG   ]"
#error  "                            [     ||  LAN91C111_MAC_ADDR_SEL_EEPROM]"
#elif  ((LAN91C111_CFG_MAC_ADDR_SEL != LAN91C111_MAC_ADDR_SEL_CFG   ) && \
        (LAN91C111_CFG_MAC_ADDR_SEL != LAN91C111_MAC_ADDR_SEL_EEPROM))
#error  "LAN91C111_CFG_MAC_ADDR_SEL  illegally #define'd in 'net_cfg.h'      "
#error  "                            [MUST be  LAN91C111_MAC_ADDR_SEL_CFG   ]"
#error  "                            [     ||  LAN91C111_MAC_ADDR_SEL_EEPROM]"
#endif
	 	 			 		    	 				 	    	 	 	 		    	     	 	 	 		 	  	  	  	     	 	      	   		 	 	 	   		   			 	     			  			 		   	 			       	  	 		  	 	  	 		 		   		  	  			 	  	 		 	 	 			 	 		 		 	 		 	   		 	 	 	   		     			  			 		  	 		 	  			 	 	 	 	  		  	   		   	   	 				 		 			 			  			 		   		 		 				 		 	    		   	  		 

⌨️ 快捷键说明

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