• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Arduino для RTL8710.

sharikov

Active member
> еще не адаптировал файловую систему.
Только Spiffs не надо - где нибудь в другой теме про него, если хотите... :) Хуже FS spiffs в жизни не встречал...
Возможно spiffs плоха, но что вместо нее? (это не только для rtl надо)
В случае Read-only еще можно что-то придумать, но нужна также и фс с возможностью записи и реализацией flash wear leveling, причем с открытой лицензией и потреблением ресурсов не как у jffs. Таких открытых фс не особо много, причем половина заброшены.
Что-то есть в составе contiki: CFS-Coffee
 

pvvx

Активный участник сообщества
Возможно spiffs плоха, но что вместо нее? (это не только для rtl надо)
В случае Read-only еще можно что-то придумать, но нужна также и фс с возможностью записи и реализацией flash wear leveling, причем с открытой лицензией и потреблением ресурсов не как у jffs. Таких открытых фс не особо много, причем половина заброшены.
Что-то есть в составе contiki: CFS-Coffee
SD карта. На ней обычно FAT32. Или напишите NTFS?
Spiffs много-поточный? Сколько он откроет-закроет файлов в секунду? Как он будет жить с 30-тью одновременно открытыми файлами и каково его потребление ресурсов при этом? Т.е. остается ли смысл его кодадробилки при много-поточности?
Для коммуникаций по WiFi нам надо от файловой системы порциональность в 2 MSS. Это где-то 2x1460 байт и таких пачек не менее 400 в секунду. SD контролер это обеспечивает без проблем – у него трансфер 20 мегабайт в сек и задержки запроса сектора – us-ы. Т.е. нет смысла держать кэш на данные. При 32-х одновременно открытых файлах нам требуется хранение 32 указателей на последние сектора для чтения-записи и “кеш” для этих указателей на последующие чтения-записи секторов. Это занимает памяти меньше чем использует spiffs для копашения в одном файле с пределом обработки одного запроса в секунду...
@pvvx add source-patch · pvvx/RtlDuino@81db642 · GitHub примерно после этого коммита перестал работать WebRtl. Буду искать причину.
Всякие просят исходники... Просто кинул файл - удалите.
WebRtl не работал изначально. Не стоит идти по пути горе писателей Ардуино к ESP8266. Данный алгоритм не годится для web. Если описывать отдельно тот бред с нуля, просто в скетче, то он работает, но ужасно. Браузер открывает несколько потоков и выходит тормоз - поочередное исполнение каждого открытого соединения с нуля и до конца отдачи файла. Остальные соединения ждут и смысл многопоточности пропадает.
Весь код к Ардуино для ESP8266 сделан исключительно для галочки - типа оно есть, а не для работы. Вы же видели - там стоит (c). Вот для этого и сделан. Других целей походу там нет.
 
Последнее редактирование:

sharikov

Active member
SD карта. На ней обычно FAT32. Или напишите NTFS?
Spiffs много-поточный? Сколько он откроет-закроет файлов в секунду? Как он будет жить с 30-тью одновременно открытыми файлами и каково его потребление ресурсов при этом?
На sd карте обычно FAT32 или ExFAT. Второе к сожалению востребовано потому как юзеры уже разбалованы картами на 64 гига (т.е exfat в web-sd reader придется вставлять). NTFS на SD встречается сравнительно редко хотя я например пользуюсь.
Если нужно открывать 30 файлов одновременно буду смотреть в сторону linux с 128-256-512 метрами озу для глубокого кэширования потому что флэш при конкурирующих обращениях тормозит.
 

pvvx

Активный участник сообщества
На sd карте обычно FAT32 или ExFAT. Второе к сожалению востребовано потому как юзеры уже разбалованы картами на 64 гига (т.е exfat в web-sd reader придется вставлять). NTFS на SD встречается сравнительно редко хотя я например пользуюсь.
Если нужно открывать 30 файлов одновременно буду смотреть в сторону linux с 128-256-512 метрами озу для глубокого кэширования потому что флэш при конкурирующих обращениях тормозит.
30-ть это на завтрашний день (на следующий год :) ). Для RTL8710 - желательно штук 8-мь открытых файлов... Тормозит не флеш, а ПО.
Проблем с памятью у RTL8711AM нет. Spiffs полностью в пролете со своей оптимизацией на работу с парами байт раскиданными по всей флеш... Для Ардуинщиков на ESP-32S в самый раз :D
 

pvvx

Активный участник сообщества
а я буду смотреть с сторону UDK с Eclipse для модулей RTLxxx под Windows т.к. диодом я уже помигал :)
Но в UDK нет C++.
Уровень mbed не доделан для заголовков C++.
Там требуется реструктуризация всего SDK. Много лишнего и много не так, как хотелось бы. А хотелось бы оверлейное исполнение – подгрузку отельных задач хоть с SD.
 

