ESP8266:Прошивки/Arduino/FAQ

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



FAQ по аддону ESP8266 для IDE Arduino[1]

Цель этой статьи – ответить на вопросы, часто задаваемые в секции Issues на GitHub и на форуме сообщества ESP8266.

В некоторых случаях ответ будет состоять из одного-двух абзацев, но если этого окажется недостаточно, ниже будет ссылка на другую статью, где вопрос рассматривается более подробно.

Если вы заметили, что ниже отсутствует какая-то очень распространенная проблема, можете помочь проекту и сами описать ее решение.

При попытке загрузить ESP8266 получаю ошибку «espcomm_sync failed». Как решить эту проблему?

Это сообщение информирует о проблеме с загрузкой прошивки на ESP8266 через последовательное соединение. Причины могут быть разные, и они зависят от типа модуля и того, используете ли вы отдельный конвертер USB-Serial.

Подробнее читайте тут.

Почему в меню «Programmer» нет «esptool»? Как загрузить прошивку на ESP8266 без него?

О меню «Programmer» в IDE Arduino беспокоиться не стоит вообще. По умолчанию загрузка прошивки всегда выполняется при помощи «esptool» – независимо от того, что выбрано в этом меню.

Подробнее читайте в отчетах 138, 653 и 739.

Есть код, при запуске которого ESP8266 крашится. Как решить эту проблему?

Код может вызвать краш из-за программного бага или проблемы с аппаратной начинкой. Перед тем, как писать отчет об ошибке, сначала попробуйте уже проверенные методы решения этой проблемы.

Подробнее о них читайте тут.

На ESP8266 не работает библиотека для Arduino. Как заставить ее работать?

Итак, вы хотите использовать на ESP8266 библиотеку для Arduino, но она не работает. В списке библиотек, проверенных для работы с ESP8266, ее тоже нет.

О том, как решить проблему, читайте тут.

Используя в IDE Arduino модуль ESP-12E с 4 Мб flash-памяти, я могу выбрать между 4 Мб (1 Мб для SPIFFS) или 4 Мб (3 Мб для SPIFFS). Независимо от того, что я выбираю, IDE говорит мне, что максимальное место для кода – это 1 Мб. Куда подевалась остальная flash-память?

Причина в том, что мы попросту не можем получить больше 1 Мб flash-памяти для кода – из-за аппаратных ограничений. Кэш flash-памяти на ESP8266 может одновременно отобразить (мапировать) в адресное пространство CPU только 1 Мб кода. Можно, конечно, поменять смещение отображения (мапирования) и с помощью этого получить больше 1 Мб, но быстрое смещение таких больших блоков – это непросто и даже неэффективно, поэтому мы этим не заморачиваемся. Кроме того, 1 Мб flash-памяти для кода вполне достаточно.

Выбор между 3 Мб и 1 Мб для SPIFFS нужен для оптимизации времени загрузки. Загрузка 3 Мб отнимает больше времени, поэтому иногда можно воспользоваться и 1 Мб. Оставшиеся 2 Мб, если необходимо, можно по-прежнему использовать для ESP.flashRead() и ESP.flashWrite().

Наткнулся на случай, когда не работает функция ESP.restart(). В чем причина?

Эта проблема возникает лишь в том случае, если после загрузки прошивки через последовательный порт не выполнить физический сброс (через контакты DTR/RTS). У девайса, находящегося в таком состоянии, функция ESP.restart() работать не будет. Причина проблемы, по всей видимости, в том, что для правильного обновления одного из внутренних регистров нужен физический сброс. Эта проблема касается только апдейта через последовательный порт и не затрагивает OTA-апдейты. Если вы в своем скетче используете ESP.restart(), то решение – просто сбрасывать ESP8266 после каждой загрузки через последовательный порт.

Подробнее читайте в отчетах 1017, 1107 и 1782.

Как исправить ошибку «Board generic (platform esp8266, package esp8266) is unknown»?

Эта проблема может возникнуть из-за переключения между обкаточной и стабильной версиями аддона ESP8266 для IDE Arduino или после апгрейда аддона новой версией.

Подробнее читайте тут.

См.также

Внешние ссылки