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

Разработка ‘библиотеки’ малого webсервера на esp8266.

Vit

Member
Для скорости придется стирать страницами по 64k.
Для read-only ФС один раз при заливке стерпеть можно. Я беспокоюсь о записи пользовательских данных и о вариантах с конкурентным доступом (например, логгер по событию начал лить тренд неизвестного размера в файл, ну а со стороны сети прилетают подарки). И любые варианты чтения-модификации-записи тоже требуют времени и памяти на хотя бы сектор. Опять же время для стека - расход памяти на набивающиеся данные.
 

pvvx

Активный участник сообщества
Для read-only ФС один раз при заливке стерпеть можно. Я беспокоюсь о записи пользовательских данных и о вариантах с конкурентным доступом (например, логгер по событию начал лить тренд неизвестного размера в файл, ну а со стороны сети прилетают подарки). И любые варианты чтения-модификации-записи тоже требуют времени и памяти на хотя бы сектор. Опять же время для стека - расход памяти на набивающиеся данные.
У логгеров проблем нет. У них всё фиксировано и делать дырки в flash они не должны. У flash мало итераций стирания до дырки... И логгерам не положено иметь файловую систему. Их сохраненные данные должны обрабатываются находу в файл специальными процедурами. Т.е. запись логгеров имеет специальную структуру, адаптированную только под них.
Если логгер серьезный - то для набора статистики и т.д. надо ставить внешнюю FRAM. Они не сверх дороги... тупикал минимал Endurance Over operating temperature 10E14 Cycles, скорость записи - сколько SPI даст.
 
Последнее редактирование:

Vit

Member
делать дырки в flash они не должны
Я не об износе. Меня беспокоят времена ожидания и расход ОЗУ.
Ещё посмотрел, что в spi_flash_write передаётся uint32 *, к которому по тексту не стесняясь приводят uint8 * и прочая, зато длина в байтах, да ещё никто снаружи эту длину на кратность 4-м не проверяет. Интересно, это Xtensa не боится всяких обращений по нечетным адресам или это вместе просто такой отважный стиль?
 

pvvx

Активный участник сообщества
Я не об износе. Меня беспокоят времена ожидания и расход ОЗУ.
Ещё посмотрел, что в spi_flash_write передаётся uint32 *, к которому по тексту не стесняясь приводят uint8 * и прочая, зато длина в байтах, да ещё никто снаружи эту длину на кратность 4-м не проверяет. Интересно, это Xtensa не боится всяких обращений по нечетным адресам или это вместе просто такой отважный стиль?
Переписано же и сказано - "протект" при кривых адресах у процедур работы с flash... или возвращают кривые данные - байты перепутаны местами. :)
Не смотрите на Espressif - у них всё горбатое. Проверяйте перед использованием.
Из-за кривого SDK пока не существует ни одного работающего приложения на ESP8266.
Я и занят в основном разбором глюков SDK, а не приложением. Пока все глюки неизвестны - не выбрать алгоритм реализации приложения. По этому одни тесты пока и текущий код не является тем, что должно быть - это задней ногой писано исключительно для проверки, что данный алго может работать. Как только что-то отрабатывается, то код полностью переписываю для этой части.
В итоге пока не собрать нормальный вариант. Но просвет уже близок :)
 
Последнее редактирование:

Vit

Member
Если логгер серьезный
Для серьёзного внешний интерфейс (в данном случае WiFi) - это лишь опция. А FRAM конечно хороша (использую эти FM25H20 по работе, и даже камни MSP430FR5969 с FRAM-памятью программ/данных), но всё-таки они дороговаты. По ESP - имею только типа 07 с фактически одним как-бы не занятым GPIO. ESP-12 пока даже не заказывал. Потому ориентируюсь на то, что есть.
Просто пытаюсь понять предполагаемую дисциплину использования ФС/FLASH в проекте, а не в тестах и/или при начальной заливке
 

Vit

