📄 net_nic.h
字号:
*********************************************************************************************************
* 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 + -