static int eth_cmd_control(int argc, char **argv) { int nerrors = arg_parse(argc, argv, (void **)ð_control_args); if (nerrors != 0) { arg_print_errors(stderr, eth_control_args.end, argv[0]); return 1; } if (!strncmp(eth_control_args.control->sval[0], "start", 5) && !started) { ESP_ERROR_CHECK(esp_eth_enable()); started = true; } if (!strncmp(eth_control_args.control->sval[0], "stop", 4) && started) { ESP_ERROR_CHECK(esp_eth_disable()); started = false; } if (!strncmp(eth_control_args.control->sval[0], "info", 4)) { uint8_t mac_addr[6]; esp_eth_get_mac(mac_addr); printf("HW ADDR: " MACSTR "\r\n", MAC2STR(mac_addr)); tcpip_adapter_get_ip_info(ESP_IF_ETH, &ip); printf("ETHIP: " IPSTR "\r\n", IP2STR(&ip.ip)); printf("ETHMASK: " IPSTR "\r\n", IP2STR(&ip.netmask)); printf("ETHGW: " IPSTR "\r\n", IP2STR(&ip.gw)); } return 0; }
void app_main() { esp_err_t ret = ESP_OK; tcpip_adapter_init(); esp_event_loop_init(NULL, NULL); eth_config_t config = DEFAULT_ETHERNET_PHY_CONFIG; /* Set the PHY address in the example configuration */ config.phy_addr = CONFIG_PHY_ADDRESS; config.gpio_config = eth_gpio_config_rmii; config.tcpip_input = tcpip_adapter_eth_input; config.clock_mode = CONFIG_PHY_CLOCK_MODE; #ifdef CONFIG_PHY_USE_POWER_PIN /* Replace the default 'power enable' function with an example-specific one that toggles a power GPIO. */ config.phy_power_enable = phy_device_power_enable_via_gpio; #endif ret = esp_eth_init(&config); if(ret == ESP_OK) { esp_eth_enable(); xTaskCreate(eth_task, "eth_task", 2048, NULL, (tskIDLE_PRIORITY + 2), NULL); } }