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

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

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

Метки:
  1. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Благодаря нашему уважаемому сообществу и в особенности, Дмитрию Кирееву, у Sming наконец появилась полноценная система автоматической инсталяции и сборки.

    1. Full installation
    It will install:
    - Java Runtime 8
    - Eclipse C/C++
    - Unofficial Espressif Development Kit for Windows
    - Sming

    Install Chocolatey first:

    - Run Command line (type 'cmd' in start menu) in Administration mode, and paste:
    Код (Text):
    1. @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
    - Then install full development package
    Код (Text):
    1. choco install sming -source 'https://www.myget.org/F/kireevco-chocolatey/'
    2. Only Sming code instalation
    If you already have Eclipse and SDK just run:
    Код (Text):
    1. choco install sming.core -source 'https://www.myget.org/F/kireevco-chocolatey/'
    ---
    Просьба отписываться по результатам тестирования. Заранее спасибо!
     
  2. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Добавлена поддержка MQTT
    Первый комит.

    Для гарантии полной совместимости с протоколом, за основу взята популярная библиотека libemqtt, при этом программный интерфейс выполнен в с соответствии со стандартным стилем Sming.
    Текущее тестирование проводилось на http://test.mosquitto.org
     
    JustACat, shaman1010, aloika и ещё 1-му нравится это.
  3. JustACat

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

    Сообщения:
    568
    Симпатии:
    121
    anakod, имхо, очень не хватает кнопочки Donate в теме... Либо по ссылке на гитхабе... Я уже дважды порывался поддержать (немножко конечно, но чем богаты), а кнопочки не нашел...
     
  4. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Пожалуйста, обновил первый пост. :) Я премного благодарен любой поддержке, т.к. Sming это по меньшей мере два месяца бессонных ночей, и всегда приятно кода работу оценивают её конечные пользователи.
     
    Последнее редактирование модератором: 12 апр 2015
    JustACat нравится это.
  5. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Завершена работа над протоколом MQTT.
    Релизная версия в репозитории. Буду рад вашему фидбеку.

    Добавлена полная очистка файловой системы (примерно как fsformat) по цели Make файла "flashinit". Для использования достаточно кликнуть цель в Eclipse. Настоятельно рекомендуется делать это каждый раз при переходе от одного проекта к другому (если они используют файлы).
     
    Victor, aloika и JustACat нравится это.
  6. JustACat

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

    Сообщения:
    568
    Симпатии:
    121
    Внимание ВСЕМ!
    Еще раз отмечу по поводу запросов по Sming. Пожалуйста, пишите в соответствующие темы:
    - запрос примеров сюда
    - запрос библиотек сюда
    - общие глюки/баги и т.п. сюда
    - ошибки в примерах сюда
    Любой вопрос, подпадающий под эти 4-ре раздела, размещенный в данной общей теме - мною будет нещадно удаляться (не буду дальше за вас переносить). Потом не говорите, что не предупреждал... Надеюсь на понимание...

    PS: последнюю страницу темы почистил (перенес/удалил), на остальные меня пока не хватило...
     
    Последнее редактирование модератором: 14 апр 2015
    marvel_a и Victor нравится это.
  7. pvvx

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

    Сообщения:
    9.295
    Симпатии:
    1.319
    anakod - с deep-sleep что намечается? А то я затеял новый libmain.a, а там старт уже переписываю на свой лад. При просыпании из deep-sleep часто нет смысла стартовать весь SDK для опроса датчиков, что ну очень сильно уменьшает общее потребление. Так-же возможно (уже) вписывание (расширение) в esp_init_data_default.bin настроек пинов по умолчанию (отказ от вывода отладки в UART, их скорость по умолчанию и многое другое). Исходники измененной либы будут, но позже (надо доразобрать, дописать и выдумать названия полям задействованных структур в SDK у Espressif - кто-бы в этом оказал помощь?).
     
    Victor и JustACat нравится это.
  8. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Мне так же очень интересно это направление, я хотел бы в перспективе видеть полностью открытый SDK. Готов поучаствовать в этой работе и помочь всем чем смогу (но сразу предупреждаю что опыта диасеблинга конкретно под микроконтролеры у меня нет). А в части разработки нового (замещающего) функционала - вообще вопросов нет.

    Можем завести отдельный репозиторий на гитхабе под это направление, чтобы больше людей могло участвовать в процессе, т.к. работа очень большая и в одиночку ее сделать почти не реально. Т.е. это будет уже не текущая веб свалка а некоторая коллекция фрагментов СДК в которых все большая и большая часть будет замещаться переписанным очищенным и открытым кодом. У Вас, как я понимаю, уже есть для этого существенный базис + у нас есть ESP OPEN LWIP для сетевой части, на мой взгляд он сделан достаточно неплохо.

    Так же на днях я запустил новый проект, цель он преследует ту же самую, правда реализация практически обратная - пока это задействование возможностей SDK :)
    https://github.com/anakod/esp_microc
    В нем я пытаюсь максимально избавиться от дублирования кода и при этом иметь весь основной функционал стандартной библиотеки Си.
     
    sharky, JustACat и Victor нравится это.
  9. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    pvvx, извиняюсь за долгий ответ, хотел перед продолжением обсуждения изучить декомпилированные исходники. Это Очень крутая работа, спасибо! Учитывая что libnet80211 - опенсурс (с вероятно небольшими и глупыми изменениями эспресовцов), то как мне кажется, есть вполне реальный шанс полностью выпилить лишний бредокод китайцев и сделать весь стек ESP открытым от начала до конца и кастомизируемым под конкретный проект.

    Вы зря недооцениваете гитхаб, толпа, конечно же, не появится, но если развивать проект, писать о нем, то люди начнут участвовать и помогать с релизацией. К примеру, в Sming сейчас уже 5 сторонних контрибьютеров, и даже не смотря на то что многие внесли небольшой вклад (за что им большое-прибольшое спасибо), суммарно это дает существенное ускорение работы и, конечно, огромную помощь в тестировании и выявлении багов. С другой стороны гитхаб это очень хорошая площадка для совместной работы. Например если я сейчас включусь и декомпилирую\отрефакторю какой-нибудь модуль, мне его даже Вам никак не передать, не по почте же мы будем исходниками обмениваться (конфликты и т.п.). В вопросах освещения проекта, привлечении публики и т.д. я готов активно участвовать. Уверен эта тема быстро соберет комунити если объяснить сколько выгод мы можем получить в конечном итоге (это даже еще без учета самых продвинутых вариантов типа динамического загрузчика модулей и т.п.).

    Изначально был не согласен с этой мыслью, но теперь после изучения декомпилированных исходников, пожалуй соглашусь :D

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

    Мое видение возможной концепции проекта:
    • Микроядро - самый базовый необходимый функционал типа инициализации чипа, флеш, сетевого оборудования(?) и т.д. Никакого бредокода, пользовательского кода и фич
    • Системный API - инструментарий для взаимодействия с ESP типа режимов сна, работы с переферией, wdt и т.д.
    • Сеть и все что с ней связанно - LWIP и прочее.
    • Обертки, эмулирующие стандартный Esspressif SDK на базе предыдущих трех элементов - самый бесполезный блок, думаю можно с чистой совестью выбросить :)
    В каждом слое только то что нужно, никаких "а давайте мы тут еще будем все это дело в файл сохранять, почему бы и нет" и "возьмем все вместе и смешаем в одну кучу" - любимых подходов китайцев. Мне кажется так можно получить очень гибкую и мощную ситему, да и из чипа выжать полный максимум, потому что он сейчас сильно недооценен и ограничен, причем во многом это заслуга китайских "разработчиков".
     
    pvvx и JustACat нравится это.
  10. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Новая версия Sming
    • Добавлен UDP и пример его использования
    • Автоматическое стирание старой файловой системы при загрузке прошивки (должно решить все проблемы со старыми файлами)
    • Библиотека WS2812 RGB LED (спасибо markusgritsch!)
    • Другие небольшие но вкусные плюшки :)
     
    JustACat нравится это.
  11. pvvx

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

    Сообщения:
    9.295
    Симпатии:
    1.319
    Они меняются каждый день. Выкладываю только промежуточные варианты в WEB "свалке". И то там только часть адаптированная к "свалке".
    В том-то и дело, что путей очень много и разбирать полностью "галиматью" от китайцев не требуется. По этому создать общий гитхаб никак, только в случае полного разбора SDK со всеми глупостями - он один будет однозначен - все другие будут иметь отличия под конкретную "заточку".
    Пример направления для модуля и датчиков описал тут: http://esp8266.ru/forum/threads/raz...go-webservera-na-esp8266.56/page-24#post-5187
    На первое я уже говорил - необходимо сделать описание всех заголовков для ROM-BIOS (eagle.rom.addr.v6.ld) и аппаратуры отдельно от SDK. Я уже начал это, но выложена только часть. Пример прилеплен.
    Этот разговор пора переносить в тему
    'Реверс' SDK Espressif и ROM-BIOS для создания открытого SDK.
     

    Вложения:

    • spiflash.zip
      Размер файла:
      1,1 КБ
      Просмотров:
      19
    Последнее редактирование: 21 апр 2015
  12. anakod

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

    Сообщения:
    314
    Симпатии:
    100
  13. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Добавлена поддержка OTA (Cloud update)
    Теперь обновлять прошивку можно по воздуху вызовом нескольких строчек кода.
    Пример: Basic_AirUpdate

    ---
    Китайские программисты местами просто убивают. В SDK 1.0 они вставили вызов system_get_time в функцию spi_flash_erase_sector. Казалось бы причем тут системное время в низкоуровневой функции работы с флеш? Ну даже просто с точки зрения любой хотя бы немного разумной логики. Но самое страшное не это, главный бонус таиться в том, что system_get_time лежит в iram и благодаря этому, мы полностью теряем возможность писать в программную область флеш благодаря этому "нововведению". Что-то подсказывает мне что китайцы сами не поняли как это произошло. В 1.0.1 b1 вызов убрали обратно. Но все это наводит меня на грустные мысли что:
    1. Пока что в Sming надо переходить на фиксированную версию SDK и обновлять ее строго вручную и только после тщательного тестирования (мало ли что еще "вкусного" нам готовит генератор случайного кода Espressif)
    2. Надо как можно скорее реверсить SDK и отказываться от всех наработок Espressif.
     
    JustACat нравится это.
  14. pvvx

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

    Сообщения:
    9.295
    Симпатии:
    1.319
    Боялись, что время потеряется :)
    Переписал уже все функции связанные с flash. Чтение flash по SPI в BIOS идет максимальными блоками по 32 байта. Это к сведению, для "оптимизации" по скорости запросов к функции чтения для "лечения" SpifFS...
     
    JustACat нравится это.
  15. JustACat

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

    Сообщения:
    568
    Симпатии:
    121
    anakod, а на какой все таки фиксироваться будем? На 1.0.1 b1 или b2?
    Они вон там чего-то еще во FLASH_DOWNLOAD_TOOLS обновили...
     
  16. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    Новая версия Sming
    • Полная поддержка кроссплатформенности: Windows, Mac, Linux
    • Большой, многофункциональный и очень полезный пример выбора и настройки WiFi сетей (все благодарности Климатехник'у, он заказчик этого проекта, публикуется, разумеется, с его согласия)
    • Множество исправлений и оптимизаций в ядре
    • Временно произведен переход на стандартный lwip для совместимости с любыми версиями SDK
    • Поддержка указания полных параметров IP в режиме Station
    [​IMG]
     
    sherr и JustACat нравится это.
  17. clinkme

    clinkme Новичок

    Сообщения:
    32
    Симпатии:
    3
    Под Windows есть небольшая проблема: sh.exe на базе MSYS не поддерживает команду stat.
    Т.е. вот эта строка в файле Makefile-windows.mk не работает
    Код (Text):
    1. GET_FILESIZE ?= stat --printf="%s"
    Можно что-нибудь придумать?
     
  18. anakod

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

    Сообщения:
    314
    Симпатии:
    100
    1. Можно перейти на стандартное окружение (подробности по правильной установке Sming есть в вики)
    2. Вы можете это пока просто убрать, т.к. данная функция является дополнением и не обязательна
    3. Неплохо было бы пообщаться с автором самой кроссплатформенной ветки, я пока больше сосредоточен на функционале ядра. Я у него поинтересуюсь.
     
  19. JustACat

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

    Сообщения:
    568
    Симпатии:
    121
    anakod, если gitter-чат по Sming не "только для разработчиков" - то может напишете о нем в описании Sming в 1 посте?
    Да, понятно, что его можно "найти" через дебри github, но, сами понимаете, далеко не все об этом знают.
    Ну это к слову о "Неплохо было бы пообщаться с автором самой кроссплатформенной ветки".
    То есть, если в первом сообщении крупно написать: "онлайн-чат обсуждение Sming находится тут (ссылка) - вы можете обсудить функционал, работу и т.п." - ну или как-то так.
    Если нет - то нет, я не настаиваю :-Р
     
    Victor нравится это.
  20. clinkme

    clinkme Новичок

    Сообщения:
    32
    Симпатии:
    3
    Отвечу са себе. stat.exe нашелся в MinGW, все заработало :D
     

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