moin zusammen,
ich habe vor eine Projekt mit einem NodeMCU (Esp8266) (in Windows10) zu
machen.
Allerdings scheitere ich schon am flashen.
Ich bin hiernach vorgegangen
https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/
die Beispielprojekte kann ich auch flashen und die laufen auch.
Allerdings habe ich jetzt Probleme die Richtigen Dateien und Anpassungen
im eigenen Projekt zu machen.
Ich habe momentan folgenden Aufbau
Ordner: hello_world_own
Dieser Ordner beinhaltet einen weiteren Ordner Source. Hier befindet
sich meine main.c drinn.
Im Ordner hello_world_own habe ich ebenfalls eine Datei: Makefile
1 | #
|
2 | # This is a project Makefile. It is assumed the directory this Makefile resides in is a
|
3 | # project subdirectory.
|
4 | #
|
5 |
|
6 | PROJECT_NAME := hello_world_own
|
7 |
|
8 | include $(IDF_PATH)/make/project.mk
|
diese habe ich aus dem Beispiel-projekt kopiert und PROJECT_NAME
angepasst.
der IDF_PATH zeigt auf
C:/msys32/home/esp/ESP8266_RTOS_SDK
das Programm ist ähnlich dem hello_world aus dem Beispiel. Nur ein
zehnfaches schneller, damit ich einen Unterschied sehe.
1 | #include <stdio.h>
|
2 | #include "freertos/FreeRTOS.h"
|
3 | #include "freertos/task.h"
|
4 | #include "esp_system.h"
|
5 | #include "esp_spi_flash.h"
|
6 |
|
7 | void main()
|
8 | {
|
9 | printf("Hello world!\n");
|
10 |
|
11 | /* Print chip information */
|
12 | esp_chip_info_t chip_info;
|
13 | esp_chip_info(&chip_info);
|
14 | printf("This is ESP8266 chip with %d CPU cores, WiFi, ",
|
15 | chip_info.cores);
|
16 |
|
17 | printf("silicon revision %d, ", chip_info.revision);
|
18 |
|
19 | printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
|
20 | (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
|
21 |
|
22 | for (int i = 10; i >= 0; i--) {
|
23 | printf("Restarting in %d seconds...\n", i);
|
24 | vTaskDelay(100 / portTICK_PERIOD_MS);
|
25 | }
|
26 | printf("Restarting now.\n");
|
27 | fflush(stdout);
|
28 | esp_restart();
|
29 | }
|
Jetzt gehe ich in der ming23.exe console in den Ordner hello_world_own
Eingabe: make menuconfig
hier wird auch das Menu erstellt, wo ich den Port vom esp eingebe. Wenn
ich alles schließe, bekomme ich die Ausgabe
1 | Python requirements from C:/msys32/home/esp/ESP8266_RTOS_SDK/requirements.txt are satisfied.
|
2 | DEFCONFIG
|
3 | MENUCONFIG
|
4 | configuration written to /h/Projects/ESP/connectRouter/sdkconfig
|
5 |
|
6 | *** End of the configuration.
|
7 | *** Execute 'make' to start the build or try 'make help'.
|
8 |
|
9 | GENCONFIG
|
10 | make: xtensa-lx106-elf-gcc: Kommando nicht gefunden
|
11 | expr: syntax error: unexpected argument „5.2.0“
|
12 | Project is not inside a git repository, or git repository has no commits
|
13 | will not use 'git describe' to determine PROJECT_VER.
|
14 | App "connect_router" version: 1
|
15 | make: xtensa-lx106-elf-gcc: Kommando nicht gefunden
|
16 | expr: syntax error: unexpected argument „5.2.0“
|
Also die python requirements in ESP8266_RTOS_SDK habe ich alle. Die
sdkconfig wird auch in meinem Projekt erstellt.
Aber ich bekomme zwei errors:
make: xtensa-lx106-elf-gcc: Kommando nicht gefunden
expr: syntax error: unexpected argument „5.2.0“
Was genau bedeutet das?
Jetzt kann ich eingeben
make flash monitor
und bekomme folgende Ausgabe
1 | make: xtensa-lx106-elf-gcc: Kommando nicht gefunden
|
2 | expr: syntax error: unexpected argument „5.2.0“
|
3 | /bin/sh: xtensa-lx106-elf-gcc: Kommando nicht gefunden.
|
4 | which: no xtensa-lx106-elf-gcc in (/mingw32/bin:/usr/local/bin:/usr/bin:/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/opt/xtensa-esp32-elf/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl)
|
5 | /bin/sh: xtensa-lx106-elf-gcc: Kommando nicht gefunden.
|
6 | Toolchain path:
|
7 | WARNING: Failed to find Xtensa toolchain, may need to alter PATH or set one in the configuration menu
|
8 | Python requirements from C:/msys32/home/esp/ESP8266_RTOS_SDK/requirements.txt are satisfied.
|
9 | make[1]: xtensa-lx106-elf-gcc: Befehl nicht gefunden
|
10 | expr: syntax error: unexpected argument „5.2.0“
|
11 | /bin/sh: xtensa-lx106-elf-gcc: Kommando nicht gefunden.
|
12 | which: no xtensa-lx106-elf-gcc in (/mingw32/bin:/usr/local/bin:/usr/bin:/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/opt/xtensa-esp32-elf/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl)
|
13 | /bin/sh: xtensa-lx106-elf-gcc: Kommando nicht gefunden.
|
14 | WARNING: Failed to find Xtensa toolchain, may need to alter PATH or set one in the configuration menu
|
15 | make[1]: xtensa-lx106-elf-gcc: Befehl nicht gefunden
|
16 | expr: syntax error: unexpected argument „5.2.0“
|
17 | CC build/bootloader/main/bootloader_start.o
|
18 | make[2]: xtensa-lx106-elf-gcc: Befehl nicht gefunden
|
19 | make[2]: *** [/home/esp/ESP8266_RTOS_SDK/make/component_wrapper.mk:292: bootloader_start.o] Fehler 127
|
20 | make[1]: *** [/home/esp/ESP8266_RTOS_SDK/make/project.mk:571: component-main-build] Fehler 2
|
21 | make: *** [/home/esp/ESP8266_RTOS_SDK/components/bootloader/Makefile.projbuild:40: /h/Projects/ESP/connectRouter/build/bootloader/bootloader.bin] Fehler 2
|
Was ist hier jetzt falsch?
Wie kann ich ein Projekt erstmal nur bauen? Ohne es gleichzeitig zu
flashen?
Habe vorher noch nie mit make zu tun gehabt und tu mich damit doch ein
bisschen schwer.