diff --git a/w6300/socket.cpp b/w6300/socket.cpp index 3cc611a..9642458 100644 --- a/w6300/socket.cpp +++ b/w6300/socket.cpp @@ -1,6 +1,6 @@ #include "socket.h" -#define SOCK_ANY_PORT_NUM 0xC000 +constexpr uint16_t SOCK_ANY_PORT_NUM = 0xC000; static uint16_t sock_any_port = SOCK_ANY_PORT_NUM; static uint16_t sock_io_mode = 0; @@ -18,15 +18,6 @@ uint8_t sock_pack_info[_WIZCHIP_SOCK_NUM_] = {0,}; #define CHECK_SOCKDATA() do { if(len == 0) return SOCKERR_DATALEN; } while(0) #define CHECK_IPZERO(addr, addrlen) do { uint16_t ipzero=0; for(uint8_t i=0; i>8)); \ - WIZCHIP_WRITE(_PHYDIR_, (uint8_t)(phydir)); \ - }while(0); - -#define getPHYDOR() \ - ((((uint16_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PHYDOR_,1))) << 8) + WIZCHIP_READ(_PHYDOR_)) - -#define setPHYACR(phyacr) \ - WIZCHIP_WRITE(_PHYACR_,(phyacr)) - -#define getPHYACR() \ - WIZCHIP_READ(_PHYACR_) - -#define setPHYDIVR(phydivr) \ - WIZCHIP_WRITE(_PHYDIVR_,(phydivr)) - -#define getPHYDIVR() \ - WIZCHIP_READ(_PHYDIVR_) - -#define setPHYCR0(phycr0) \ - WIZCHIP_WRITE(_PHYCR0_,(phycr0)) - -#define setPHYCR1(phycr1) \ - WIZCHIP_WRITE(_PHYCR1_,(phycr1)) - -#define getPHYCR1() \ - WIZCHIP_READ(_PHYCR1_) - -#define setNET4MR(net4mr) \ - WIZCHIP_WRITE(_NET4MR_,(net4mr)) - -#define setNET6MR(net6mr) \ - WIZCHIP_WRITE(_NET6MR_,(net6mr)) - -#define setNETMR(netmr) \ - WIZCHIP_WRITE(_NETMR_,(netmr)) - -#define setNETMR2(netmr2) \ - WIZCHIP_WRITE(_NETMR2_,(netmr2)) - -#define getNET4MR() \ - WIZCHIP_READ(_NET4MR_) - -#define getNET6MR() \ - WIZCHIP_READ(_NET6MR_) - -#define getNETMR() \ - WIZCHIP_READ(_NETMR_) - -#define getNETMR2() \ - WIZCHIP_READ(_NETMR2_) - -#define setPTMR(ptmr) \ - WIZCHIP_WRITE(_PTMR_, (ptmr)) - -#define getPTMR() \ - WIZCHIP_READ(_PTMR_) - -#define setPMNR(pmnr) \ - WIZCHIP_WRITE(_PMNR_, (pmnr)) - -#define getPMNR() \ - WIZCHIP_READ(_PMNR_) - -#define setPHAR(phar) \ - WIZCHIP_WRITE_BUF(_PHAR_,(phar),6) - -#define getPHAR(phar) \ - WIZCHIP_READ_BUF(_PHAR_,(phar),6) - -#define setPSIDR(psidr) \ - do{ \ - WIZCHIP_WRITE(_PSIDR_,(uint8_t)((psidr) >> 8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_PSIDR_,1),(uint8_t)(psidr)); \ - }while(0); - -#define getPSIDR() \ - ((((uint16_t)WIZCHIP_READ(_PSIDR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PSIDR_,1))) - -#define setPMRUR(pmrur) \ - do{ \ - WIZCHIP_WRITE(_PMRUR_,(uint8_t)((pmrur) >> 8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_PMRUR_,1),(uint8_t)(pmrur)); \ - }while(0); - -#define getPMRUR() \ - ((((uint16_t)WIZCHIP_READ(_PMRUR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PMRUR_,1))) - -#define setSHAR(shar) \ - WIZCHIP_WRITE_BUF(_SHAR_,(shar),6) - -#define getSHAR(shar) \ - WIZCHIP_READ_BUF(_SHAR_,(shar),6) - -#define setGAR(gar) \ - WIZCHIP_WRITE_BUF(_GAR_,(gar),4) - -#define getGAR(gar) \ - WIZCHIP_READ_BUF(_GAR_,(gar),4) - -#define setGA4R(ga4r) setGAR(ga4r) -#define getGA4R(ga4r) getGAR(ga4r) - -#define setSUBR(subr) \ - WIZCHIP_WRITE_BUF(_SUBR_,(subr),4) - -#define getSUBR(subr) \ - WIZCHIP_READ_BUF(_SUBR_,(subr),4) - -#define setSUB4R(sub4r) setSUBR(sub4r) -#define getSUB4R(sub4r) getSUBR(sub4r) - -#define setSIPR(sipr) \ - WIZCHIP_WRITE_BUF(_SIPR_,(sipr),4) - -#define getSIPR(sipr) \ - WIZCHIP_READ_BUF(_SIPR_,(sipr),4) - -#define setLLAR(llar) \ - WIZCHIP_WRITE_BUF(_LLAR_,(llar),16) - -#define getLLAR(llar) \ - WIZCHIP_READ_BUF(_LLAR_,(llar),16) - -#define setGUAR(guar) \ - WIZCHIP_WRITE_BUF(_GUAR_,(guar),16) - -#define getGUAR(guar) \ - WIZCHIP_READ_BUF(_GUAR_,(guar),16) - -#define setSUB6R(sub6r) \ - WIZCHIP_WRITE_BUF(_SUB6R_,(sub6r),16) - -#define getSUB6R(sub6r) \ - WIZCHIP_READ_BUF(_SUB6R_,(sub6r),16) - -#define setGA6R(ga6r) \ - WIZCHIP_WRITE_BUF(_GA6R_,(ga6r),16) - -#define getGA6R(ga6r) \ - WIZCHIP_READ_BUF(_GA6R_,(ga6r),16) - -#define setSLDIPR(sldipr) \ - WIZCHIP_WRITE_BUF(_SLDIPR_,(sldipr),4) -#define setSLDIP4R(sldip4r) setSLDIPR((sldip4r)) - -#define getSLDIPR(sldipr) \ - WIZCHIP_READ_BUF(_SLDIPR_,(sldipr),4) -#define getSLDIP4R(sldip4r) getSLDIPR((sldip4r)) - -#define setSLDIP6R(sldip6r) \ - WIZCHIP_WRITE_BUF(_SLDIP6R_, (sldip6r),16) - -#define getSLDIP6R(sldip6r) \ - WIZCHIP_READ_BUF(_SLDIP6R_,(sldip6r),16) - -#define getSLDHAR(sldhar) \ - WIZCHIP_READ_BUF(_SLDHAR_,(sldhar),6) - -#define setPINGIDR(pingidr) \ - do{ \ - WIZCHIP_WRITE(_PINGIDR_,(uint8_t)((pingidr)>>8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_PINGIDR_,1),(uint8_t)(pingidr)); \ - }while(0); - -#define getPINGIDR() \ - (((int16_t)(WIZCHIP_READ(_PINGIDR_) << 8)) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PINGIDR_,1))) - -#define setPINGSEQR(pingseqr) \ - do{ \ - WIZCHIP_WRITE(_PINGSEQR_,(uint8_t)((pingseqr)>>8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_PINGSEQR_,1),(uint8_t)(pingseqr)); \ - }while(0); - -#define getPINGSEQR() \ - (((int16_t)(WIZCHIP_READ(_PINGSEQR_) << 8)) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PINGSEQR_,1))) - -#define getUIPR(uipr) \ - WIZCHIP_READ_BUF(_UIPR_, (uipr), 4) - -#define getUIP4R(uip4r) getUIPR(uip4r) - -#define getUPORTR() \ - ((((uint16_t)WIZCHIP_READ(_UPORTR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_UPORTR_,1))) - -#define getUPORT4R() getUPORTR() - -#define getUIP6R(uip6r) \ - WIZCHIP_READ_BUF(_UIP6R_,(uip6r),16) - -#define getUPORT6R(uport6r) \ - ((((uint16_t)WIZCHIP_READ(_UPORT6R_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_UPORT6R_,1))) - -#define setINTPTMR(intptmr) \ - do{ \ - WIZCHIP_WRITE(_INTPTMR_,(uint8_t)((intptmr) >> 8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_INTPTMR_,1),(uint8_t)(intptmr)); \ - }while(0); - -#define getINTPTMR() \ - ((((uint16_t)WIZCHIP_READ(_INTPTMR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_INTPTMR_,1))) - -#define getPLR() \ - WIZCHIP_READ(_PLR_) - -#define getPFR() \ - WIZCHIP_READ(_PFR_) - -#define getVLTR() \ - ( (((uint32_t)WIZCHIP_READ(_VLTR_)) << 24) + \ - (((uint32_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_VLTR_,1))) << 16) + \ - (((uint32_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_VLTR_,2))) << 16) + \ - (((uint32_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_VLTR_,3))) << 16) ) - -#define getPLTR() \ - ( (((uint32_t)WIZCHIP_READ(_PLTR_)) << 24) + \ - (((uint32_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PLTR_,1))) << 16) + \ - (((uint32_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PLTR_,2))) << 16) + \ - (((uint32_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PLTR_,3))) << 16) ) - -#define getPAR(par) \ - WIZCHIP_READ_BUF(_PAR_, (par), 16) - -#define setICMP6BLKR(icmp6blkr) \ - WIZCHIP_WRITE(_ICMP6BLKR_,(icmp6blkr)) - -#define getICMP6BLKR() \ - WIZCHIP_READ(_ICMP6BLKR_) - -#define setCHPLCKR(chplckr) \ - WIZCHIP_WRITE(_CHPLCKR_, (chplckr)) - -#define getCHPLCKR() \ - ((getSYSR() & SYSR_CHPL) >> 7) - -#define CHIPLOCK() setCHPLCKR(0xFF) -#define CHIPUNLOCK() setCHPLCKR(0xCE) - -#define setNETLCKR(netlckr) \ - WIZCHIP_WRITE(_NETLCKR_, (netlckr)) - -#define getNETLCKR() \ - ((getSYSR() & SYSR_NETL) >> 6) - -#define NETLOCK() setNETLCKR(0xC5) -#define NETUNLOCK() setNETLCKR(0x3A) - -#define setPHYLCKR(phylckr) \ - WIZCHIP_WRITE(_PHYLCKR_,(phylckr)) - -#define getPHYLCKR() \ - ((getSYSR() & SYSR_PHYL) >> 5) - -#define PHYLOCK() setPHYLCKR(0xFF) -#define PHYUNLOCK() setPHYLCKR(0x53) - -#define setRTR(rtr) \ - do{ \ - WIZCHIP_WRITE(_RTR_,(uint8_t)((rtr)>>8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_RTR_,1),(uint8_t)(rtr)); \ - }while(0); - -#define getRTR() \ - ((((uint16_t)WIZCHIP_READ(_RTR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_RTR_,1))) - -#define setRCR(rcr) \ - WIZCHIP_WRITE(_RCR_,(rcr)) - -#define getRCR() \ - WIZCHIP_READ(_RCR_) - -#define setSLRTR(slrtr) \ - do{ \ - WIZCHIP_WRITE(_SLRTR_,(uint8_t)((slrtr)>>8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_SLRTR_,1),(uint8_t)(slrtr)); \ - }while(0); - -#define getSLRTR() \ - ((((uint16_t)WIZCHIP_READ(_SLRTR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_SLRTR_,1))) - -#define setSLRCR(slrcr) \ - WIZCHIP_WRITE(_SLRCR_,(slrcr)) - -#define getSLRCR() \ - WIZCHIP_READ(_SLRCR_) - -#define setSLHOPR(slhopr) \ - WIZCHIP_WRITE(_SLHOPR_,(slhopr)) - -#define getSLHOPR() \ - WIZCHIP_READ(_SLHOPR_) -/** - @} -*/ - - -//////////////////////////////////// -// SOCKETn register I/O function // -//////////////////////////////////// -/** - @addtogroup Socket_register_access_function_W6300 - @{ -*/ -#define setSn_MR(sn,mr) \ - WIZCHIP_WRITE(_Sn_MR_(sn),(mr)) -#define getSn_MR(sn) \ - WIZCHIP_READ(_Sn_MR_(sn)) - -#define setSn_PSR(sn,psr) \ - WIZCHIP_WRITE(_Sn_PSR_(sn),(psr)) -#define getSn_PSR(sn) \ - WIZCHIP_READ(_Sn_PSR_(sn)) - -#define setSn_CR(sn,cr) \ - WIZCHIP_WRITE(_Sn_CR_(sn),(cr)) -#define getSn_CR(sn) \ - WIZCHIP_READ(_Sn_CR_(sn)) - -#define getSn_IR(sn) \ - WIZCHIP_READ(_Sn_IR_(sn)) - -#define setSn_IMR(sn,imr) \ - WIZCHIP_WRITE(_Sn_IMR_(sn),(imr)) -#define getSn_IMR(sn) \ - WIZCHIP_READ(_Sn_IMR_(sn)) - -#define setSn_IRCLR(sn,irclr) \ - WIZCHIP_WRITE(_Sn_IRCLR_(sn),(irclr)) -#define setSn_IR(sn,ir) setSn_IRCLR(sn,(ir)) - -#define getSn_SR(sn) \ - WIZCHIP_READ(_Sn_SR_(sn)) - -#define getSn_ESR(sn) \ - WIZCHIP_READ(_Sn_ESR_(sn)) - -#define setSn_PNR(sn,pnr) \ - WIZCHIP_WRITE(_Sn_PNR_(sn),(pnr)) -#define setSn_NHR(sn,nhr) setSn_PNR(_Sn_PNR_(sn),(nhr)) - -#define getSn_PNR(sn) \ - WIZCHIP_READ(_Sn_PNR_(sn)) -#define getSn_NHR(sn) getSn_PNR(sn) - -#define setSn_TOSR(sn,tosr) \ - WIZCHIP_WRITE(_Sn_TOSR_(sn),(tosr)) -#define getSn_TOSR(sn) \ - WIZCHIP_READ(_Sn_TOSR_(sn)) -#define getSn_TOS(sn) getSn_TOSR(sn) ///< For compatible ioLibrar -#define setSn_TOS(sn,tos) setSn_TOSR(sn,tos) ///< For compatible ioLibrar - - -#define setSn_TTLR(sn,ttlr) \ - WIZCHIP_WRITE(_Sn_TTLR_(sn),(ttlr)) -#define getSn_TTLR(sn) \ - WIZCHIP_READ(_Sn_TTLR_(sn)) -#define setSn_TTL(sn,ttl) setSn_TTLR(sn,ttl) ///< For compatible ioLibrary -#define getSn_TTL(sn) getSn_TTLR(sn) ///< For compatible ioLibrary - -#define setSn_HOPR(sn,hopr) setSn_TTLR(sn),(ttlr)) -#define getSn_HOPR(sn) getSn_TTLR(sn) - -#define setSn_FRGR(sn,frgr) \ - do{ \ - WIZCHIP_WRITE(_Sn_FRGR_(sn),(uint8_t)((frgr)>>8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_FRGR_(sn),1),(uint8_t)(frgr)); \ - }while(0); -#define getSn_FRGR(sn,frgr) \ - ((((uint16_t)WIZCHIP_READ(_Sn_FRGR_(sn))) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_FRGR_(sn),1))) - -#define setSn_MSSR(sn,mssr) \ - do{ \ - WIZCHIP_WRITE(_Sn_MSSR_(sn),(uint8_t)((mssr)>>8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_MSSR_(sn),1),(uint8_t)(mssr)); \ - }while(0); -#define getSn_MSSR(sn) \ - ((((uint16_t)WIZCHIP_READ(_Sn_MSSR_(sn))) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_MSSR_(sn),1))) - -#define setSn_PORTR(sn,portr) \ - do{ \ - WIZCHIP_WRITE(_Sn_PORTR_(sn),(uint8_t)((portr)>>8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_PORTR_(sn),1),(uint8_t)(portr)); \ - }while(0); -#define getSn_PORTR(sn) \ - ((((uint16_t)WIZCHIP_READ(_Sn_PORTR_(sn))) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_PORTR_(sn),1))) - -#define setSn_DHAR(sn,dhar) \ - WIZCHIP_WRITE_BUF(_Sn_DHAR_(sn),(dhar),6) -#define getSn_DHAR(sn,dhar) \ - WIZCHIP_READ_BUF(_Sn_DHAR_(sn),(dhar),6) - -#define setSn_DIPR(sn,dipr) \ - WIZCHIP_WRITE_BUF(_Sn_DIPR_(sn),(dipr),4) -#define getSn_DIPR(sn,dipr) \ - WIZCHIP_READ_BUF(_Sn_DIPR_(sn),(dipr),4) - -#define setSn_DIP4R(sn,dipr) setSn_DIPR(sn,(dipr)) -#define getSn_DIP4R(sn,dipr) getSn_DIPR(sn,(dipr)) - -#define setSn_DIP6R(sn,dip6r) \ - WIZCHIP_WRITE_BUF(_Sn_DIP6R_(sn),(dip6r),16) -#define getSn_DIP6R(sn,dip6r) \ - WIZCHIP_READ_BUF(_Sn_DIP6R_(sn),(dip6r),16) - -#define setSn_DPORTR(sn,dportr) \ - do{ \ - WIZCHIP_WRITE(_Sn_DPORTR_(sn),(uint8_t)((dportr)>>8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_DPORTR_(sn),1),(uint8_t)(dportr)); \ - }while(0); - - -#define getSn_DPORTR(sn) \ - ((((uint16_t)WIZCHIP_READ(_Sn_DPORTR_(sn))) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_DPORTR_(sn),1))) - -#define getSn_DPORT(sn) getSn_DPORTR(sn) -#define setSn_DPORT(sn,dportr) setSn_DPORTR(sn,dportr) - - -#define setSn_MR2(sn,mr2) \ - WIZCHIP_WRITE(_Sn_MR2_(sn),(mr2)) -#define getSn_MR2(sn) \ - WIZCHIP_READ(_Sn_MR2_(sn)) - -#define setSn_RTR(sn,rtr) \ - do{ \ - WIZCHIP_WRITE(_Sn_RTR_(sn),(uint8_t)((rtr)>>8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_RTR_(sn),1),(uint8_t)(rtr)); \ - }while(0); -#define getSn_RTR(sn) \ - ((((uint16_t)WIZCHIP_READ(_Sn_RTR_(sn))) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_RTR_(sn),1))) - -#define setSn_RCR(sn,rcr) \ - WIZCHIP_WRITE(_Sn_RCR_(sn),(rcr)) -#define getSn_RCR(sn) \ - WIZCHIP_READ(_Sn_RCR_(sn)) - -#define setSn_KPALVTR(sn,kpalvtr) \ - WIZCHIP_WRITE(_Sn_KPALVTR_(sn),(kpalvtr)) -#define getSn_KPALVTR(sn) \ - WIZCHIP_READ(_Sn_KPALVTR_(sn)) - -#define setSn_TX_BSR(sn, tmsr) \ - WIZCHIP_WRITE(_Sn_TX_BSR_(sn),(tmsr)) -#define setSn_TXBUF_SIZE(sn, tmsr) setSn_TX_BSR(sn,(tmsr)) - -#define getSn_TX_BSR(sn) \ - WIZCHIP_READ(_Sn_TX_BSR_(sn)) -#define getSn_TXBUF_SIZE(sn) getSn_TX_BSR(sn) - -#define getSn_TxMAX(sn) \ - (getSn_TX_BSR(sn) << 10) +inline uint8_t getRTL() { return WIZCHIP_READ(_RTL_); } +inline uint16_t getCIDR() { return (((uint16_t)WIZCHIP_READ(_CIDR_) | (((WIZCHIP_READ(_RTL_)) & 0x0F) << 1)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_CIDR_, 1)); } +inline uint16_t getVER() { return (((uint16_t)WIZCHIP_READ(_VER_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_VER_, 1)); } +inline uint8_t getSYSR() { return WIZCHIP_READ(_SYSR_); } +inline uint8_t getSYCR0() { return WIZCHIP_READ(_SYCR0_); } +inline void setSYCR0(uint8_t v) { WIZCHIP_WRITE(_SYCR0_, v); } +inline uint8_t getSYCR1() { return WIZCHIP_READ(_SYCR1_); } +inline void setSYCR1(uint8_t v) { WIZCHIP_WRITE(_SYCR1_, v); } +inline uint16_t getTCNTR() { return (((uint16_t)WIZCHIP_READ(_TCNTR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_TCNTR_, 1)); } +inline void setTCNTRCLR(uint8_t v) { WIZCHIP_WRITE(_TCNTRCLR_, v); } +inline uint8_t getIR() { return WIZCHIP_READ(_IR_); } +inline uint8_t getSIR() { return WIZCHIP_READ(_SIR_); } +inline uint8_t getSLIR() { return WIZCHIP_READ(_SLIR_); } +inline void setIMR(uint8_t v) { WIZCHIP_WRITE(_IMR_, v); } +inline uint8_t getIMR() { return WIZCHIP_READ(_IMR_); } +inline void setIRCLR(uint8_t v) { WIZCHIP_WRITE(_IRCLR_, v); } +inline void setIR(uint8_t v) { setIRCLR(v); } +inline void setSIMR(uint8_t v) { WIZCHIP_WRITE(_SIMR_, v); } +inline uint8_t getSIMR() { return WIZCHIP_READ(_SIMR_); } +inline void setSLIMR(uint8_t v) { WIZCHIP_WRITE(_SLIMR_, v); } +inline uint8_t getSLIMR() { return WIZCHIP_READ(_SLIMR_); } +inline void setSLIRCLR(uint8_t v) { WIZCHIP_WRITE(_SLIRCLR_, v); } +inline void setSLIR(uint8_t v) { setSLIRCLR(v); } +inline void setSLPSR(uint8_t v) { WIZCHIP_WRITE(_SLPSR_, v); } +inline uint8_t getSLPSR() { return WIZCHIP_READ(_SLPSR_); } +inline void setSLCR(uint8_t v) { WIZCHIP_WRITE(_SLCR_, v); } +inline uint8_t getSLCR() { return WIZCHIP_READ(_SLCR_); } +inline uint8_t getPHYSR() { return WIZCHIP_READ(_PHYSR_); } +inline void setPHYRAR(uint8_t v) { WIZCHIP_WRITE(_PHYRAR_, v); } +inline uint8_t getPHYRAR() { return WIZCHIP_READ(_PHYRAR_); } +inline void setPHYDIR(uint16_t v) { + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_PHYDIR_, 1), (uint8_t)(v >> 8)); + WIZCHIP_WRITE(_PHYDIR_, (uint8_t)v); +} +inline uint16_t getPHYDOR() { return (((uint16_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PHYDOR_, 1))) << 8) + WIZCHIP_READ(_PHYDOR_); } +inline void setPHYACR(uint8_t v) { WIZCHIP_WRITE(_PHYACR_, v); } +inline uint8_t getPHYACR() { return WIZCHIP_READ(_PHYACR_); } +inline void setPHYDIVR(uint8_t v) { WIZCHIP_WRITE(_PHYDIVR_, v); } +inline uint8_t getPHYDIVR() { return WIZCHIP_READ(_PHYDIVR_); } +inline void setPHYCR0(uint8_t v) { WIZCHIP_WRITE(_PHYCR0_, v); } +inline void setPHYCR1(uint8_t v) { WIZCHIP_WRITE(_PHYCR1_, v); } +inline uint8_t getPHYCR1() { return WIZCHIP_READ(_PHYCR1_); } +inline void setNET4MR(uint8_t v) { WIZCHIP_WRITE(_NET4MR_, v); } +inline void setNET6MR(uint8_t v) { WIZCHIP_WRITE(_NET6MR_, v); } +inline void setNETMR(uint8_t v) { WIZCHIP_WRITE(_NETMR_, v); } +inline void setNETMR2(uint8_t v) { WIZCHIP_WRITE(_NETMR2_, v); } +inline uint8_t getNET4MR() { return WIZCHIP_READ(_NET4MR_); } +inline uint8_t getNET6MR() { return WIZCHIP_READ(_NET6MR_); } +inline uint8_t getNETMR() { return WIZCHIP_READ(_NETMR_); } +inline uint8_t getNETMR2() { return WIZCHIP_READ(_NETMR2_); } +inline void setPTMR(uint8_t v) { WIZCHIP_WRITE(_PTMR_, v); } +inline uint8_t getPTMR() { return WIZCHIP_READ(_PTMR_); } +inline void setPMNR(uint8_t v) { WIZCHIP_WRITE(_PMNR_, v); } +inline uint8_t getPMNR() { return WIZCHIP_READ(_PMNR_); } +inline void setPHAR(uint8_t* v) { WIZCHIP_WRITE_BUF(_PHAR_, v, 6); } +inline void getPHAR(uint8_t* v) { WIZCHIP_READ_BUF(_PHAR_, v, 6); } +inline void setPSIDR(uint16_t v) { + WIZCHIP_WRITE(_PSIDR_, (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_PSIDR_, 1), (uint8_t)v); +} +inline uint16_t getPSIDR() { return (((uint16_t)WIZCHIP_READ(_PSIDR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PSIDR_, 1)); } +inline void setPMRUR(uint16_t v) { + WIZCHIP_WRITE(_PMRUR_, (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_PMRUR_, 1), (uint8_t)v); +} +inline uint16_t getPMRUR() { return (((uint16_t)WIZCHIP_READ(_PMRUR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PMRUR_, 1)); } +inline void setSHAR(uint8_t* v) { WIZCHIP_WRITE_BUF(_SHAR_, v, 6); } +inline void getSHAR(uint8_t* v) { WIZCHIP_READ_BUF(_SHAR_, v, 6); } +inline void setGAR(uint8_t* v) { WIZCHIP_WRITE_BUF(_GAR_, v, 4); } +inline void getGAR(uint8_t* v) { WIZCHIP_READ_BUF(_GAR_, v, 4); } +inline void setGA4R(uint8_t* v) { setGAR(v); } +inline void getGA4R(uint8_t* v) { getGAR(v); } +inline void setSUBR(uint8_t* v) { WIZCHIP_WRITE_BUF(_SUBR_, v, 4); } +inline void getSUBR(uint8_t* v) { WIZCHIP_READ_BUF(_SUBR_, v, 4); } +inline void setSUB4R(uint8_t* v) { setSUBR(v); } +inline void getSUB4R(uint8_t* v) { getSUBR(v); } +inline void setSIPR(uint8_t* v) { WIZCHIP_WRITE_BUF(_SIPR_, v, 4); } +inline void getSIPR(uint8_t* v) { WIZCHIP_READ_BUF(_SIPR_, v, 4); } +inline void setLLAR(uint8_t* v) { WIZCHIP_WRITE_BUF(_LLAR_, v, 16); } +inline void getLLAR(uint8_t* v) { WIZCHIP_READ_BUF(_LLAR_, v, 16); } +inline void setGUAR(uint8_t* v) { WIZCHIP_WRITE_BUF(_GUAR_, v, 16); } +inline void getGUAR(uint8_t* v) { WIZCHIP_READ_BUF(_GUAR_, v, 16); } +inline void setSUB6R(uint8_t* v) { WIZCHIP_WRITE_BUF(_SUB6R_, v, 16); } +inline void getSUB6R(uint8_t* v) { WIZCHIP_READ_BUF(_SUB6R_, v, 16); } +inline void setGA6R(uint8_t* v) { WIZCHIP_WRITE_BUF(_GA6R_, v, 16); } +inline void getGA6R(uint8_t* v) { WIZCHIP_READ_BUF(_GA6R_, v, 16); } +inline void setSLDIPR(uint8_t* v) { WIZCHIP_WRITE_BUF(_SLDIPR_, v, 4); } +inline void setSLDIP4R(uint8_t* v) { setSLDIPR(v); } +inline void getSLDIPR(uint8_t* v) { WIZCHIP_READ_BUF(_SLDIPR_, v, 4); } +inline void getSLDIP4R(uint8_t* v) { getSLDIPR(v); } +inline void setSLDIP6R(uint8_t* v) { WIZCHIP_WRITE_BUF(_SLDIP6R_, v, 16); } +inline void getSLDIP6R(uint8_t* v) { WIZCHIP_READ_BUF(_SLDIP6R_, v, 16); } +inline void getSLDHAR(uint8_t* v) { WIZCHIP_READ_BUF(_SLDHAR_, v, 6); } +inline void setPINGIDR(uint16_t v) { + WIZCHIP_WRITE(_PINGIDR_, (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_PINGIDR_, 1), (uint8_t)v); +} +inline uint16_t getPINGIDR() { return ((uint16_t)(WIZCHIP_READ(_PINGIDR_) << 8)) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PINGIDR_, 1)); } +inline void setPINGSEQR(uint16_t v) { + WIZCHIP_WRITE(_PINGSEQR_, (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_PINGSEQR_, 1), (uint8_t)v); +} +inline uint16_t getPINGSEQR() { return ((uint16_t)(WIZCHIP_READ(_PINGSEQR_) << 8)) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PINGSEQR_, 1)); } +inline void getUIPR(uint8_t* v) { WIZCHIP_READ_BUF(_UIPR_, v, 4); } +inline void getUIP4R(uint8_t* v) { getUIPR(v); } +inline uint16_t getUPORTR() { return (((uint16_t)WIZCHIP_READ(_UPORTR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_UPORTR_, 1)); } +inline uint16_t getUPORT4R() { return getUPORTR(); } +inline void getUIP6R(uint8_t* v) { WIZCHIP_READ_BUF(_UIP6R_, v, 16); } +inline uint16_t getUPORT6R() { return (((uint16_t)WIZCHIP_READ(_UPORT6R_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_UPORT6R_, 1)); } +inline void setINTPTMR(uint16_t v) { + WIZCHIP_WRITE(_INTPTMR_, (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_INTPTMR_, 1), (uint8_t)v); +} +inline uint16_t getINTPTMR() { return (((uint16_t)WIZCHIP_READ(_INTPTMR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_INTPTMR_, 1)); } +inline uint8_t getPLR() { return WIZCHIP_READ(_PLR_); } +inline uint8_t getPFR() { return WIZCHIP_READ(_PFR_); } +inline uint32_t getVLTR() { + return (((uint32_t)WIZCHIP_READ(_VLTR_)) << 24) + + (((uint32_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_VLTR_, 1))) << 16) + + (((uint32_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_VLTR_, 2))) << 8) + + ((uint32_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_VLTR_, 3))); +} +inline uint32_t getPLTR() { + return (((uint32_t)WIZCHIP_READ(_PLTR_)) << 24) + + (((uint32_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PLTR_, 1))) << 16) + + (((uint32_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PLTR_, 2))) << 8) + + ((uint32_t)WIZCHIP_READ(WIZCHIP_OFFSET_INC(_PLTR_, 3))); +} +inline void getPAR(uint8_t* v) { WIZCHIP_READ_BUF(_PAR_, v, 16); } +inline void setICMP6BLKR(uint8_t v) { WIZCHIP_WRITE(_ICMP6BLKR_, v); } +inline uint8_t getICMP6BLKR() { return WIZCHIP_READ(_ICMP6BLKR_); } +inline void setCHPLCKR(uint8_t v) { WIZCHIP_WRITE(_CHPLCKR_, v); } +inline uint8_t getCHPLCKR() { return (getSYSR() & SYSR_CHPL) >> 7; } +inline void CHIPLOCK() { setCHPLCKR(0xFF); } +inline void CHIPUNLOCK() { setCHPLCKR(0xCE); } +inline void setNETLCKR(uint8_t v) { WIZCHIP_WRITE(_NETLCKR_, v); } +inline uint8_t getNETLCKR() { return (getSYSR() & SYSR_NETL) >> 6; } +inline void NETLOCK() { setNETLCKR(0xC5); } +inline void NETUNLOCK() { setNETLCKR(0x3A); } +inline void setPHYLCKR(uint8_t v) { WIZCHIP_WRITE(_PHYLCKR_, v); } +inline uint8_t getPHYLCKR() { return (getSYSR() & SYSR_PHYL) >> 5; } +inline void PHYLOCK() { setPHYLCKR(0xFF); } +inline void PHYUNLOCK() { setPHYLCKR(0x53); } +inline void setRTR(uint16_t v) { + WIZCHIP_WRITE(_RTR_, (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_RTR_, 1), (uint8_t)v); +} +inline uint16_t getRTR() { return (((uint16_t)WIZCHIP_READ(_RTR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_RTR_, 1)); } +inline void setRCR(uint8_t v) { WIZCHIP_WRITE(_RCR_, v); } +inline uint8_t getRCR() { return WIZCHIP_READ(_RCR_); } +inline void setSLRTR(uint16_t v) { + WIZCHIP_WRITE(_SLRTR_, (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_SLRTR_, 1), (uint8_t)v); +} +inline uint16_t getSLRTR() { return (((uint16_t)WIZCHIP_READ(_SLRTR_)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_SLRTR_, 1)); } +inline void setSLRCR(uint8_t v) { WIZCHIP_WRITE(_SLRCR_, v); } +inline uint8_t getSLRCR() { return WIZCHIP_READ(_SLRCR_); } +inline void setSLHOPR(uint8_t v) { WIZCHIP_WRITE(_SLHOPR_, v); } +inline uint8_t getSLHOPR() { return WIZCHIP_READ(_SLHOPR_); } + +inline void setSn_MR(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_MR_(sn), v); } +inline uint8_t getSn_MR(uint8_t sn) { return WIZCHIP_READ(_Sn_MR_(sn)); } +inline void setSn_PSR(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_PSR_(sn), v); } +inline uint8_t getSn_PSR(uint8_t sn) { return WIZCHIP_READ(_Sn_PSR_(sn)); } +inline void setSn_CR(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_CR_(sn), v); } +inline uint8_t getSn_CR(uint8_t sn) { return WIZCHIP_READ(_Sn_CR_(sn)); } +inline uint8_t getSn_IR(uint8_t sn) { return WIZCHIP_READ(_Sn_IR_(sn)); } +inline void setSn_IMR(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_IMR_(sn), v); } +inline uint8_t getSn_IMR(uint8_t sn) { return WIZCHIP_READ(_Sn_IMR_(sn)); } +inline void setSn_IRCLR(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_IRCLR_(sn), v); } +inline void setSn_IR(uint8_t sn, uint8_t v) { setSn_IRCLR(sn, v); } +inline uint8_t getSn_SR(uint8_t sn) { return WIZCHIP_READ(_Sn_SR_(sn)); } +inline uint8_t getSn_ESR(uint8_t sn) { return WIZCHIP_READ(_Sn_ESR_(sn)); } +inline void setSn_PNR(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_PNR_(sn), v); } +inline void setSn_NHR(uint8_t sn, uint8_t v) { setSn_PNR(sn, v); } +inline uint8_t getSn_PNR(uint8_t sn) { return WIZCHIP_READ(_Sn_PNR_(sn)); } +inline uint8_t getSn_NHR(uint8_t sn) { return getSn_PNR(sn); } +inline void setSn_TOSR(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_TOSR_(sn), v); } +inline uint8_t getSn_TOSR(uint8_t sn) { return WIZCHIP_READ(_Sn_TOSR_(sn)); } +inline uint8_t getSn_TOS(uint8_t sn) { return getSn_TOSR(sn); } +inline void setSn_TOS(uint8_t sn, uint8_t v) { setSn_TOSR(sn, v); } +inline void setSn_TTLR(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_TTLR_(sn), v); } +inline uint8_t getSn_TTLR(uint8_t sn) { return WIZCHIP_READ(_Sn_TTLR_(sn)); } +inline void setSn_TTL(uint8_t sn, uint8_t v) { setSn_TTLR(sn, v); } +inline uint8_t getSn_TTL(uint8_t sn) { return getSn_TTLR(sn); } +inline void setSn_HOPR(uint8_t sn, uint8_t v) { setSn_TTLR(sn, v); } +inline uint8_t getSn_HOPR(uint8_t sn) { return getSn_TTLR(sn); } +inline void setSn_FRGR(uint8_t sn, uint16_t v) { + WIZCHIP_WRITE(_Sn_FRGR_(sn), (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_FRGR_(sn), 1), (uint8_t)v); +} +inline uint16_t getSn_FRGR(uint8_t sn) { return (((uint16_t)WIZCHIP_READ(_Sn_FRGR_(sn))) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_FRGR_(sn), 1)); } +inline void setSn_MSSR(uint8_t sn, uint16_t v) { + WIZCHIP_WRITE(_Sn_MSSR_(sn), (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_MSSR_(sn), 1), (uint8_t)v); +} +inline uint16_t getSn_MSSR(uint8_t sn) { return (((uint16_t)WIZCHIP_READ(_Sn_MSSR_(sn))) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_MSSR_(sn), 1)); } +inline void setSn_PORTR(uint8_t sn, uint16_t v) { + WIZCHIP_WRITE(_Sn_PORTR_(sn), (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_PORTR_(sn), 1), (uint8_t)v); +} +inline uint16_t getSn_PORTR(uint8_t sn) { return (((uint16_t)WIZCHIP_READ(_Sn_PORTR_(sn))) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_PORTR_(sn), 1)); } +inline void setSn_DHAR(uint8_t sn, uint8_t* v) { WIZCHIP_WRITE_BUF(_Sn_DHAR_(sn), v, 6); } +inline void getSn_DHAR(uint8_t sn, uint8_t* v) { WIZCHIP_READ_BUF(_Sn_DHAR_(sn), v, 6); } +inline void setSn_DIPR(uint8_t sn, uint8_t* v) { WIZCHIP_WRITE_BUF(_Sn_DIPR_(sn), v, 4); } +inline void getSn_DIPR(uint8_t sn, uint8_t* v) { WIZCHIP_READ_BUF(_Sn_DIPR_(sn), v, 4); } +inline void setSn_DIP4R(uint8_t sn, uint8_t* v) { setSn_DIPR(sn, v); } +inline void getSn_DIP4R(uint8_t sn, uint8_t* v) { getSn_DIPR(sn, v); } +inline void setSn_DIP6R(uint8_t sn, uint8_t* v) { WIZCHIP_WRITE_BUF(_Sn_DIP6R_(sn), v, 16); } +inline void getSn_DIP6R(uint8_t sn, uint8_t* v) { WIZCHIP_READ_BUF(_Sn_DIP6R_(sn), v, 16); } +inline void setSn_DPORTR(uint8_t sn, uint16_t v) { + WIZCHIP_WRITE(_Sn_DPORTR_(sn), (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_DPORTR_(sn), 1), (uint8_t)v); +} +inline uint16_t getSn_DPORTR(uint8_t sn) { return (((uint16_t)WIZCHIP_READ(_Sn_DPORTR_(sn))) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_DPORTR_(sn), 1)); } +inline uint16_t getSn_DPORT(uint8_t sn) { return getSn_DPORTR(sn); } +inline void setSn_DPORT(uint8_t sn, uint16_t v) { setSn_DPORTR(sn, v); } +inline void setSn_MR2(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_MR2_(sn), v); } +inline uint8_t getSn_MR2(uint8_t sn) { return WIZCHIP_READ(_Sn_MR2_(sn)); } +inline void setSn_RTR(uint8_t sn, uint16_t v) { + WIZCHIP_WRITE(_Sn_RTR_(sn), (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_RTR_(sn), 1), (uint8_t)v); +} +inline uint16_t getSn_RTR(uint8_t sn) { return (((uint16_t)WIZCHIP_READ(_Sn_RTR_(sn))) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_RTR_(sn), 1)); } +inline void setSn_RCR(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_RCR_(sn), v); } +inline uint8_t getSn_RCR(uint8_t sn) { return WIZCHIP_READ(_Sn_RCR_(sn)); } +inline void setSn_KPALVTR(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_KPALVTR_(sn), v); } +inline uint8_t getSn_KPALVTR(uint8_t sn) { return WIZCHIP_READ(_Sn_KPALVTR_(sn)); } +inline void setSn_TX_BSR(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_TX_BSR_(sn), v); } +inline void setSn_TXBUF_SIZE(uint8_t sn, uint8_t v) { setSn_TX_BSR(sn, v); } +inline uint8_t getSn_TX_BSR(uint8_t sn) { return WIZCHIP_READ(_Sn_TX_BSR_(sn)); } +inline uint8_t getSn_TXBUF_SIZE(uint8_t sn) { return getSn_TX_BSR(sn); } +inline uint16_t getSn_TxMAX(uint8_t sn) { return getSn_TX_BSR(sn) << 10; } uint16_t getSn_TX_FSR(uint8_t sn); -#define getSn_TX_RD(sn) \ - ((((uint16_t)WIZCHIP_READ(_Sn_TX_RD_(sn))) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_TX_RD_(sn),1))) - -#define setSn_TX_WR(sn,txwr) \ - do{ \ - WIZCHIP_WRITE(_Sn_TX_WR_(sn), (uint8_t)((txwr)>>8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_TX_WR_(sn),1), (uint8_t)(txwr)); \ - }while(0); -#define getSn_TX_WR(sn) \ - (((uint16_t)WIZCHIP_READ(_Sn_TX_WR_(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_TX_WR_(sn),1))) - -#define setSn_RX_BSR(sn,rmsr) \ - WIZCHIP_WRITE(_Sn_RX_BSR_(sn),(rmsr)) -#define setSn_RXBUF_SIZE(sn,rmsr) setSn_RX_BSR(sn,(rmsr)) - -#define getSn_RX_BSR(sn) \ - WIZCHIP_READ(_Sn_RX_BSR_(sn)) -#define getSn_RXBUF_SIZE(sn) getSn_RX_BSR(sn) - -#define getSn_RxMAX(sn) \ - (getSn_RX_BSR(sn) <<10) +inline uint16_t getSn_TX_RD(uint8_t sn) { return (((uint16_t)WIZCHIP_READ(_Sn_TX_RD_(sn))) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_TX_RD_(sn), 1)); } +inline void setSn_TX_WR(uint8_t sn, uint16_t v) { + WIZCHIP_WRITE(_Sn_TX_WR_(sn), (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_TX_WR_(sn), 1), (uint8_t)v); +} +inline uint16_t getSn_TX_WR(uint8_t sn) { return ((uint16_t)WIZCHIP_READ(_Sn_TX_WR_(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_TX_WR_(sn), 1)); } +inline void setSn_RX_BSR(uint8_t sn, uint8_t v) { WIZCHIP_WRITE(_Sn_RX_BSR_(sn), v); } +inline void setSn_RXBUF_SIZE(uint8_t sn, uint8_t v) { setSn_RX_BSR(sn, v); } +inline uint8_t getSn_RX_BSR(uint8_t sn) { return WIZCHIP_READ(_Sn_RX_BSR_(sn)); } +inline uint8_t getSn_RXBUF_SIZE(uint8_t sn) { return getSn_RX_BSR(sn); } +inline uint16_t getSn_RxMAX(uint8_t sn) { return getSn_RX_BSR(sn) << 10; } uint16_t getSn_RX_RSR(uint8_t s); -#define setSn_RX_RD(sn,rxrd) \ - do{ \ - WIZCHIP_WRITE(_Sn_RX_RD_(sn), (uint8_t)((rxrd)>>8)); \ - WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_RX_RD_(sn),1), (uint8_t)(rxrd)) ; \ - }while(0); - -#define getSn_RX_RD(sn) \ - (((uint16_t)WIZCHIP_READ(_Sn_RX_RD_(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_RX_RD_(sn),1))) - -#define getSn_RX_WR(sn) \ - (((uint16_t)WIZCHIP_READ(_Sn_RX_WR_(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_RX_WR_(sn),1))) +inline void setSn_RX_RD(uint8_t sn, uint16_t v) { + WIZCHIP_WRITE(_Sn_RX_RD_(sn), (uint8_t)(v >> 8)); + WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_Sn_RX_RD_(sn), 1), (uint8_t)v); +} +inline uint16_t getSn_RX_RD(uint8_t sn) { return ((uint16_t)WIZCHIP_READ(_Sn_RX_RD_(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_RX_RD_(sn), 1)); } +inline uint16_t getSn_RX_WR(uint8_t sn) { return ((uint16_t)WIZCHIP_READ(_Sn_RX_WR_(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_Sn_RX_WR_(sn), 1)); } void wiz_send_data(uint8_t sn, uint8_t *wizdata, uint16_t len); void wiz_recv_data(uint8_t sn, uint8_t *wizdata, uint16_t len); void wiz_recv_ignore(uint8_t sn, uint16_t len); void wiz_delay_ms(uint32_t ms); -#if (_PHY_IO_MODE_ == _PHY_IO_MODE_MII_) void wiz_mdio_write(uint8_t phyregaddr, uint16_t var); uint16_t wiz_mdio_read(uint8_t phyregaddr); -#endif diff --git a/w6300/wizchip_conf.h b/w6300/wizchip_conf.h index f329459..0e410ad 100644 --- a/w6300/wizchip_conf.h +++ b/w6300/wizchip_conf.h @@ -1,14 +1,13 @@ #pragma once #include -#define W6300 6300 -#define _WIZCHIP_ W6300 +constexpr int _WIZCHIP_ = 6300; -#define _PHY_IO_MODE_PHYCR_ 0x0000 -#define _PHY_IO_MODE_MII_ 0x0010 -#define _PHY_IO_MODE_ _PHY_IO_MODE_MII_ +constexpr uint16_t _PHY_IO_MODE_PHYCR_ = 0x0000; +constexpr uint16_t _PHY_IO_MODE_MII_ = 0x0010; +constexpr uint16_t _PHY_IO_MODE_ = _PHY_IO_MODE_MII_; -#define _WIZCHIP_QSPI_MODE_ (0x02 << 6) +constexpr uint8_t _WIZCHIP_QSPI_MODE_ = 0x02 << 6; using iodata_t = uint8_t; using datasize_t = int16_t; @@ -16,7 +15,7 @@ using datasize_t = int16_t; #include "w6300.h" constexpr int WIZCHIP_SOCK_NUM = 8; -#define _WIZCHIP_SOCK_NUM_ WIZCHIP_SOCK_NUM +constexpr int _WIZCHIP_SOCK_NUM_ = WIZCHIP_SOCK_NUM; enum ctlwizchip_type { CW_SYS_LOCK, CW_SYS_UNLOCK, CW_GET_SYSLOCK,