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

pvvx

Активный участник сообщества
А где можно информацию по base64 функциям/таблицам в ROM посмотреть более подробно? В OpenSDK оно уже есть?
Пока заменял всего таблицу https://github.com/pvvx/esp8266web/blob/master/app/web/web_utils.c#L402. Остальное, связанное с base64, использовать из области rodata rom-bios-ram никак - т.е. не имеет смыслу - код выйдет больше или другие ограничения.
Что-то конкретное?
Пока нет. Причина в отсутствии части 802.11 и ниже.
Новые Espressif SDK вообще уже имеют полные свои дубли, вплоть до таблиц таймеров и task - они теперь размешаются в общей RAM, а в ram используемой rom-bios эти буфера не задействованы. Полный киш-миш выходит... RTOS пользовать незя - у него (с) и код выходит особо большой. Если использовать task и timers rom-bios, то есть масса ограничений. Они работают только из ets_run(). А она не имеет выхода. Только callbаck-и.
Для ardurino такая концепция, работать только по событиям не катит.
Все дети в ardurino ищут цикл main() и без delay() жить не могут :)
 
Последнее редактирование:

LuckyFIA

New member
Большое спасибо за Sming.
Пытаюсь транслировать свой проект на Sming, в связи с этим возник вопрос:
Можно ли записать/считать данные с флеш из т.н. области "User param (16KB)" по адресу 0x3C или в Sming`е эта область занята и сохранять свои параметры возможно Только в spiffs
 

anakod

Moderator
Команда форума
Если использовать task и timers rom-bios, то есть масса ограничений. Они работают только из ets_run(). А она не имеет выхода. Только callbаck-и.
Для ardurino такая концепция, работать только по событиям не катит.
Все дети в ardurino ищут цикл main() и без delay() жить не могут :)
Sming как раз работает по событийной модели.

Можно ли записать/считать данные с флеш из т.н. области "User param (16KB)" по адресу 0x3C или в Sming`е эта область занята и сохранять свои параметры возможно Только в spiffs
Да, можно, но лучше предварительно проверить область инициализации spiffs.

Вообще концепция Sming больше подразумевает хранение данных в JSON, примеры есть в семпле WiFiConfig (но разумеется никаких обязательных требований в этом плане нет).
 

LuckyFIA

New member
Да с JSON я разобрался - очень удобно, однако если использовать AirUpdate то spiffs форматируется, а пару параметров желательно не потерять, по этому и пытаюсь их сохранить в область "User param"
Попытка стереть сектор 0x3C функцией spi_flash_erase_sector(0x3C);
приводит к
Fatal exception (0):
epc1=0x4023c0d8, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
??
Sming - занимает эту область?
или что может быть.
 

anakod

Moderator
Команда форума
Да с JSON я разобрался - очень удобно, однако если использовать AirUpdate то spiffs форматируется, а пару параметров желательно не потерять, по этому и пытаюсь их сохранить в область "User param"
Если использовать большую флеш (4Mb+) то это не обязательно.

Попытка стереть сектор 0x3C функцией spi_flash_erase_sector(0x3C);
приводит к
Fatal exception (0):
epc1=0x4023c0d8, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
??
Sming - занимает эту область?
или что может быть.
Думаю дело не в Sming, ошибка здесь в чем-то другом. Номер сектора верный?
 

LuckyFIA

