Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

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

Тема в разделе "ESP8266 Arduino IDE", создана пользователем Victor, 28 мар 2015.

  1. Nikita

    Nikita Новичок

    Сообщения:
    21
    Симпатии:
    4
    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, что делаю не так?
     
  2. igrr

    igrr Moderator Команда форума

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

    Nikita Новичок

    Сообщения:
    21
    Симпатии:
    4
    Спасибо за ответ, посмотрю еще, но ни одного раза прошить с помощью esptool.py на mac до сих пор не удалось, там другие ошибки.

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

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

    Telek Читатель

    Сообщения:
    33
    Симпатии:
    8
    Код (Text):
    1. void setup() {
    2.  
    3.   double i,j;
    4.   i=pow(j,i);
    5.  
    6. }
    7.  
    8. void loop() {
    9.  
    10. }
    При компиляции пишет: undefined reference to `pow'

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

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

    jcmvbkbc Читатель

    Сообщения:
    179
    Симпатии:
    17
    http://www.esp8266.com/viewtopic.php?f=9&t=1662
    Функции математики с плавающей точкой надо в newlib включить, потому что в нашей libgcc их нет, а у Espressif их не было никогда.
     
  6. Telek

    Telek Читатель

    Сообщения:
    33
    Симпатии:
    8
    Т.е. делать то что? ждать? Я чайник - не понял. Пока pow не возможно использовать?
     
  7. jcmvbkbc

    jcmvbkbc Читатель

    Сообщения:
    179
    Симпатии:
    17
    Патч для newlib запушил на github, crosstool-NG тоже обновил. Чтобы получить фикс нужно перестроить тулчейн.
    И не забыть -lm добавить в команду линковки (или m в список библиотек).
     
  8. Telek

    Telek Читатель

    Сообщения:
    33
    Симпатии:
    8
    А для pow? Мне собственно pow() нужен, про sqrt это я для кучи написал :)
    Как перестроить тулчейн? (Чайник я)
     
  9. jcmvbkbc

    jcmvbkbc Читатель

    Сообщения:
    179
    Симпатии:
    17
    Судя по ошибке о которой вы говорите, у вас отсутствует -lm в команде линковки. Добавьте его, и увидите, что pow зависит от sqrt. Патч фиксит обе функции.

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

    Telek Читатель

    Сообщения:
    33
    Симпатии:
    8
    Сюда добавить?
    В platform.txt?
    Код (Text):
    1. compiler.c.elf.libs=-lc -lgcc -lhal -lphy -lnet80211 -llwip -lwpa -lmain -lpp
     
  11. jcmvbkbc

    jcmvbkbc Читатель

    Сообщения:
    179
    Симпатии:
    17
    Да, похоже на то.
     
  12. Victor

    Victor Administrator Команда форума

    Сообщения:
    2.203
    Симпатии:
    378
    Сделайте как описано тут
     
  13. Игорь

    Игорь Новичок

    Сообщения:
    42
    Симпатии:
    3
    Не увидел функции задания ip адреса в режиме station - типа wifi.sta.setip() в NodeMCU.
    Есть? Будет? Или как реализовать?
     
  14. Игорь

    Игорь Новичок

    Сообщения:
    42
    Симпатии:
    3
    Не понял, что смотреть... В Lua я активно пользуюсь. Я про Arduino IDE для ESP8266.
     
  15. Игорь

    Игорь Новичок

    Сообщения:
    42
    Симпатии:
    3
    Мне не lua, а функция нужна. Проблема в том что с lua я наигрался... Не могу сделать устойчивый вариант. А задачу хотелось бы довести, вот и подумал перевести все на Arduino для ESP8266, благо она стоит. А модули - подключаются к роутеру, и мне нужна их адресация. Вот и даю им статический ip через web-страничку...
     
  16. Victor

    Victor Administrator Команда форума

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

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    15
    Да,спасибо все заработало. Попробую на "железке"
     
    Victor нравится это.
  18. Victor

    Victor Administrator Команда форума

    Сообщения:
    2.203
    Симпатии:
    378
    Nikita нравится это.
  19. Telek

    Telek Читатель

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

    JustACat Moderator Команда форума

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

Поделиться этой страницей