ESP8266 nie uruchamia się po flashowaniu oprogramowania układowego, wyjście szeregowe Fatal wyjątek (28)

1

Zacząłem eksperymentować na ESP8266, który został kupiony od AI-Thinker, a wiki jest tutaj ESP8266 i inny dla NodeMCU .

Znam już oprogramowanie układowe Lua, więc wymyśliłem firmware Lua node i mogłem z tym osiągnąć sukces, ale mam problem z pamięcią Oprogramowanie układowe Lua . Potem pomyślałem, aby użyć programowania w C zamiast Lua. Moje środowisko programistyczne to Ubuntu 14.0. Kroki, które wykonałem stąd: https://github.com/SuperHouse/esp-open-rtos .

Udało mi się zbudować oprogramowanie układowe gen_misc.sh w examples/project_template folder z generowaniem poniżej wymienionych bin z domyślnymi opcjami budowania:

eagle.flash.bin
eagle.irom0text.bin

potem błysnął esptool.py, używając poniższego polecenia:

./esptool.py write_flash 0x00000 ESPWorkspace/esp-open-sdk/ESP8266_RTOS_SDK/esp8266_bin/eagle.flash.bin 0x20000 ESPWorkspace/esp-open-sdk/ESP8266_RTOS_SDK/esp8266_bin/eagle.irom0text.bin

A wyjście po flashowaniu z tablicy to:

  Fatal exception (28): epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000

Wielokrotnie drukował na ekranie, użyłem minicom w Ubuntu z /dev/ttyUSB0 z prędkością 115200 bodów do podłączenia używanego kabla USB. i dziwna część jest po wyłączeniu / włączeniu zasilania, dostaję śmieciowe dane na minicom.

Jakiś artykuł w sieci z debugowaniem za pomocą eagle.dump plik i eagle.s. Z tym też nie rozwiązałem problemu.

Czy ktoś może mnie kierować, aby rozwiązać problem?

sijok_00
źródło

Odpowiedzi:

0

Znalazłem sposób na flashowanie esp-8266 za pomocą esp-free-rtos, jeśli ktoś skorzystał z mojej odpowiedzi, cieszę się. Używałem NodeMcu WiFi Development Board - ESP8266 (ESP-12E). Problem, z którym miałem do czynienia, dotyczył wyjątku krytycznego (28) z powodu niedostępnej powiązanej lokalizacji pamięci (może nie, jestem tu dopiero początkujący).

Pomyślałem, że dwa oddzielne projekty są takie same, ale różnią się identycznie jak ESP8266_RTOS_SDK i esp-open-rtos.

Więc po kilku poszukiwaniach zdecydowałem się kontynuować z esp-open-rtos, wtedy pojawił się błąd, był on związany z rozmiarem flash, stąd: https://nodemcu.readthedocs.io/en/master/en/flash/ Mam odpowiedź.

W edytowanym folderze głównym esp-open-rtos plik parametrów zmieniono na FLASH_SIZE? = 8, FLASH_MODE? nawet zwiększyłem szybkość transmisji do ESPBAUD? = 1500000.

Błysnęłam oprogramowaniem i dostałam swój program C do esp8266.

Poniżej zamieściłem przewodnik krok po kroku dotyczący flashowania programu C do esp8266. Moim systemem jest Ubuntu 14.04 LTS.

1. pobierz esp-open-sdk i build

Upewnij się, że wszystkie wymagania i zależności dostępne w twoim systemie dev są wymienione na stronie GitHub.

$ git clone --recursive https://github.com/pfalcon/esp-open-sdk.git

$ make STANDALONE=n 

Ustaw ścieżkę eksportu:

$ export PATH=/path_to_Workspace/esp-open-sdk/xtensa-lx106-elf/bin:$PATH

2. pobierz esp-open-rtos i make flash

$ git clone --recursive https://github.com/Superhouse/esp-open-rtos.git

$ cd esp-open-rtos

$ make flash -j4 -C examples/http_get ESPPORT=/dev/ttyUSB0 
sijok_00
źródło
0

@Glorfindel ma poprawną odpowiedź, ale tylko w celu wyjaśnienia.

Określ rozmiar flash swojej płyty:

z https://stackoverflow.com/questions/39631011/how-to-determine-flash-size-of-nodemcu

(Miałem HiLetGo nodemcu - 32Mb)

Edytuj plik: esp-open-rtos / parameters.mk

  • FLASH_SIZE ?= <N> (gdzie N to megabity twojego flasha)
  • FLASH_MODE ?= dio

(zauważ, że znalazłem również odniesienie do dio tutaj: https://groups.google.com/forum/#!topic/esp-open-rtos/-MNCe1NyVKA )

Te dwie zmiany rozwiązały problem.

user2108373
źródło