ethernet: move netif glue && add ref counter

1. move netif glue into single file
2. add reference counter for Ethernet driver


* Original commit: espressif/esp-idf@c3ee156df0
This commit is contained in:
morris
2019-11-26 17:48:38 +08:00
committed by suren-gabrielyan-espressif
parent d20666f3a0
commit 80ce63d73e

View File

@ -134,7 +134,7 @@ static void start(void)
esp_netif_config_t netif_config = ESP_NETIF_DEFAULT_WIFI_STA(); esp_netif_config_t netif_config = ESP_NETIF_DEFAULT_WIFI_STA();
esp_netif_t* netif = esp_netif_new(&netif_config); esp_netif_t *netif = esp_netif_new(&netif_config);
assert(netif); assert(netif);
@ -212,15 +212,12 @@ static esp_eth_phy_t *s_phy = NULL;
static void start(void) static void start(void)
{ {
esp_netif_config_t netif_config = ESP_NETIF_DEFAULT_ETH(); esp_netif_config_t netif_config = ESP_NETIF_DEFAULT_ETH();
esp_netif_t *netif = esp_netif_new(&netif_config);
esp_netif_t* netif = esp_netif_new(&netif_config);
assert(netif); assert(netif);
ESP_ERROR_CHECK(esp_eth_set_default_handlers(netif));
s_example_esp_netif = netif; s_example_esp_netif = netif;
// Set default handlers to process TCP/IP stuffs
ESP_ERROR_CHECK(esp_eth_set_default_handlers(netif));
// Register user defined event handers
ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_ETH_GOT_IP, &on_got_ip, NULL)); ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_ETH_GOT_IP, &on_got_ip, NULL));
#ifdef CONFIG_EXAMPLE_CONNECT_IPV6 #ifdef CONFIG_EXAMPLE_CONNECT_IPV6
ESP_ERROR_CHECK(esp_event_handler_register(ETH_EVENT, ETHERNET_EVENT_CONNECTED, &on_eth_event, netif)); ESP_ERROR_CHECK(esp_event_handler_register(ETH_EVENT, ETHERNET_EVENT_CONNECTED, &on_eth_event, netif));
@ -274,11 +271,12 @@ static void start(void)
s_phy = esp_eth_phy_new_dp83848(&phy_config); s_phy = esp_eth_phy_new_dp83848(&phy_config);
#endif #endif
// Install Ethernet driver
esp_eth_config_t config = ETH_DEFAULT_CONFIG(s_mac, s_phy); esp_eth_config_t config = ETH_DEFAULT_CONFIG(s_mac, s_phy);
ESP_ERROR_CHECK(esp_eth_driver_install(&config, &s_eth_handle)); ESP_ERROR_CHECK(esp_eth_driver_install(&config, &s_eth_handle));
// combine driver with netif
esp_netif_attach(netif, s_eth_handle); esp_netif_attach(netif, esp_eth_new_netif_glue(s_eth_handle));
esp_eth_start(s_eth_handle);
s_connection_name = "Ethernet"; s_connection_name = "Ethernet";
} }