sharikov

Active member
30-ть это на завтрашний день (на следующий год :) ). Для RTL8710 - желательно штук 8-мь открытых файлов... Тормозит не флеш, а ПО.
Проблем с памятью у RTL8711AM нет. Spiffs полностью в пролете со своей оптимизацией на работу с парами байт раскиданными по всей флеш...
RTL8711AM стоит $12 и тенденции к снижению цены не наблюдается. За эти деньги берется на порядок более мощный openwrt модуль, поэтому про AM забываем: не взлетит.
У AF проблемы с памятью есть хотя и не такие острые как в esp8266.

А хотелось бы оверлейное исполнение – подгрузку отельных задач хоть с SD.
Возьмите linux.
 

pvvx

Активный участник сообщества
RTL8711AM стоит $12 и тенденции к снижению цены не наблюдается. За эти деньги берется на порядок более мощный openwrt модуль, поэтому про AM забываем: не взлетит.
Это для вас. Для меня другой ценник - меньше ESP8266.
У AF проблемы с памятью есть хотя и не такие острые как в esp8266.
Возьмите linux.
Есть и не вижу смысла его ставить на простые устройства - к примеру управляемого БП без экрана и кнопочек, но с выводом на экран любого и управления с любой системы, типа LabVIEW. ESP с этим не справился из-за глюков в закрытых китайских либах и самом чипе.
Так-же не вижу смысла ставить Linux и на WiFi-SD файловый сервер. Быстрее от этого он не станет, а наоборот - будет дополнительно тормозить и требовать специализированного питания за 500 mA.
И это не считая массы контролеров, для настройки которых всегда требуется дополнительное ПО и аппаратные драйвера, бумажная документация. RTL00 их замещает и устройство можно конфигурировать с телефона, читая help прямо из него...
Легким движением руки с телефоном около устройства, через NFC включается WiFi сессия конфигурации устройства... логирования и диагностики. При этом вы не привязаны шнуром к устройству и отдыхаете на диване...
"Легким движением руки брюки превращаются в элегантные шорты" :)
 
Последнее редактирование:

dev_n

New member
@dev_n - а что делает приложенный RTL_DEMO?
Ничего полезного. Попытка загрузить конфиг, если не подключились к точке доступа - подняли свою. Подняли "Веб Сервер", выбрали из интерфейса точку доступа, если удачное подключение к точке доступа - сохранили во флешь параметры. Все.
 

pvvx

Активный участник сообщества
Ничего полезного. Попытка загрузить конфиг, если не подключились к точке доступа - подняли свою. Подняли "Веб Сервер", выбрали из интерфейса точку доступа, если удачное подключение к точке доступа - сохранили во флешь параметры. Все.
Я там кинул класс RtlDuino/development/rtl87xx/libraries/FlashMemory/examples/FlashEEPBasic at master · pvvx/RtlDuino · GitHub
Всё уже предусмотрено... RtlDuino/FlashEEP.h at master · pvvx/RtlDuino · GitHub
RTL00MP3/flash_eep.c at master · pvvx/RTL00MP3 · GitHub
Примеры 'AT' давно переведены на работу с FlashEEP. В Дурину ещё не вставлял конфигурацию WiFi...
 
Последнее редактирование:

pvvx

Активный участник сообщества
Ничего полезного. Попытка загрузить конфиг, если не подключились к точке доступа - подняли свою. Подняли "Веб Сервер", выбрали из интерфейса точку доступа, если удачное подключение к точке доступа - сохранили во флешь параметры. Все.
Может пойти другим путем? Не переписывать скетчи ESP8266, а добавить эмуляцию его в уровень SDK. Для поддержки Arduino ESP8266 достаточно вписать около 20 стандартных процедур эмуляции системы ESP8266 на SDK в RTL871x. Они не сложные, тем более 90% их исходников есть. Но это не мой путь :)
 

dev_n

New member
Может пойти другим путем?
Вы же сами писали:
Весь код к Ардуино для ESP8266 сделан исключительно для галочки - типа оно есть, а не для работы.
так что более правильным было бы переписать все с нуля. У меня, лично, нет соответствующих знаний. Но если у меня чего-то будет получаться (или не получаться :)), буду выкладывать. А покуда смотрю примеры SDK.
 

pvvx

Активный участник сообщества
Вы же сами писали:

так что более правильным было бы переписать все с нуля. У меня, лично, нет соответствующих знаний. Но если у меня чего-то будет получаться (или не получаться :)), буду выкладывать. А покуда смотрю примеры SDK.
Ну скоро будет и Arduino ESP-32S. Судя по рассказам её писателей, у них какие-то приключения с много-ядерностью. Не могут разделить задачи на ядра :) и писанный ими-же код для Arduino ESP8266 никуда не годиться -> сами себя подставили :)

