Hallo,
ich versuche mich gerade an einem esp32.
Die Toolchain und alles habe ich installiert und die examples werden
auch gebaut.
Jetzt wollte ich mal selber testen indem ich durch die Informationen von
der Dokumentation mich mit meinem WiFi verbinden kann.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wifi.html#esp32-wi-fi-station-general-scenario
Dazu versuche ich zunächst die Initialisierung, aber hier scheitert es
schon am bauen.
1 | #include <stdio.h>
|
2 | #include <stdbool.h>
|
3 | #include "freertos/FreeRTOS.h"
|
4 | #include "freertos/task.h"
|
5 | #include "freertos/event_groups.h"
|
6 | #include "esp_wifi.h"
|
7 | #include "esp_event.h"
|
8 | #include "esp_err.h"
|
9 | #include "esp_system.h"
|
10 |
|
11 | #define SSID "SSID"
|
12 | #define PASSPHARSE "PASSPHARSE"
|
13 |
|
14 | typedef enum
|
15 | {
|
16 | PHASE_ST_MODE_INIT,
|
17 | PHASE_ST_MODE_CONFIGURE,
|
18 | PHASE_ST_MODE_START,
|
19 | PHASE_ST_MODE_CONNECT,
|
20 | PHASE_ST_MODE_GOT_IP,
|
21 | PHASE_ST_MODE_DISCONNECT,
|
22 | PHASE_ST_MODE_IP_CHANGE,
|
23 | PHASE_ST_MODE_DEINIT,
|
24 | PHASE_ST_MODE_UNDEFINED
|
25 | }phaseStMode_te;
|
26 |
|
27 | static phaseStMode_te phaseStMode_e = PHASE_ST_MODE_INIT;
|
28 |
|
29 | static EventGroupHandle_t wifi_event_group;
|
30 |
|
31 |
|
32 | void appTask(void *pvParam){
|
33 | printf("application task started \n");
|
34 | while(1)
|
35 | {
|
36 |
|
37 | }
|
38 | }
|
39 |
|
40 | void app_main()
|
41 | {
|
42 | wifi_event_group = xEventGroupCreate();
|
43 | static esp_err_t errorInit = ESP_OK;
|
44 | errorInit = esp_netif_init();
|
45 | printf("esp_netif_init return %d", errorInit);
|
46 | errorInit = ESP_OK;
|
47 |
|
48 | errorInit = esp_event_loop_create_default();
|
49 | printf("esp_event_loop_create return %d", errorInit);
|
50 | errorInit = ESP_OK;
|
51 |
|
52 | esp_netif_create_default_wifi_sta();
|
53 | printf("esp_netif_create_default_wifi_sta return %d", errorInit);
|
54 | errorInit = ESP_OK;
|
55 |
|
56 | wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
|
57 | esp_wifi_init(&cfg);
|
58 | printf("esp_wifi_init return %d", errorInit);
|
59 | errorInit = ESP_OK;
|
60 |
|
61 | xTaskCreate(&appTask,"appTas",2048,NULL,5,NULL);
|
62 | while(1)
|
63 | {
|
64 | }
|
65 | }
|
Die Ausgabe vom bauen ist allerdings
1 | Executing action: all (aliases: build)
|
2 | Running ninja in directory h:\projects\esp\wifi\build
|
3 | Executing "ninja all"...
|
4 | [1/8] Performing build step for 'bootloader'
|
5 | ninja: no work to do.
|
6 | [2/6] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/app_main.c.obj
|
7 | [5/6] Linking CXX executable wifi.elf
|
8 | FAILED: wifi.elf
|
9 | cmd.exe /C "cd . && C:\Espressif\.espressif\tools\xtensa-esp32-elf\esp-2020r3-8.4.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-g++.exe -mlongcalls -Wno-frame-address @CMakeFiles\wifi.elf.rsp -o wifi.elf && cd ."
|
10 | c:/espressif/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/esp_wifi/libesp_wifi.a(wifi_default.c.obj):(.literal.wifi_start+0x18): undefined reference to `esp_wifi_internal_reg_netstack_buf_cb'
|
11 | c:/espressif/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/esp_wifi/libesp_wifi.a(wifi_default.c.obj): in function `wifi_start':
|
12 | C:/Espressif/esp-idf/components/esp_wifi/src/wifi_default.c:56: undefined reference to `esp_wifi_internal_reg_netstack_buf_cb'
|
13 | c:/espressif/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/wpa_supplicant/libwpa_supplicant.a(wpa.c.obj):(.literal.wpa_sm_rx_eapol+0x8): undefined reference to `esp_wifi_internal_issue_disconnect'
|
14 | c:/espressif/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/wpa_supplicant/libwpa_supplicant.a(wpa.c.obj):(.literal.wpa_set_bss+0x8): undefined reference to `esp_wifi_skip_supp_pmkcaching'
|
15 | c:/espressif/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/wpa_supplicant/libwpa_supplicant.a(wpa.c.obj): in function `wpa_sm_rx_eapol':
|
16 | C:/Espressif/esp-idf/components/wpa_supplicant/src/rsn_supp/wpa.c:1942: undefined reference to `esp_wifi_internal_issue_disconnect'
|
17 | c:/espressif/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/wpa_supplicant/libwpa_supplicant.a(wpa.c.obj): in function `wpa_set_bss':
|
18 | C:/Espressif/esp-idf/components/wpa_supplicant/src/rsn_supp/wpa.c:2128: undefined reference to `esp_wifi_skip_supp_pmkcaching'
|
19 | collect2.exe: error: ld returned 1 exit status
|
20 | ninja: build stopped: subcommand failed.
|
21 | ninja failed with exit code 1
|
Die einzigen errors die ich hier sehe sind
undefined reference to `esp_wifi_internal_reg_netstack_buf_cb'
undefined reference to `esp_wifi_skip_supp_pmkcaching'
was sind das für Funktionen? Diese sind nicht von mir. Muss ich damit
was machen?