默认的 esp_eth_update_input_path() 处理函数是什么?

默认情况下,esp-idf 或 Arduino 框架使用

eth_input_to_netif.c
static esp_err_t eth_input_to_netif(esp_eth_handle_t eth_handle, uint8_t *buffer, uint32_t length, void *priv);

components/esp_eth/src/esp_eth_netif_glue.c 中的函数处理传入的以太网数据包,该函数(除了调用导出函数esp_netif_receive()):

eth_input_to_netif_impl.c
static esp_err_t eth_input_to_netif(esp_eth_handle_t eth_handle, uint8_t *buffer, uint32_t length, void *priv)
{
    return esp_netif_receive((esp_netif_t *)priv, buffer, length, NULL);
}

函数 esp_netif_receive() esp_netif.h 中声明实现在 esp_netif_lwip.c 中。

此函数将对数据包调用 esp_netif->lwip_input_fn(...),进而调用接口类型特定的 .input_fn(...),即以下之一

或对于包装接口:


Check out similar posts by category: ESP8266/ESP32, Networking