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

Sming Open Source Framework для нативной разработки прошивок ESP8266

Тема в разделе "Sming Open Source Framework", создана пользователем anakod, 20 мар 2015.

Метки:
  1. JustACat

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

    Сообщения:
    568
    Симпатии:
    121
    @anakod, ах да, и еще одно. Мы тут с @CHERTS обсуждали систему завязывания библиотек в ваших примерах.
    Правильно ли я понимаю, что у вас при компиляции любого примера, пусть даже Basic_Blink в итоговую прошивку попадает все то добро, что у вас в Sming есть?
    То есть, например, я в Basic_Blink (понятное дело) работу с WiFi не использую, UART не использую, общение с DS18B20 не использую - но в прошивку оно все равно попадает?

    Если так, то может все таки имеет смысл как-то от этого избавиться? В той же Ардуине к прошивке обычно прикрепляется лишь то, что реально используется в коде приложения.
    Чаще всего это делается через #include в начале основного файла программы только нужных пользователю библиотек.
    Единнтвенное, что у них инклудится автоматом: это всякие внутренние вещи, к которым даже Serial (UART) относится (как мне кажется) с большой натяжкой. Хотя, емнип, если в самом коде ты работу с Serial не используешь, то и размер прошивки итоговый становится меньше. Значит как-то это все же обрабатывается на этапе компиляции.

    Если я тут полный бред пишу, который к нашему случаю (ESP) никак не применим, вы уж меня простите и не тратьте время :) Просто хочется разобраться, пусть и не сразу :) Спасибо!
     
  2. Sermus

    Sermus Читатель

    Сообщения:
    110
    Симпатии:
    15
    Сделано, прямо в Arduino IDE собирается и прошивается. http://sermus.github.io/ESP8266_ArduinoIDE/
    Драфтовая версия, сильно не пинать. С конструктивными замечаниями и предложениями - велком.

    Anakod, респект Вам и уважуха за инфраструктурный код. Нам бы с Вами как-то скооперироваться, чтобы два раза одну работу не делать. Я воспользовался Вашей работой, но что-то пришлось подпилить, а что-то выпилить.

    Еще надо упомянуть, что в моей билдовой процедуре:
    1) А ВЕСЬ код идет в ROM, а не только тот, что помечен ICACHE_FLASH_ATTR
    2) В конечном ELF-файле остается только то, что используется, неиспользуемый код выковыривается линковщиком.

    В составе два примера - блинк и неправильный ))). Блинк и HttpServer_Bootstrap.ino, но второй я не успел попробовать за катастрофической нехваткой времени.
     
    Victor и JustACat нравится это.
  3. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Мне кажется что простая IDE - это именно то что нужно неопытным пользователям, поэтому это направление очень верное.

    Но я, к примеру, не хочу переходить с Эклипса на Арудино IDE, поэтому скооперироваться я за, но в этом случае надо поддерживать двухстороннюю совместимость (чтобы Sming собирался и работал как под Вашей сборкой так и в UDK).

    А что касается Pull-request'ов - их я всегда рад принять, причем как по багам так и по любым доработкам\усовершенствованиям на Ваше усмотрение. Единственное просьба учитывать стиль кода\именовки.

    Точно ли весь? Дело в том что некоторый код нельзя класть в ROM (тот что может быть вызван из прерываний, системный и т.д.). Что касается того что по умолчанию кладем в флеш - да, у меня тоже именно так. Т.е. логика атрибутов инвертирована и помечается RAM код.

    Да, но разве кому-нибудь жалко, когда там еще 200 с лишним кило свободными остаются? А памяти это ни капли не занимает (RAM). Мне кажется тут можно предусмотреть более аккуратное решение, но острой необходимости нет.

    Вышел Sming v1.1
    * Доработан FTP, теперь он вполне закрывает тут круг задач, ради которого он создавался
    * Исправлена ошибка со скачиванием файлов с удаленного сервера (моя вина, недоглядел :()
    + API для изменения частоты процессора, спасибо alonewolfx2 за пуллреквест
    + API для deep-sleep (пока никто не тестировал), опять же спасибо alonewolfx2

    У кого сервер при старте не подтягивал файлы, проверьте пожалуйста, новую версию и отпишитесь все ли ок? Буду крайне благодарен.

    P.S. Скоро будет MQTT!
     
    Victor и JustACat нравится это.
  4. JustACat

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

    Сообщения:
    568
    Симпатии:
    121
    Sermus и anakod, ребята! У меня слов нет :) В хорошем смысле! Главное - только не бросайте! И да, если действительно выйдет скооперировать ваши проекты, то синергия, уверен, будет адовая!
    Ну, как по мне это все таки как-то неправильно, что ли... По крайней мере об этом стоит упомянуть явно в доках.
    И еще одно: а если меньше занимать прошивка будет, ведь она же будет быстрее шиться и флеш будет меньше тереться? Быстрее шиться - это вот прям очень на самом деле важно, когда приложение отлаживаешь.
    Если у нас, к примеру, прошивка 4 кило, то и шить нужно 4 кило, а если каждый раз шить 200 (цифры от балды), то это и дольше и хуже для flash, имхо...
    В остальном - не принципиально конечно. А есть в этом какие-то преимущества? Ну, в том, что оно все разом в прошивку попадает?

    А да, еще один такой, имхо, минус: у человека меньше понимания, что и откуда берется. Это не всегда хорошо. То есть он пишет код, и не понимает, откуда взялось то или иное в нем. А потом если вдруг в новых версиях что-то будет выпилено, человек будет оооочень долго искать, откуда оно раньше бралось, так как он сам ни разу не подключал это в код инклюдами...

    Sermus, мне кажется, вам нужно создать свою отдельную тему (или даже несколько) рядом тут в этом же разделе, и оформить туда пока то, что есть. Чтобы не попадало все в одну солянку.

    PS: пока больше не напишу, времени нету сейчас особо...

    PS2: anakod, вот только что запостил тут тест энергопотребления на Sming с HTTP сервером.
     
    Victor нравится это.
  5. Sermus

    Sermus Читатель

    Сообщения:
    110
    Симпатии:
    15
    Да, серьезного программирования в Arduino IDE, конечно, не может получиться. Но с возможностью строить код для ESP8266 в ArduinoIDE приходят возможности типа программирования под нее в VisualStudio, который IMHO гораздо удобнее, чем Eclipse. О популяризации ESP я вообще молчу. Зря что ли ESP подключают к Ардуинам вместо того, чтобы программировать его напрямую? Высокий порог входимости в программирование ESP не в последнюю очередь обусловлен именно сложностью текущего набора инструментов для рядового гика малой автоматизации.

    Несколько разочарую Вас, но, во-первых, основную часть прошиваемого кода составляет содержимое либ из SDK. Так что даже если вы соберете пустой пример, там будет 180КБ. По поводу износа флеша. Какая разница сколько вы шьете - 4КБ или 1000КБ? Первые 4КБ все равно изнашиваются и после того как они полетят, Вы больше не прошьете нисколько.
     
  6. Sermus

    Sermus Читатель

    Сообщения:
    110
    Симпатии:
    15
    А вот это один из предметов координации нашей с Вами деятельности.
     
  7. aloika

    aloika Активный участник сообщества

    Сообщения:
    381
    Симпатии:
    26
    У меня так и не грузится...

    Такой вопрос - если в браузере написать http://simple.anakod.ru/templates/index.html - оно и в браузер не грузится. Это так и должно быть? И с другими двумя файлами та же история.

    UPD: заработало. Нужно было сделать spiffs_format(); . Видимо, что-то с файловой системой было.
     
    Последнее редактирование: 26 мар 2015
  8. JustACat

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

    Сообщения:
    568
    Симпатии:
    121
    Вот и я об том же :) Мысли про Arduino очень верные. Я и под Arduino, кстати, пишу не в Arduino IDE - нафиг-нафиг :) Ставлю в нем галочку - "Использовать внешний редактор" и программирую в своем любимом Notepad++, а в Ардуине лишь прошиваю, смотрю ошибки, если есть, иногда пользуюсь встроенным терминалом.
    В общем, подписываюсь практически под каждым вашим словом в этом смысле :)

    Что ж, этого я и боялся, тогда особо без разницы конечно. Единственное что может скорости все таки чуть быстрее? Хотя, если 180 кило либ, то остальное - уже копейки.

    У меня грузится. Делаю вывод: у вас до simple.anakod.ru из домашней сети плохой контакт, и, возможно, так совпало, что и при первой попытке загрузить как раз он был плохой. Ну а дальше ошибка осталась, пока вы все не форматнули. Неудачное стечение обстоятельств.
     
  9. aloika

    aloika Активный участник сообщества

    Сообщения:
    381
    Симпатии:
    26
    http://simple.anakod.ru/templates/index.html на компьютере в браузере не грузится, потому, что его Аваст блокирует. Просто на одном компе он это делает тихо и незаметно, поэтому я и не понял, что это он.
     
  10. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Подтверждаю, всю основную часть объема занимают SDKшные либы, которые ни порезать ни разобрать (по крайней мере пока).

    Вышла новая версия Sming
    • Добавлена поддержка специальной FTP команды "fsformat" - для быстрой и полной очистки файловой системы
    • Исправлены найденные ошибки FTP
    • Исправлена ошибка, которая приводила к тому, что если при первой загрузки с сервера файл не прошел, потом он уже не может скачаться до полного форматирования
    Последняя ошибка - это проблема spifFS a не моей части, но вроде бы удалось найти работающий обходной путь.
    Чтобы выполнять произвольные команды на FTP соединении, используйте менеджер который это умеет, например Total Commander.

    Просьба ко всем отписываться по результатам тестирования.
     
    Victor нравится это.
  11. JustACat

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

    Сообщения:
    568
    Симпатии:
    121
  12. shaman1010

    shaman1010 Читатель

    Сообщения:
    128
    Симпатии:
    14
    Не считая того, что при компиляции ругается на system_get_cpu_freq (пока в system.cpp подставляем в лоб: return eCF_80MHz)

    В WinSCP наблюдается странное поведение. Скидываю через него на FTP файл, размером 59 623 байт. В WinSCP светится размер 8760 байт. Скидываю этот файл обратно, сравниваю с исходным - идентичны. Нажимаю "обновить" в WinSCP - вижу нормальный размер. Думал показалось, Перекомпилил (пробовал частоту 160), перешил модуль. Повторяю действия - аналогично размер файла отфанарный, но меньше оригинального. Обновление - исправляет размер. Модуль подвис. Повторяю с перепрошивкой на 80МГц - опять неверный размер и подвисание. fsformat иногда удаляет все, иногда только мой добавленный файл. Рапортует всегда 200 File system successfully formated.

    Перепрошился at-шной однофайловой с бутом 1.3b, затем опять ftp-сервером.

    Первый раз файл залился на FTP, обратно вытягиваться не захотел. fsformat удалил инфу на диске, но после перезагрузки модуля - два тестовых файла на месте. Просто их удалил, обновился - файлов нет. Перезагрузил модуль - опять есть и читаются.

    И еще... это все на 128-й флеши. Как получить доступ к оставшимся 15,5МБ?
     
    Последнее редактирование: 28 мар 2015
  13. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Просили? Получайте :)

    Вышла новая версия Sming
    + AJAX Server Example. Dynamic processing user commands in realtime!

    400 миллисекунд. И это, я думаю, еще далеко не предел, если вдруг кому-то потребуется быстрее.
     
    Victor нравится это.
  14. ToteMeiSter

    ToteMeiSter Новичок

    Сообщения:
    2
    Симпатии:
    0
    anakod, подкорректируй в шапке
    "
    • Написано на базе Espressif SDK v0.9.5
    "
    Или там просто под спойлером вести измы.
     
  15. shaman1010

    shaman1010 Читатель

    Сообщения:
    128
    Симпатии:
    14
    Похоже что-то в DHCP-запросе поломалось.
    Собрал, прошил - мой DHCP сервер ругается на запрос, и не лизит его.
    Соответственно, нет IP - нет серверов :)

    Topics - dhcp warning
    Message default offering lease 192.168.1.15 for 18:FE:34:A0:8C:53 without success
     
    Последнее редактирование: 29 мар 2015
  16. Victor

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

    Сообщения:
    2.212
    Симпатии:
    388
    SDK 1.0.0 http://bbs.espressif.com/viewtopic.php?f=5&t=286
    Known issues:
    1. DHCP client may get wrong IP address
    2. Lib c string issue
    3. wifi_station_get_connect_status won‘t change immediately.
     
  17. aloika

    aloika Активный участник сообщества

    Сообщения:
    381
    Симпатии:
    26
    Спасибо огромное, это очень полезный для меня пример! Надо разбираться, просто совсем новая для меня тема...
    Скомпилировал, прошил - все работает, красота.
     
  18. shaman1010

    shaman1010 Читатель

    Сообщения:
    128
    Симпатии:
    14
    Скорее всего. Просто почему возник вопрос - HttpServer_Bootstrap получает IP, а HttpServer_AJAX нет. Собственно можно попытаться определить, где бочинит, и как обходить грабли с SDK.
    Сейчас прошил HttpServer_Bootstrap, получил IP и прошил HttpServer_AJAX. Аякс отозвался. Файлы из папки web заливаю (то одну, то другую) - ни в одном случае не вижу даже отданную модулем частоту. У меня flash - 128я.
     
  19. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Спасибо @sharky, теперь Sming поддерживает работу с Ultrasonic сенсором.
     
    JustACat и Victor нравится это.
  20. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Вышел новый релиз Sming
    • Добавлен класс WDT для работы с Watch Dog Timer.
    • Исправлена проблема с периодической перезагрузкой (!)
     
    aloika, JustACat и Victor нравится это.

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