Pracuję właśnie nad pewnym projektem, który nie wymaga zbyt potężnego MCU ani dużej ilości linii IO. Tak naprawdę chodzi tylko o komunikację z kilkoma układami I2C, machanie paroma liniami, generowanie jednego sygnału PWM oraz czytanie jednego wejścia analogowego.
Pomyślałem sobie, że spokojnie mogę to załatwić za pomocą ESP8266. Ponieważ przy okazji chciałbym mieć panel WWW, przez który mogę sobie ten układ skonfigurować, wziąłem sobie za podstawę skopiowany kiedyś GitHuba projekt esphttpd z moimi własnymi modyfikacjami i gotową stroną konfiguracyjną. Potem zacząłem dodawać biblioteki niezbędne z punktu widzenia mojej funkcjonalności.
Wszystko kompilowało się, do czasu. W pewnym momencie dodałem o jeden plik za dużo i linker zaczął sypać błędami. Zacząłem eksperymentować, zakomentowując (na razie) zbędne funkcje. Okazało się, że w pewnym momencie projektów znów zaczyna się kompilować.
Czyli brak pamięci flash...
Zajrzałem do Makefile. Znajduje się tam następujące ustawienie:
#SPI flash size, in K ESP_SPI_FLASH_SIZE_K=4096
Próbowałem zwiększyć tę wartość, ale nic to nie dało.
Stąd kilka pytań:
1) Jaki największy flash dostanę w module z ESP8266? 2) Co zmienić w projekcie, żeby prawidłowo się kompilował pod taki większy model?W tej chwili, jeśli uda się skompilować projekt, powstają dwa pliki:
0x00000.bin (36,9 kB) oraz 0x40000.bin (223,6 kB).Ewentualnie, istnieje jakaś łatwa do ogarnięcia alternatywa?