Здравствуйте
Не могу разобраться, какие ф-ии вызывает и какими вызывается lwip, для получения raw данных от wifi, чтобы lwip потом их засунул/вытянул из своих структур. Где находится драйвер wifi в sdk и какое api он предоставляет? Я попробовал найти самостоятельно:
include/lwip/netif.h:
esp8266web-master$ grep netif_input_fn -R *
app/sdklib/lwip/core/netif.c: ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input)
app/sdklib/lwip/api/netifapi.c: netif_input_fn input)
include/lwip/netif.h:typedef err_t (*netif_input_fn)(struct pbuf *p, struct netif *inp);
include/lwip/netif.h: netif_input_fn input; // +16
include/lwip/netif.h: ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input)ICACHE_FLASH_ATTR;
include/lwip/netifapi.h: netif_input_fn input;
include/lwip/netifapi.h: netif_input_fn input);
Интересны только neif.c и netifapi.c, но там инклудятся только файлы из lwip - никакой связи с драйвером.
В rom_phy.h есть rfcal_*, но что они делают неизвестно. Просто имя ф-ии и адрес. Ни адреса буфера для raw-данных, ничего.
P.S.
GitHub - kadamski/esp-lwip: LWIP for ESP8266:
This project does not contain complete LwIP stack. The code for network driver was not released by Espressif. Currently we only provide replacement for eagle_lwip_if.o from libmain.a. This module is responsible for setting up struct netif and calling netif_add() from LwIP.
Тему можно закрывать.
pps
pvvx говорил, что для rtl8710 можно без особых проблем собрать другой tcpip стек, а не только lwip. Там есть исходники сетевого драйвера?
Не могу разобраться, какие ф-ии вызывает и какими вызывается lwip, для получения raw данных от wifi, чтобы lwip потом их засунул/вытянул из своих структур. Где находится драйвер wifi в sdk и какое api он предоставляет? Я попробовал найти самостоятельно:
include/lwip/netif.h:
Код:
typedef err_t (*netif_input_fn)(struct pbuf *p, struct netif *inp);
/** Function prototype for netif->output functions. Called by lwIP when a packet
* shall be sent. For ethernet netif, set this to 'etharp_output' and set
* 'linkoutput'.
*
* @param netif The netif which shall send a packet
* @param p The packet to send (p->payload points to IP header)
* @param ipaddr The IP address to which the packet shall be sent
*/
typedef err_t (*netif_output_fn)(struct netif *netif, struct pbuf *p,
ip_addr_t *ipaddr);
/** Function prototype for netif->linkoutput functions. Only used for ethernet
* netifs. This function is called by ARP when a packet shall be sent.
app/sdklib/lwip/core/netif.c: ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input)
app/sdklib/lwip/api/netifapi.c: netif_input_fn input)
include/lwip/netif.h:typedef err_t (*netif_input_fn)(struct pbuf *p, struct netif *inp);
include/lwip/netif.h: netif_input_fn input; // +16
include/lwip/netif.h: ip_addr_t *gw, void *state, netif_init_fn init, netif_input_fn input)ICACHE_FLASH_ATTR;
include/lwip/netifapi.h: netif_input_fn input;
include/lwip/netifapi.h: netif_input_fn input);
Интересны только neif.c и netifapi.c, но там инклудятся только файлы из lwip - никакой связи с драйвером.
В rom_phy.h есть rfcal_*, но что они делают неизвестно. Просто имя ф-ии и адрес. Ни адреса буфера для raw-данных, ничего.
P.S.
GitHub - kadamski/esp-lwip: LWIP for ESP8266:
This project does not contain complete LwIP stack. The code for network driver was not released by Espressif. Currently we only provide replacement for eagle_lwip_if.o from libmain.a. This module is responsible for setting up struct netif and calling netif_add() from LwIP.
Тему можно закрывать.
pps
pvvx говорил, что для rtl8710 можно без особых проблем собрать другой tcpip стек, а не только lwip. Там есть исходники сетевого драйвера?
Последнее редактирование: