int main(void) { int ret; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2 delay_init(162);//延时初始化 tim3_init(162);//时钟初始化 sram_init();//SRAM初始化 ads1271_init(0);//ad初始化 参数为0 高速模式 led_init();//LED初始化 read_device_config();//读取flash中设备配置 current_source_init();//恒流源初始化 ethernet_init();//网络初始化 tcp_sever();//建立tcp服务器 while(!is_con());//等待连接 led_link(1);//开启连接灯 while(1) { //INT处理部分 ret = deal_int(); if((ret == NET_ERR) || (ret == NET_DISCONNECT)) sys_restart();//重启 //PRE处理部分 ret = deal_pre(); if((ret == NET_ERR) || (ret == NET_DISCONNECT)) sys_restart();//重启 //DIV处理 ret = deal_div(); if((ret == NET_ERR) || (ret == NET_DISCONNECT)) sys_restart();//重启 //STA处理 ret = deal_sta(); if((ret == NET_ERR) || (ret == NET_DISCONNECT)) sys_restart();//重启 //数据传输 while(1) { ret = deal_data(); if((ret == NET_ERR) || (ret == NET_DISCONNECT)) sys_restart();//重启 } } }
static int mv88x201x_get_link_status(struct cphy *cphy, int *link_ok, int *speed, int *duplex, int *fc) { u32 val = 0; if (link_ok) { /* Read link status. */ cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_STAT1, &val); val &= MDIO_STAT1_LSTATUS; *link_ok = (val == MDIO_STAT1_LSTATUS); /* Turn on/off Link LED */ led_link(cphy, *link_ok); } if (speed) *speed = SPEED_10000; if (duplex) *duplex = DUPLEX_FULL; if (fc) *fc = PAUSE_RX | PAUSE_TX; return 0; }
static int mv88x201x_get_link_status(struct cphy *cphy, int *link_ok, int *speed, int *duplex, int *fc) { u32 val = 0; #define LINK_STATUS_BIT 0x4 if (link_ok) { /* Read link status. */ mdio_read(cphy, 0x1, 0x1, &val); val &= LINK_STATUS_BIT; *link_ok = (val == LINK_STATUS_BIT); /* Turn on/off Link LED */ led_link(cphy, *link_ok); } if (speed) *speed = SPEED_10000; if (duplex) *duplex = DUPLEX_FULL; if (fc) *fc = PAUSE_RX | PAUSE_TX; return 0; }