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

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

Тема в разделе "SDK и создание собственных прошивок", создана пользователем pvvx, 3 янв 2015.

  1. Vit

    Vit Новичок

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

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    У логгеров проблем нет. У них всё фиксировано и делать дырки в flash они не должны. У flash мало итераций стирания до дырки... И логгерам не положено иметь файловую систему. Их сохраненные данные должны обрабатываются находу в файл специальными процедурами. Т.е. запись логгеров имеет специальную структуру, адаптированную только под них.
    Если логгер серьезный - то для набора статистики и т.д. надо ставить внешнюю FRAM. Они не сверх дороги... тупикал минимал Endurance Over operating temperature 10E14 Cycles, скорость записи - сколько SPI даст.
     
    Последнее редактирование: 10 янв 2015
  3. Vit

    Vit Новичок

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

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    Переписано же и сказано - "протект" при кривых адресах у процедур работы с flash... или возвращают кривые данные - байты перепутаны местами. :)
    Не смотрите на Espressif - у них всё горбатое. Проверяйте перед использованием.
    Из-за кривого SDK пока не существует ни одного работающего приложения на ESP8266.
    Я и занят в основном разбором глюков SDK, а не приложением. Пока все глюки неизвестны - не выбрать алгоритм реализации приложения. По этому одни тесты пока и текущий код не является тем, что должно быть - это задней ногой писано исключительно для проверки, что данный алго может работать. Как только что-то отрабатывается, то код полностью переписываю для этой части.
    В итоге пока не собрать нормальный вариант. Но просвет уже близок :)
     
    Последнее редактирование: 10 янв 2015
  5. Vit

    Vit Новичок

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

    Vit Новичок

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

    Alex Читатель

    Сообщения:
    122
    Симпатии:
    8
    Разве "образ диска" и "диск" в нашем случае не одно и тоже?
    Я про это имел ввиду - "Исправил. Вышли все 16 Мегабайт. Закинул на диск web-а PDFв 1.34Megдля тестов…" Понял уже что это возможно только в правленой Вами SDK где диск грузиться выше 512 kb. К тому что для того чтобы добавить или убрать файлы на сервере для "download" надо будет пользоваться утилитой для формирования диска.

    Не провайдер, не интернет отношения к вопросу не имеют. WPAD и PAC наверное не то. Задача чтобы случайный пользователь ESP_WiFi_AP ( при естественно открытой сети WiFi) при попытке просмотреть любой домен попал на страницу WiFi сервера. DHCP может выполнять функции DNS, но вроде не все браузеры это поддерживают.
     
  8. webself

    webself Новичок

    Сообщения:
    5
    Симпатии:
    0
    кстати интересная идея. чтобы по любому имени хоста модуль отзывался. должна быть реализуемой
    путем модификации днса встроенного
     
  9. pvvx

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

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

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

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


    Отключается в SDK system_set_os_print(on/off), в тестовом порту UDP P1? P0?, все сообщения web-а выключатся в user_config.h: #define DEBUGSOO 0
    http://esp8266.ru/forum/threads/ne-objavlennye-funkcii-sdk.20/#post-511
     
    Последнее редактирование: 10 янв 2015
  11. Alex

    Alex Читатель

    Сообщения:
    122
    Симпатии:
    8
    Да не, пакость более мелкая. Внедряешь платку на ESP_WiFi в часы или светильник или еще какую девайсину с постоянным питанием. в платку сервачек с прайсом, адресом, ссылкам, телефонами. И дарим эту радость конкурентам. Или в соседний общепит.
     
  12. pvvx

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    Починил передачу на UART при малых скоростях (свалка исходников перезалита). Не теми значениями таймер заряжал :) Но это всё равно для демки, что метод работает, т.к. надо менять алго c таймерами и прерываниями UART полностью :(.
     
  13. Andrey

    Andrey Новичок

    Сообщения:
    38
    Симпатии:
    2
    Не хочу показаться банальным. Вы выставили в настройках COM порта в виндовс задержку 1? По умолчанию там стоит 16. Свойства компорта, там где обычно стоит скорость 9600, есть кнопка дополнительно. Её нажимаете и в дополнительных настройках на задержку ставите 1. Там ещё размер FIFO настраивается. Скриншот сделать пока не могу- нет FTDI. Это особенность FTDI драйверов.
     
  14. Perfer

    Perfer Новичок

    Сообщения:
    27
    Симпатии:
    3
    Дико извиняюсь еще раз, но может проект на github выложить и работать только через pull-requestы. Один фиг все на yandex диске уже лежит а кооректный git-репозиторий (с разумными коммитами) приведет все в порядок и видно будет хронологию развития + всякие там bugreport можно писать и иные "плюшки"
     
  15. pvvx

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    Обновил пакетик хламу. Теперь там нормальная программа для создания диска - руки дотянулись вырезать лейбы Микрочипа :). Ну и файлы работы с диском переписаны и везде другие имена - долой MPFS ! :)
    Как видите - я там махаю метлой по полной. Иногда по 30% файлов и переменных заменяю... github - упадет. :) И у меня всего 100Mb инет, а не 1Gb... Будет версия постабильнее - тогда можно.
    pCOM6.gif FT2232C.gif pCOM6_COM14.gif ? Любыми программами...
    Проблема в том, что данный модуль cFT2232, а их много у меня, уже сделан вставляемым в единую отладочную систему с разъемами для ESP8266 и логгеров...
    Я уж давно плюнул, что большинство терминалов работает пачками с любыми COMпортами, но эта межсивольная 1 мс меня убивает…

    Вот так пашет хваленый https://sites.google.com/site/terminalbpp/
    term.gif :)
     
    Последнее редактирование: 11 янв 2015
  16. Andrey

    Andrey Новичок

    Сообщения:
    38
    Симпатии:
    2
    Первый скриншот "время ожидания" стоит 16. Поставьте 1 и будет вам счастье :) И не ищите здесь логику или совпадение по микросекундам. Просто поставьте. Хотя бы один раз для эксперимента. :) У вас после этого задержка даже на 115200 пропадёт.
     
  17. pvvx

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    Пробовал любые цифири - эта 1 ms остается на всех более менее программах терминалов (видимо они бояться ставить нуль и тусуют 1) . На глючных - там вообще бардак.

    Проблемка локализована.
    Написал сам вывод в COMпорт – всё OK.
    До этого, за час проверил с десяток COMтерминалов. Всё смешные и ни один не работает правильно. Горе писаки – ещё денег просят. А из sourceforge – там вооще:
    К примеру этот - RealTerm: Serial/TCPTerminalhttp://sourceforge.net/projects/realterm/ вдает пачками по 0,69ms с паузами по 47ms… :) :) Это же специально так надо научиться писать :)
     
  18. Andrey

    Andrey Новичок

    Сообщения:
    38
    Симпатии:
    2
    Понял. Просто мы использовали вывод в COM без терминалов. И если не стояла эта единица, то получали задержки между байтами. Я сразу не понял что терминал может вносить свою задержку.
     
  19. pvvx

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    Для теста надо организовать непрерывный поток от 300 до 10 000 000 Baud и дуплексный, с проверкой что там крутится. А ни одна из прог в инете этого не может. Если есть передача файла, то запихнув туда файл в дцать мегобайт они виснут наглухо или прерывают поток. Запустить при этом ещё одновременно прием в файл – это вообще непосильная у них задача. В большинстве прог скорости более 115200 вообще нет… Ну а детские проги просто лепят задержки понравившиеся на вид цифр и аналогичные размеры буферов... :)
     
  20. Perfer

    Perfer Новичок

    Сообщения:
    27
    Симпатии:
    3
    Хороший терминал надо через потоки делать, что тянет за собой асинхронный обмен между ними, не каждый будет заморачиваться. Да и еще при конфигурировании порта (при написании терминала непосредственно) можно даже не заглядывать в настройки windows так как общение обычно идет с драйвером порта напрямую, которому пофиг как там в ОСи настроено - как ему (драйверу) скажешь так и будет.
    Мораль: быстрый/хитрый терминал надо писать самостоятельно
     

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