Member
Не смотрите на Espressif - у них всё горбатое. Проверяйте перед использованием.
К сожалению не могу не смотреть. Если нужно использовать flash - посмотрел на spi_flash_wr_16m, зацепился за spi_flash_write, а дальше - ожидаемо - сорцов нет. Но я ж не знаю даже что где из каких либ выдрано, насколько глючно и вааще используется ли на выходе (мапа не вижу - может плохо искал). Кстати, что там насчет os_printf ? его выхлоп на GPIO2 смотреть?
eagle.rom.addr.v6.ld это гораздо лучше, чем ничего. только я даже не понимаю, насколько этим добром можно пользоваться. ээх ещё бы реальный хедер:)
 
Последнее редактирование:

Alex

Member
Что за "образ"? Файлы диска, на больших flash, закатываются за начальной областью занятой ПО и SDK - за первыми 512кб. За 1Mb и "кеширование" flash у установок SDK "кешам" прекращается...
Как экспериментировать с даташитом?
Разве "образ диска" и "диск" в нашем случае не одно и тоже?
Я про это имел ввиду - "Исправил. Вышли все 16 Мегабайт. Закинул на диск web-а PDFв 1.34Megдля тестов…" Понял уже что это возможно только в правленой Вами SDK где диск грузиться выше 512 kb. К тому что для того чтобы добавить или убрать файлы на сервере для "download" надо будет пользоваться утилитой для формирования диска.

Про это писал где- то на форуме ранее.... Рабочий пример "DNS" дан и вложен в исходники. (Только не DNS - DHCP уже есть в системе, а netbios - для доступа по имени.) WPAD и PAC файл вкладывается в сервер... "Бывает у провайдера интернета" - При наличии подключения к инету с другой дырки будет бардак.
Т.е. это не относится к библиотеке HTTP сервера - реализуется пользователем, путем управления сборкой и вложения необходимых файлов в диск сервера.
Не провайдер, не интернет отношения к вопросу не имеют. WPAD и PAC наверное не то. Задача чтобы случайный пользователь ESP_WiFi_AP ( при естественно открытой сети WiFi) при попытке просмотреть любой домен попал на страницу WiFi сервера. DHCP может выполнять функции DNS, но вроде не все браузеры это поддерживают.
 

webself

New member
кстати интересная идея. чтобы по любому имени хоста модуль отзывался. должна быть реализуемой
путем модификации днса встроенного
 

pvvx

Активный участник сообщества
Не провайдер, не интернет отношения к вопросу не имеют. WPAD и PAC наверное не то. Задача чтобы случайный пользователь ESP_WiFi_AP ( при естественно открытой сети WiFi) при попытке просмотреть любой домен попал на страницу WiFi сервера. DHCP может выполнять функции DNS, но вроде не все браузеры это поддерживают.
WPAD именно то. Если эксплорер не запрашивает имени (или в него прописан глобальный DNS (8.8.8.8,8.8.4.4,...)), а лезет по IP ( к примеру из кеша), то какой нафиг DNS ? А WPAD переадресует всё.
В SDK есть переключение WiFi на прем всего (всех пакетов по эфиру) - организуйте перехват всех баз WiFi в округе и отсыл на свой сервер :)
------------
Кинул новую версию бардака исходников по старому адресу.
В следующих вариантах будет дополняться:
1) запись flash с эксплорера
2) сохранение установок во flash
3) объединение переменных в единый блок обработки (можно будет задать файл в котором описать специальные установки WiFi и т.д. - почти скрипт).
 
Последнее редактирование:

pvvx

Активный участник сообщества
Имею проблемы с FT2232 и программами терминалов TCP и COM портов – они ВСЕ виснут, переполняются, не могут выдать потока на 3Mbit, не дают менять настроек таймаутов межсимвольной передачи и т.д. В итоге поток с FT2232 идет 1 символ в 1 ms!
Основная беда у прог терминалов - не могут одновременно пересылать и принимать разные файлы - просто ужас какой-то - всё надо делать самому... :(