• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Общие вопросы по Arduino IDE для ESP8266

Nikita

New member
MAC 10.9.5, 10.10.2. Пробую прошить любую программу в том числе пустую в esp-01 получаю ошибки вида:
/var/folders/kj/xzcz4c_151gdsd5kfc1n4_br0000gn/T/build6642309245852315610.tmp/sketch_apr07a.cpp_00000.bin to flash at 0x00000000
warning: espcomm cmd: didn't receive command response
warning: espcomm_send_command(FLASH_DOWNLOAD_BEGIN) failed

В остальном, снимая gpio0 с земли модуль работает на указанных mac. На Windows с такой проблемой не сталкивался, прошивается без проблем. Отдельно пробовал поставить esptool на Mac и прошивать через нее, но также получаю ошибки. В чем может быть проблема с mac, что делаю не так?
 

igrr

Moderator
Команда форума
У меня на маке такое поведение возникает очень редко — так что мне не удается отловить, в чем именно дело. А когда возникает, повторное нажатие кнопки upload помогает.
В качестве обходных путей — либо используйте esptool.py (поменяв строку вызова esptool в platform.txt), либо возьмите код esptool-ck с гитхаба и покопайтесть, может вам удастся решить проблему?
 

Nikita

New member
У меня на маке такое поведение возникает очень редко — так что мне не удается отловить, в чем именно дело. А когда возникает, повторное нажатие кнопки upload помогает.
В качестве обходных путей — либо используйте esptool.py (поменяв строку вызова esptool в platform.txt), либо возьмите код esptool-ck с гитхаба и покопайтесть, может вам удастся решить проблему?
Спасибо за ответ, посмотрю еще, но ни одного раза прошить с помощью esptool.py на mac до сих пор не удалось, там другие ошибки.

Но сегодня вечером удалось таки прошить esp8266 сначала на одном mac, потом и на другом. Прошить удается после переподключения программатора к usb. Два раза подряд прошить не удается, если при попытке прошить получаю ошибку, то все последующие попытки до извлечения usb и повторного подключения приводили к той же ошибке.

Потенциально проблема может заключаться в хитрой работе порта на mac или не правильном подключении питания. Но очень удивительно, что переподключая ту же макетку к windows таких проблем не возникает. Никогда не отказывает в прошивке.
 

Telek

New member
Код:
void setup() {

  double i,j;
  i=pow(j,i);

}

void loop() {

}
При компиляции пишет: undefined reference to `pow'

тоже самое с sqrt();

На такую запись(когда константы в аргументах): pow(2.3,4.5) не ругается.
 

Telek

New member

jcmvbkbc

New member
Т.е. делать то что? ждать? Я чайник - не понял. Пока pow не возможно использовать?
Патч для newlib запушил на github, crosstool-NG тоже обновил. Чтобы получить фикс нужно перестроить тулчейн.
И не забыть -lm добавить в команду линковки (или m в список библиотек).
 

Telek

New member
Патч для newlib запушил на github, crosstool-NG тоже обновил. Чтобы получить фикс нужно перестроить тулчейн.
И не забыть -lm добавить в команду линковки (или m в список библиотек).
А для pow? Мне собственно pow() нужен, про sqrt это я для кучи написал :)
Как перестроить тулчейн? (Чайник я)
 

jcmvbkbc

New member
А для pow? Мне собственно pow() нужен, про sqrt это я для кучи написал
Судя по ошибке о которой вы говорите, у вас отсутствует -lm в команде линковки. Добавьте его, и увидите, что pow зависит от sqrt. Патч фиксит обе функции.

Как перестроить тулчейн? (Чайник я)
Подозреваю, что в этом случае единственный вариант -- подождать, пока кто-нибудь другой его перестроит.
Если хочется помучаться на linux/mac: https://github.com/pfalcon/esp-open-sdk , но если вы строили свой тулчейн сами, то вы и так это знаете.
 

Telek

New member
Судя по ошибке о которой вы говорите, у вас отсутствует -lm в команде линковки. Добавьте его, и увидите, что pow зависит от sqrt. Патч фиксит обе функции.
Сюда добавить?
В platform.txt?
Код:
compiler.c.elf.libs=-lc -lgcc -lhal -lphy -lnet80211 -llwip -lwpa -lmain -lpp
 

Victor

Administrator
Команда форума
igrr,
Для сборки с сайта проблему решил,
а что значит сообщение для вашей сборки"
Изменена опция сборки, пересобираем все
Ошибка компиляции."

Если учесть что я загрузил и распакавал Ваш архив как есть?
Сделайте как описано тут
 
Не увидел функции задания ip адреса в режиме station - типа wifi.sta.setip() в NodeMCU.
Есть? Будет? Или как реализовать?
 
Мне не lua, а функция нужна. Проблема в том что с lua я наигрался... Не могу сделать устойчивый вариант. А задачу хотелось бы довести, вот и подумал перевести все на Arduino для ESP8266, благо она стоит. А модули - подключаются к роутеру, и мне нужна их адресация. Вот и даю им статический ip через web-страничку...
 

Victor

Administrator
Команда форума
Поясните, что там дорабатывается постоянно в этом случае?
ну все-таки Arduino IDE для ESP8266 это не готовый продукт, а скелет, в котором реализован основной функционал Arduino IDE для Arduino (ха!), но не весь.
я выше уже давал ссылку на коммиты https://github.com/esp8266/Arduino/commits/esp8266 - по ним видно что именно добавлено/исправлено
 

Telek

New member
Подскажите пожалуйста: как программно вызвать перезагрузку платы? (без дерганья ног).
Вычислил, что при определенных обстоятельствах WiFiClient.connect() глухо зависaет, отследить зависание получается через Ticker. Хочу при обнаружении зависания перезагружать плату программно.
 

JustACat

Moderator
Команда форума
Telek, предположу:
- включить вачдог (если он выключен)
- запустить бесконечный цикл (без сброса вачдога)
 
Сверху Снизу