• Система автоматизации с открытым исходным кодом на базе 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)
 
Последнее редактирование:
Сверху Снизу