Найдена причина: чип 2 МБ при настройке IDE 4 МБ
Плата имеет физически 2 МБ флеша, в IDE было выбрано 4MB (FS:2MB). При этой раскладке сектор EEPROM лежит по смещению 0x3FB000, а начало LittleFS — по 0x400000, тогда как чип заканчивается на 0x200000. Обе области вне микросхемы, поэтому spi_flash_erase_sector() проваливался и EEPROM.commit() возвращал false. Лечится настройкой Flash Size = 2MB (FS:128KB OTA:~960KB), а не кодом: любая раскладка 2MB кладёт файловую систему ниже 0x1FB000, а EEPROM в сектор 511. С верной настройкой работали бы оба механизма хранения. Ранее записанная в README гипотеза про «щель между FS и областью SDK» была неверной и заменена подтверждённым разбором. Переход на LittleFS остаётся оправданным по своим качествам, но проблему решает настройка IDE — в документации это разделено явно, чтобы не ввести в заблуждение при похожем симптоме на другой плате. Документация исправлена: плата 2 МБ, а не 4 МБ; требование совпадения выбранного размера с физическим; предупреждение о потере учётных данных Wi-Fi при смене раскладки. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -172,9 +172,11 @@ STATUS: OK
|
||||
Настройки сохраняются в файл во внутренней памяти прибора, переживают
|
||||
отключение питания и сброс Wi-Fi.
|
||||
|
||||
> Если панель показывает красное предупреждение «Файловая система недоступна»,
|
||||
> настройки работают только до перезагрузки. Причина почти всегда в настройке
|
||||
> `Flash Size` при прошивке — нужен вариант с файловой системой, не `FS:none`.
|
||||
> Если панель показывает красное предупреждение «Файловая система недоступна»
|
||||
> или настройки пропадают после перезагрузки — причина в настройке `Flash Size`
|
||||
> при прошивке. Она обязана совпадать с фактическим размером памяти платы:
|
||||
> для этих приборов **`2MB (FS:128KB OTA:~960KB)`**. Вариант `4MB` на плате с
|
||||
> 2 МБ приводит ровно к такому симптому.
|
||||
|
||||
> Русские буквы и пробелы в имени устройства **не сохранятся** — они будут
|
||||
> отброшены. Это не ошибка: ограничение защищает формат уведомления от поломки.
|
||||
|
||||
Reference in New Issue
Block a user