New member
флеш 512, а сектор вроде верный, без sming на голом SDK все отлично сохраняется
да вот угледел различия в eagle.app.v6.cpp.ld
irom0_0_seg : org = 0x40209000, len = 0x42000
в SDK`ном линковщике
irom0_0_seg : org = 0x40240000, len = 0x3C000
может в этом дело
а нет кого нибудь memory map для sming что бы наверняка знать что куда зашивается
 

pvvx

Активный участник сообщества
@anakod - как в sming решена (или нет) проблема российских GSM в малом размере MTU?
Полные пакеты, с MTU 1500 (MSS 1460) байт с модуля не проходят, если на пути GSM. LwIP похоже не имеет возможностей коррекции MTU на ходу.
Только до компиляции. Работать такое соединение начинает если изменить MSS на 1420 в lwipopts.h... Т.е. надо подбирать под конкретную сеть...
Автоматического согласования не происходит. Просто не работает - большие пакеты не доходят. Тут описано, как нарвались :)
 
Последнее редактирование:

anakod

Moderator
Команда форума
Добавлен пример работы nRF24L01
на базе него очень удобно создавать бриджи Radio канал <-> Internet
 

pvvx

Активный участник сообщества
Есть какие-нибудь сроки по поддержке SSL-соединений?
Посмотрел оба примера по HttpClient, и вижу там только HTTP, хотя и thingspeak.com, и instapush.im, могут в любой момент его отключить.
Для этого потребуется полный переход на SDK1.2.0, иначе будут проблемы с "heap" (и с libssl.a, если её использовать).
 

Symrak

New member
@anakod, спасибо вам большое за Sming.
Подскажите пожалуйста, когда можно ожидать поддержки flash-памяти > 512 кб?
Спасибо.
 

pvvx

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

Vic_tor

New member
Здравствуйте , не знаю где туплю...запускаю cmd.exe от имени администратора (win 7 -64x) , ставлю по ссылке "https://chocolatey.org/" вот это "@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" выдает - файл прилагаю , помогите , что не так?
 

Вложения

anakod

Moderator
Команда форума
А почему DIO? Это же тормоз!!! В помойку такие модули. :) NodeMCU dev kit v2 = дешевая подделка, помойка.
Ждите версию №3 с ускоренной поддержкой флеш ;)

Здравствуйте , не знаю где туплю...запускаю cmd.exe от имени администратора (win 7 -64x) , ставлю по ссылке
Может быть choko уже установлен, и можно попробовать переходить к следующим пунктам? Вообще по проблемам установки лучше спрашивать в нашем чате: https://gitter.im/alonewolfx2/Sming
 

Casper

Member
Заметил что в Sming появилась библиотека для работы с si4432. Посмотрел библиотеку и не увидел там функции для отправки данных конкретному устройству(адресация) я так понимаю сейчас только широковещательно отправляются сообщения.. Было бы не плохо это реализовать)) Для этих трансиверах есть хорошая библиотека для ардуинки http://www.airspayce.com/mikem/arduino/RadioHead/index.html Раньше игрался с ними, но потом ушёл с ардуино и стал писать в Atmel Studio. Но руки не дошли, что бы портировать библиотеку и выкинуть от туда лишнее. Если есть библиотека под Atmega буду благодарен))
 
Здравствуйте!
Нужна помощь или совет.. требуется вызывать функциюС ПАРАМЕТРОМ через некоторое время задержки. С просто фцией без параметров таймер и вперед.. а как быть если надо параметр передать? Тут все еще тем усложнено, что классы использую и функция с параметром - член класа. Опять же есть TimerDelegate но оно для вызова фции челна класса по таймеру но БЕЗ ПАРАМЕТРОВ.а мне оно дозарезу надо. Начал копать и вроде как надо наследовать откласса Timer свой клас, переопределять конструктор initialiseMs на другой делегат, который типа typedef Delegate<void(int)> myTimerDelegate и переопределять Timer::processing чтоб вызывать функцию с параметрами.. вот только не до конца понимаю как правильно это все реализовать.
Может кто советом поможет или носом ткнет в более простой и прямой путь вызова по таймеру член класса с параметром..
Пасиб!
 

manfredmann

New member
Здравствуйте. Такой вопрос, можно как-то убрать вывод всей этой отладочной шелухи, вроде
Код:
TcpConnection::connect result:, 0
OnConnected
TCP connected
onReadyToSendData: 0
TcpClient request completed
TCP sent: 65
onReadyToSendData: 2
Header pos: 152
Server === nginx
Date === Mon, 24 Aug 2015 08:05:51 GMT
Content-Type === application/json
Connection === close
X-Powered-By === PHP/5.6.9-0+deb8u1
TCP received: 174 bytes
onReadyToSendData: 1
TCP received: (null)
timeout ok. Timer started
TCP connection closing
-TCP connection
У меня по uart идёт работа с stm32, и лишний "мусор" в уарт очень не желателен.
 
Сверху Снизу