Я вообще не вижу никакой стандартизации в Arduino. Она там не указана. Но молча все придерживаются mbed, на устройствах, которые позволяют его задействовать – это в основном ARM-ы. Буду пытаться придерживаться mbed... но не полностью, т.к. к примеру в него тоже залезли ESP8266-шники и тянут свою кривую ветку конфигурации WiFi (конфигурации через JSON стринги) и т.д.. :)
 
Последнее редактирование:

A_D

Active member
Я вообще не вижу никакой стандартизации в Arduino. Она там не указана. Но молча все придерживаются mbed, на устройствах, которые позволяют его задействовать – это в основном ARM-ы. Буду пытаться придерживаться mbed... но не полностью, т.к. к примеру в него тоже залезли ESP8266-шники и тянут свою кривую ветку конфигурации WiFi (конфигурации через JSON стринги) и т.д.. :)
А чем так хорош этот MBED ? Насколько я понял, это очередная надстройка абстракции над железом аля ардуино, только более навороченная... или же есть какие либо фишки, ради которых её использование оправдано ?(кроме применения по типу ардуино - абстрагирования от железа)
и погуглив на тему MBED наткнулся на эту статейку - MBED, или о дырявых абстракциях ну, не впечатляет MBED после такого. + IDE в облаке... STM32 Nucleo: быстрый старт с mbed [Амперка / Вики] эм.. ну это как САПР для ПП в облаке для ардуинщиков - Free PCB Design Software | CircuitMaker типа и бесплатно, но как то и хранить проекты у себя на компе нельзя, да и без интернета никак не поработаешь..
 

pvvx

Активный участник сообщества
А чем так хорош этот MBED ? Насколько я понял, это очередная надстройка абстракции над железом аля ардуино, только более навороченная... или же есть какие либо фишки, ради которых её использование оправдано ?(кроме применения по типу ардуино - абстрагирования от железа)
и погуглив на тему MBED наткнулся на эту статейку - MBED, или о дырявых абстракциях ну, не впечатляет MBED после такого. + IDE в облаке... STM32 Nucleo: быстрый старт с mbed [Амперка / Вики] эм.. ну это как САПР для ПП в облаке для ардуинщиков - Free PCB Design Software | CircuitMaker типа и бесплатно, но как то и хранить проекты у себя на компе нельзя, да и без интернета никак не поработаешь..
А есть другие предложения по стандартизации интерфейса для "Абстрагирующихся" = пользователей Arduino?
 

A_D

Active member
Ну смыл не понимаю, железа разного много, у каждого свои фишки, особенности. А если всё под одну гребенку попытаться сделать, то попросту все эти фишки будут явно урезаны или неполноценно реализованы..
Выходит это альтернатива ардуино, только на АРМ - делают под стандартные платы (аля аналоги линейки леонардо,мини,микро ардуин) к ним тоже на определенные пины только типа шилдов переферии и всё. Без углубления в железо, что б пользователь и в даташит не заглядывал - подключил одно к другому и пиши код..
Получается так или я не понял основного посыла использования MBED?
 

pvvx

Активный участник сообщества
Ну смыл не понимаю, железа разного много, у каждого свои фишки, особенности. А если всё под одну гребенку попытаться сделать, то попросту все эти фишки будут явно урезаны или неполноценно реализованы..
Выходит это альтернатива ардуино, только на АРМ - делают под стандартные платы (аля аналоги линейки леонардо,мини,микро ардуин) к ним тоже на определенные пины только типа шилдов переферии и всё. Без углубления в железо, что б пользователь и в даташит не заглядывал - подключил одно к другому и пиши код..
Получается так или я не понял основного посыла использования MBED?
Я не предпочитаю никакой из описанных, но чего-то придерживаться надо. Так-же я не болен синдромом NIH :)
На сегодня можно все устройства используемые как конструкторы (Arduino и т.д.) разбить на три класса:
1) 8/16 битные MCU (датчики)
2) Нормальные SoC (MCU 32 бит, RAM от пол до дцать мег) (автономные устройства и т.д.) (включая OpenWRT и её развитие)
3) Linux устройства
Для каждого из них своя ниша и применение на долгие времена. ESP8266 и прочие огрызки не лезут ни в какую из них, т.к. являются временным промежуточным этапом перехода от класса 1 в 2. Все наработки на них будут поскипаны.
Для класса 2 уже давно есть много MCU, но с WiFi как конструктор пока мало.
Часто там стоит BSD. Туда "портировано" уже всё. Полная Lua и т.д.
(Первый попавшийся по поиску пример GitHub - sergev/LiteBSD: Variant of 4.4BSD Unix for microcontrollers)
 
Последнее редактирование:
Сверху Снизу