Powróciłem po dłuższej przerwie do pewnego projektu na ESP8266. Wszystkie operacje związane z budowaniem i wgrywaniem wsadu mam zautomatyzowane w Makefile, tak więc w tę część nie musiałem się zagłębiać. Okazało się, że nie zapomniałem aż tak dużo od ostatniego czasu, gdy bawiłem się tymi modułami, bez większego problemu udało mi się więc dodać kilka funkcji.
W tym momencie przyszło mi do głowy, że może spróbuję zaktualizować SDK (NONOS), ponieważ pracowałem na starej wersji 2.1.0. Ściągnąłem z Githuba wersję 3.0.3 i podmieniłem w toolchainie. Program z początku nie chciał się skompilować, wołał o funkcję user_pre_init(), którą skopiowałem z jakiegoś przykładowego programu. Kod się skompilował, ale po resecie na terminalu zobaczyłem tylko mnóstwo wysyłanych cały czas śmieci.
Za pomocą esptool.py spróbowałem wyczyścić flash komendą flash_erase. Okazało się jednak, że zapomniałem o fakcie, że komenda ta czyści całą pamięć i po tej operacji trzeba załadować jakieś pliki, podając ich adresy. Posługując się Googlem wgrałem esp_init_data_default.bin, a potem mój program. Jednak albo zrobiłem coś nie tak, albo zrobiłem coś nie tak, bo w tej chwili mój program co prawda się uruchamia, ale po kilku sekundach układ się resetuje i tak bez końca.
W związku z tym mam dwa pytania:
1) Czy ktoś pamięta jak wyglądała pełna procedura przywracania ESP8266 po wykasowaniu pamieci? Jakie pliki trzeba wgrać i pod jakie adresy w pamięci?
2) Ktoś przesiadł się na SDK > 3.0 i może mi wyjaśnić o co chodzi z funkcją user_pre_init()?