• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

RTLHTTPD

sharikov

Active member
RTLHTTPD

esphttpd-freertos портирован на RTL8710.
espfs бинарно совместима.

Проект основан на pvvx SDK3.5

При старте запускается открытая точка доступа RTL8710. IP=192.168.3.1
Работают html примеры:
websocket, led demo, реализована прошивка флэш по http.
Портирован и протестирован Captive Portal но в демо отключен потому что на практике плохо применим (я уже писал об этом).

Для прошивки флэш из браузера нужно зайти по адресу http://192.168.3.1/flash/ (слэш в конце обязателен).
Адреса и размер файла не проверяются, думайте что шьете. Область калибровки автоматически обходится так что фуллфлэш ее не повредит.

Установка:
Клонировать репозитарий
f28 / rtlhttpd — Bitbucket

Запустить init_project.sh - он докачает нужное.
SDK там закомментирован потому что он большой, если у кого-то SDK нет раскомментируйте он скачается.

Настройка:
Проверить пути в paths.mk

Компиляция:
make all - код
make webfs - espfs
не забывайте прошивать webfs, без нее сервер страницы показать не может

Прошивка:
make -f flasher.mk flashburn - image1, image2
make -f flasher.mk flashweb - webfs

только image2 (image1 изеняется редко, его не всегда надо шить):
make -f flasher.mk flashimage2p

Запуск в ram:
make -f flasher.mk runram
(webfs уже должна быть прошита!)

Для ленивых в папке build/bin оставлены готовые бинарники.


Не реализовано:
* wi-fi station и настройки wifi соединения
* отправка http header (этого нет у автора)
 

pvvx

Активный участник сообщества
На windows ничего не работает, из описанного по установке и клонированию, даже если всё переписать...
Не импортируется librtlhttpd и нет очень многих файлов, к примеру include librtlhttpd/librtlhttpd.mk ... и т.д.
Так-же не работает импорт в Eclipse проекта.
Можно прошить только бинарники с помощью JLinkGDB-WrFlash.bat и записав программатором build\bin\webpages.espfs по адресу 0x0d0000.
 

sharikov

Active member
Не импортируется librtlhttpd ...
Дальше можно не продолжать. Собственно сервер расположен в librtlhttpd а rtlhttpd - просто демо его использования.
Не установились права на librtlhttpd. Поправил, обновите Rtlhttpd.

--
ps. попытаюсь за вечер сделать минимальный краш-тест вариант без внешних зависимостей.
 

pvvx

Активный участник сообщества
Не установились права на librtlhttpd.
"даже если всё переписать..." :)
Теперь:
Снимок1309.gif
Потом запрашивает пароль. После ввода вашего пароля вроде всё нормально. :)

Измените в sdkset.mk:
INCLUDES += sdk/component/soc/realtek/8195a/misc/rtl_std_lib
INCLUDES += sdk/component/soc/realtek/8195a/misc/rtl_std_lib/include
Вторая строка встречалась дважды, первую надо добавить.
+ Измените:
LDFILE = rlx8195A-symbol-v04-img2.ld
+ Докиньте пока куда: RTLHTTPD\project\inc\rtl_bios_data.h
Это связано с обновлением в моем SDK, для rtl_bios_data.h место не назначено из-за неготовности boot-loader-а
INCLUDES далее буду пробовать сократить в SDK, желательно сделать сборку SDK с либами, чтоб под каждый раз не перекомпилировать весь ненужный хлам...

ps. попытаюсь за вечер сделать минимальный краш-тест вариант без внешних зависимостей.
краш-тест c UDP/TCP socket проходил с iperf в rtlDuino...
 
Последнее редактирование:

pvvx

Активный участник сообщества
С HTTPD существуют такие проблемы - не отдает файлы в многопоточном варианте HTTP, а все современные браузеры запрашивают несколько потоков.
Так-же наблюдается длительное открытие файлов и чрезмерное использование малых ресурсов SoC с 512 килобайтами RAM.
Кароче кошачий вариант не катит на Web.
 

sharikov

Active member
С HTTPD существуют такие проблемы - не отдает файлы в многопоточном варианте HTTP...
Флэшка одна и быстрее читать не может хоть в 1 поток хоть в 100500. Wifi тоже быстрее передавать не может. Итого: от многопотока выигрыша не будет. Это не значит что вообще ничего не надо дорабатывать. Но только после того как перестанет падать.
 

pvvx

Активный участник сообщества
Флэшка одна и быстрее читать не может хоть в 1 поток хоть в 100500. Wifi тоже быстрее передавать не может. Итого: от многопотока выигрыша не будет. Это не значит что вообще ничего не надо дорабатывать.
Flash читается в десятки мегабайт в сек, а отдает по TCP в 1.8 MБ из-за WiFi (сервер-клиент в одной сети и один поток). В зависимости от удаления, когда пинг большой - многопоток спасет. Получаем полный трафик WiFi HT40 на TCP.
"Кошатникам" это не надо - у них много чего не доделано, хотя сказано и подсказано как сделать в течении более 2-х лет... Начиная писать Web себе, когда я увидел это безобразие, то и пришлось сделать web-свалку... Там эти кошки грузились минут 10 :) А теперь, после указаний, почти летают. Но было сопротивление :)
Но только после того как перестанет падать.
А что падает?
В AT тупой web пример не падает и память не теряет при тисячи запросов (запрос памяти в AT -> ATST). Работает через те-же функции что ваше.
GitHub - pvvx/RTL00_AT: RTL00(RTL8710AF) AT command
Пускаете, запрашиваете ATP? и видите пачку TIME-WAIT pcb :) Когда они уйдут, то ATST выдаст начальные значения по памяти.
Код:
ATP?
=== LwIP Info ===
Net Info[0]: 192.168.3.1, 255.255.255.0, 192.168.3.1
Net Info[1]: 192.168.43.1, 255.255.255.0, 192.168.43.1
UDP pcbs:
flg:00  0.0.0.0:67      0.0.0.0:0       recv:0x1001877d
flg:00  0.0.0.0:55467   0.0.0.0:0       recv:0x10013d4d
Active PCB states:
none
Listen PCB states:
Port 80|0       flg:00  tmr:0x0 LISTEN
TIME-WAIT PCB states:
Port 80|5298    flg:30  tmr:0x104       TIME_WAIT
Port 80|5297    flg:30  tmr:0x104       TIME_WAIT
Port 80|5296    flg:30  tmr:0x104       TIME_WAIT
Port 80|5295    flg:30  tmr:0x104       TIME_WAIT
Port 80|5294    flg:30  tmr:0x103       TIME_WAIT
Port 80|5293    flg:30  tmr:0x103       TIME_WAIT
Port 80|5292    flg:30  tmr:0x103       TIME_WAIT
Port 80|5291    flg:30  tmr:0x103       TIME_WAIT
Port 80|5290    flg:30  tmr:0x103       TIME_WAIT
Port 80|5289    flg:30  tmr:0x103       TIME_WAIT
Port 80|5288    flg:30  tmr:0x103       TIME_WAIT
Port 80|5287    flg:30  tmr:0x102       TIME_WAIT
Port 80|5286    flg:30  tmr:0x102       TIME_WAIT
Port 80|5285    flg:30  tmr:0x102       TIME_WAIT
Port 80|5284    flg:30  tmr:0x102       TIME_WAIT
Port 80|5283    flg:30  tmr:0x102       TIME_WAIT
Port 80|5282    flg:30  tmr:0x102       TIME_WAIT
Port 80|5281    flg:30  tmr:0x102       TIME_WAIT
Port 80|5280    flg:30  tmr:0x101       TIME_WAIT
Port 80|5279    flg:30  tmr:0x101       TIME_WAIT
Port 80|5278    flg:30  tmr:0x101       TIME_WAIT
Port 80|5277    flg:30  tmr:0x101       TIME_WAIT
Port 80|5276    flg:30  tmr:0x101       TIME_WAIT
Port 80|5275    flg:30  tmr:0x101       TIME_WAIT
Port 80|5274    flg:30  tmr:0x101       TIME_WAIT
Port 80|5273    flg:30  tmr:0x100       TIME_WAIT
Port 80|5272    flg:30  tmr:0x100       TIME_WAIT
Port 80|5271    flg:30  tmr:0x100       TIME_WAIT
Port 80|5270    flg:30  tmr:0x100       TIME_WAIT
Port 80|5269    flg:30  tmr:0x100       TIME_WAIT
Port 80|5268    flg:30  tmr:0x100       TIME_WAIT
Port 80|5267    flg:30  tmr:0x100       TIME_WAIT
Port 80|5266    flg:30  tmr:0xff        TIME_WAIT
Port 80|5265    flg:30  tmr:0xff        TIME_WAIT
Port 80|5264    flg:30  tmr:0xff        TIME_WAIT
Port 80|5263    flg:30  tmr:0xff        TIME_WAIT
Port 80|5262    flg:30  tmr:0xff        TIME_WAIT
Port 80|5261    flg:30  tmr:0xff        TIME_WAIT
Port 80|5260    flg:30  tmr:0xff        TIME_WAIT
Port 80|5259    flg:30  tmr:0xff        TIME_WAIT
Port 80|5258    flg:30  tmr:0xfe        TIME_WAIT
Port 80|5257    flg:30  tmr:0xfe        TIME_WAIT
Port 80|5256    flg:30  tmr:0xfe        TIME_WAIT
Port 80|5255    flg:30  tmr:0xfe        TIME_WAIT
Port 80|5254    flg:30  tmr:0xfe        TIME_WAIT
Port 80|5253    flg:30  tmr:0xfe        TIME_WAIT
Port 80|5252    flg:30  tmr:0xfe        TIME_WAIT
Port 80|5251    flg:30  tmr:0xfd        TIME_WAIT
Port 80|5250    flg:30  tmr:0xfd        TIME_WAIT
Port 80|5249    flg:30  tmr:0xfd        TIME_WAIT
Port 80|5248    flg:30  tmr:0xfd        TIME_WAIT
Port 80|5247    flg:30  tmr:0xfd        TIME_WAIT
Port 80|5246    flg:30  tmr:0xfd        TIME_WAIT
Port 80|5245    flg:30  tmr:0xfd        TIME_WAIT
Port 80|5244    flg:30  tmr:0xfc        TIME_WAIT
Port 80|5243    flg:30  tmr:0xfc        TIME_WAIT
Port 80|5242    flg:30  tmr:0xfc        TIME_WAIT
Port 80|5241    flg:30  tmr:0xfc        TIME_WAIT
Port 80|5240    flg:30  tmr:0xfc        TIME_WAIT
Port 80|5239    flg:30  tmr:0xfc        TIME_WAIT
Port 80|5238    flg:30  tmr:0xfc        TIME_WAIT
Port 80|5237    flg:30  tmr:0xfc        TIME_WAIT
Port 80|5236    flg:30  tmr:0xfb        TIME_WAIT
Port 80|5235    flg:30  tmr:0xfb        TIME_WAIT
Port 80|5234    flg:30  tmr:0xfb        TIME_WAIT
Port 80|5233    flg:30  tmr:0xfb        TIME_WAIT
Port 80|5232    flg:30  tmr:0xfb        TIME_WAIT
Port 80|5231    flg:30  tmr:0xfb        TIME_WAIT
Port 80|5230    flg:30  tmr:0xfb        TIME_WAIT
Port 80|5229    flg:30  tmr:0xfb        TIME_WAIT
Port 80|5228    flg:30  tmr:0xfa        TIME_WAIT
Port 80|5227    flg:30  tmr:0xfa        TIME_WAIT
Port 80|5226    flg:30  tmr:0xfa        TIME_WAIT
Port 80|5225    flg:30  tmr:0xfa        TIME_WAIT
Port 80|5224    flg:30  tmr:0xfa        TIME_WAIT
Port 80|5223    flg:30  tmr:0xfa        TIME_WAIT
Port 80|5222    flg:30  tmr:0xfa        TIME_WAIT
Port 80|5221    flg:30  tmr:0xfa        TIME_WAIT
Port 80|5220    flg:30  tmr:0xf9        TIME_WAIT
Port 80|5219    flg:30  tmr:0xf9        TIME_WAIT
Port 80|5218    flg:30  tmr:0xf9        TIME_WAIT
Port 80|5217    flg:30  tmr:0xf9        TIME_WAIT
Port 80|5216    flg:30  tmr:0xf9        TIME_WAIT
Port 80|5215    flg:30  tmr:0xf9        TIME_WAIT
Port 80|5214    flg:30  tmr:0xf8        TIME_WAIT
Port 80|5213    flg:30  tmr:0xf8        TIME_WAIT
Port 80|5212    flg:30  tmr:0xf8        TIME_WAIT
Port 80|5211    flg:30  tmr:0xf8        TIME_WAIT
Port 80|5210    flg:30  tmr:0xf8        TIME_WAIT
Port 80|5209    flg:30  tmr:0xf8        TIME_WAIT
Port 80|5208    flg:30  tmr:0xf8        TIME_WAIT
Port 80|5207    flg:30  tmr:0xf7        TIME_WAIT
Port 80|5206    flg:30  tmr:0xf7        TIME_WAIT
Port 80|5205    flg:30  tmr:0xf7        TIME_WAIT
Port 80|5204    flg:30  tmr:0xf7        TIME_WAIT
Port 80|5203    flg:30  tmr:0xf7        TIME_WAIT
Port 80|5201    flg:30  tmr:0xf1        TIME_WAIT
Port 80|5200    flg:30  tmr:0xf1        TIME_WAIT

[MEM] After do cmd, available heap 43088+17912
:)
C socket() сделать по другому сложно :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
У вас что-то не то в httpdRecvCb():
Лог:
httpserver acpt index 0 sockfd 1!
precvbuf = 0x10003b00
httpdRecvCb(0x10047374, 0x10047384, 57632, 0x10003b00, 349)
sendBuff = 0x10002688 <- Это после буфера printf :) распределено в rom_heap (rtl_std_lib)
conn = 0x10002208 <- Полез в буфер printf ! :eek:
httpdParseHeader(GET /style.css HTTP/1.1, 0x10002208)
Наверно либы компилятора CИ ставят свой alloc :) У нас вооще-то RTOS со своим alloc, или вы ещё не заметили? :D
Приделайте правильно хидеры! :p
 
Последнее редактирование:

pvvx

Активный участник сообщества
GitHub - pvvx/RTLHTTPD без кошек. И нет некоторых файлов от Web диска - test.cgi и ещё чего-то...
Ставите
#define CONFIG_DEBUG_LOG 5 и наслаждаетесь :)
CLK 12.5 MHz для теста осталась - исправите... на 200 в main() :)
Оно и на 12 быстрее ESP-32S :)

@sharikov - куда дели test.cgi?
Снимок1310.gif
10MHz - тоже достаточно :) А вот на 4-ре там беды в SDK с делителями - халтурщики прописали что 4 MHz в ROM, а там не 4-ре. UART ставиться на 26000 вместо 38400 и походу CPU не всегда успевает справиться с RTOS тиками в 1 ms и web... Что явно свидетельствует, что не оптимально написан кошачий HTTPD...
Код:
Init Heap Region: 0x10003000[12288]
Init Heap Region: 0x100496c8[158008]
Main start

CLK CPU         4000000 Hz
RAM heap        165048 bytes
TCM heap        64768 bytes
interface 1 is initialized
interface 0 is initialized
Initializing WIFI ...
WLAN_AP_ACTIVATE_
ioctl[SIOCGIWESSID] ssid = NULL, not connected
LwIP_DHCP: dhcp stop.
Deinitializing WIFI ...
[rltk_wlan_deinit] Wait for RxStop
WIFI deinitialized
Initializing WIFI ...
WIFI initialized
Starting AP ...
RTL8710 started
NetBIOS init, interface 0: 'ARTL871X',  1: 'SRTL871X'
WIFI initialized
esphttpd: active and listening to connections.
Httpd init
RAM heap        129768 bytes    TCM heap        23848 bytes

RTL8195A[Driver]: +OnAuth: 00:0f:54:10:6a:b5

RTL8195A[Driver]: +OnAssocReq
Conn req from  192.168.3.2:34344, using pool slot 0
httpserver acpt index 0 sockfd 1!
URL = /test/index.html
Is url index 0
Is url index 10
Heatshrink compressed file; decode parms = 4
Pool slot 0 is done. Cleaning up for next req
URL = /wifi/style.css
Is url index 0
Is url index 10
Heatshrink compressed file; decode parms = 4
Pool slot 0 is done. Cleaning up for next req
Conn req from  192.168.3.2:34856, using pool slot 1
httpserver acpt index 1 sockfd 2!
Pool slot 0: socket closed.
Pool slot 1: socket closed.

RTL8195A[Driver]: Asoc expire 00:0f:54:10:6a:b5
Без test.cgi не работает и в конце валиться кошачий httpd... как я соберу на git полную версию?
 
Последнее редактирование:

sharikov

Active member
куда дели test.cgi?
Я test.cgi не тестировал и даже не смотрел поэтому убрал.
librtlhttpd обновил с испрвлениями malloc.

Для полной версии нужны настройки web из браузера, загрузка webfs. А разметки флэш нет. Куда зашивать webfs непонятно, где хранить расширенные настройки wifi (мощность, режим) тоже непонятно.
Какой пин использовать для сброса настроек wifi в default ?

Линкеру есть смысл добавить опцию -Wl,-nostdlib, я у себя добавил.
Это чтобы предотвратить случайное использование стандартной библиотеки. Если библиотеки понадобятся добавить вручную ровно то что требуется.
А то Eclipse путается в многочисленных переопределениях и показывает malloc как pvPortMalloc а на самом деле там оказался malloc из стандартной библиотеки.
 

pvvx

Активный участник сообщества
Я test.cgi не тестировал и даже не смотрел поэтому убрал.
Дык возверните и долепите - как тестировать-то?
librtlhttpd обновил с испрвлениями malloc.
Этим дело не закончиться. Вам Eclipse цветом имен процедур напоминает, что вы их не переназначили. Всякие memcpy и т.д...
Для полной версии нужны настройки web из браузера, загрузка webfs. А разметки флэш нет.
Куда зашивать webfs непонятно,
Не надо ничего из файлов в flash писать. Для этого есть microSD и FTP тоже уже сделан. Поправите FTP на многопользоательский и всё будет хорошо :)
где хранить расширенные настройки wifi (мощность, режим) тоже непонятно.
Там уже есть FEEP область и сохраняет объекты, без потери.
Какой пин использовать для сброса настроек wifi в default ?
По усмотрению пользователя.

Линкеру есть смысл добавить опцию -Wl,-nostdlib, я у себя добавил.
Это чтобы предотвратить случайное использование стандартной библиотеки. Если библиотеки понадобятся добавить вручную ровно то что требуется.
А то Eclipse путается в многочисленных переопределениях и показывает malloc как pvPortMalloc а на самом деле там оказался malloc из стандартной библиотеки.
Посмотрите лучше - если кажет стандартную - то отмечает цветом и ничего у вас работать не будет. Тот malloc начнет жрать сегмент кода :)
pvPortMalloc тоже не правильно. Он не создает записи статистики. На то в RTOS есть нашлепка...
Во вторых там не десять переназначений, а одно. Надо брать правильный хидер.
Другие для другой концепции... Не забывайте ещё C++. Его тоже надо прикрутить потом.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Вот тут ещё кошки накекали:
Снимок1311.gif
Выдача идет с не кратным размером буфера. Итог - низкая скорость и распределение ресурсов.
Там ещё надо около десятка исправлений встраивать, чтобы вышел хоть какой-то более мене web. Но не стоит брать эту бяку - лучше сделать с нуля и с русскими комментариями, чтобы англосаксам не досталось - пусть играют в кошки на ESP-32S :)
 

pvvx

Активный участник сообщества
Обновил, добавил test.cgi
rtl_bios_data.h уже переехал в SDK (там менять пользователю нечего - он жестко завязан на ROM-BIOS).
feep_config.h - изменился - добавился ID к сохранению конфигурации AP (используется в web для AT), но ожидая такой реакции добавлено ...
lwipopts.h - у вас вроде другие оции, смотрел в прошлом, со статическими буферами(?) - тогда требует учета линковки в *.ld и имеет ограничения.
platform_autoconf.h и platform_opts.h - прошлые так-же были не подготовлены с учетом проекта. Новые не смотрел и не хочу. Выужу и скопирую кусками для своего тестового варианта...
Доделайте до нормального варианта - народу нужен web.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Не работает, если station не соединилось с AP.
Потом какой-то конфликт, если соединение компа с AP модуля, а модуль соединен ещё и с AP общей сети. Комп теряет выход в инет - почти Capture Portal :)
Пишет в логUART:
Код:
DNS: Q (type 0x1 class 0x1) for ajax.googleapis.com
DNS: Q (type 0x1 class 0x1) for accounts.google.com
DNS: Q (type 0x1 class 0x1) for www.google.com
DNS: Q (type 0x1 class 0x1) for connect.facebook.net
DNS: Q (type 0x1 class 0x1) for mc.yandex.ru
DNS: Q (type 0x1 class 0x1) for platform.twitter.com
DNS: Q (type 0x1 class 0x1) for publisher.eboundservices.com
DNS: Q (type 0x1 class 0x1) for www.eboundservices.com
DNS: Q (type 0x1 class 0x1) for www.facebook.com
DNS: Q (type 0x1 class 0x1) for money.yandex.ru
DNS: Q (type 0x1 class 0x1) for yastatic.net
DNS: Q (type 0x1 class 0x1) for ad.admitad.com
DNS: Q (type 0x1 class 0x1) for pp.vk.me
DNS: Q (type 0x1 class 0x1) for www.google-analytics.com
DNS: Q (type 0x1 class 0x1) for eboundservices.com
DNS: Q (type 0x1 class 0x1) for safebrowsing.google.com
DNS: Q (type 0x1 class 0x1) for safebrowsing.google.com
DNS: Q (type 0x1 class 0x1) for clients1.google.com
DNS: Q (type 0x1 class 0x1) for staticxx.facebook.com
DNS: Q (type 0x1 class 0x1) for www.google.com
DNS: Q (type 0x1 class 0x1) for www.google.com
DNS: Q (type 0x1 class 0x1) for fonts.gstatic.com
DNS: Q (type 0x1 class 0x1) for twitter.com
DNS: Q (type 0x1 class 0x1) for syndication.twitter.com
DNS: Q (type 0x1 class 0x1) for clients1.google.com
DNS: Q (type 0x1 class 0x1) for mc.yandex.ru
DNS: Q (type 0x1 class 0x1) for accounts.google.com
....
 
Последнее редактирование:

kissste

Member
Having a trouble with compilation. I have resynched RTL00MP3 from master, clone the RTLHTTPD and bitbuckets' librtlhttp RTL871x branch.

Make clean and then make

steve@ASUS /cygdrive/c/arduino/RTLHTTPD
$ make
make[1]: Entering directory '/cygdrive/c/arduino/RTLHTTPD'
===========================================================
Compile (build)
../RTL00MP3/RTL00_SDKV35a/component/soc/realtek/8195a/cmsis/device/app_start.c
../RTL00MP3/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/src/hal_dac.c
../RTL00MP3/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/src/hal_common.c
../RTL00MP3/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/src/hal_soc_ps_monitor.c
../RTL00MP3/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/src/hal_efuse.c
../RTL00MP3/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/src/hal_log_uart.c
../RTL00MP3/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/src/hal_pinmux.c
../RTL00MP3/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/src/hal_misc.c
../RTL00MP3/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/startup.c
make[1]: *** No rule to make target '../RTL00MP3/RTL00_SDKV35a/component/soc/realtek/8195a/misc/rtl_std_lib/lib_rtlstd/ram_libc.c', needed by '../RTL00MP3/RTL00_SDKV35a/component/soc/realtek/8195a/misc/rtl_std_lib/lib_rtlstd/ram_libc.o'. Stop.
make[1]: Leaving directory '/cygdrive/c/arduino/RTLHTTPD'
make: *** [Makefile:7: ram_all] Error 2

Thank you
 

sharikov

Active member
Проверил под migw32 с компилятором от Arduino (Rtlduino). Собирается.
Рекомендую клонировать rtl00mp3 заново. Синхронизировать получается плохо.
 

sharikov

Active member
Не работает, если station не соединилось с AP.
Эта ситуация сейчас не отслеживается: выходит без запуска httpd.

Потом какой-то конфликт, если соединение компа с AP модуля, а модуль соединен ещё и с AP общей сети. Комп теряет выход в инет - почти Capture Portal
Я писал об этом эффекте.
Зато наглядно видно как android отправляет в Корпорацию Добра каждое нажатие кнопки в телефоне.
 

pvvx

Активный участник сообщества
Я писал об этом эффекте.
Зато наглядно видно как android отправляет в Корпорацию Добра каждое нажатие кнопки в телефоне.
Да не отправляет комп ничего. В DNS просто список всего добра ссылок с первых страниц google или яндекс... :)
-----
В RAK-473 (rtl8711am) web работает в режиме HTTP keep-alive. httpd может?
Странички конфигов station в его "AT" прошивке.
А HTTPS может? :)

Эта ситуация сейчас не отслеживается: выходит без запуска httpd.
Прикрутите at_user.c с заданием по UART возможности настроек и диагностики на ходу...
Ещё слишком много сообщений выводится у httpd в LogUART и страдает скорость работы. Там нет DMA или буферизации для отложенного вывода...

Пожалуйста сделайте вывод отладочных сообщений со своими макросами/define, чтобы уровень отладки мог меняться и в финальную версию сообщения не входили для уменьшения использования RAM. Пример в diag.h.

По хорошему надо делать оверлейное исполнение задач. Разбить систему на драйверы и загружаемые приложения. Тогда в RTL8710AF влезет немерянно. Памяти RAM практически достаточно у него для этого (и надо не забывать, что есть варианты RTL с 2.5 мегабайта RAM и рыночная цена для одиночных заказов на них постоянно падает - на али уже до 700р за одну шт.). На аналогичном объеме, у других MCU уже есть примеры целых операционных систем с подгрузкой приложений, примерно как это было в DOS. :) Для web это выливается в создание отдельного процесса с очередью исполнения обработки входящих переменных и процесса отдачи переменных. По этому и не перевел web-свалку - не успел сделать драйвер очереди запросов и обработки переменных с минимальным использованием ресурсов...
 
Последнее редактирование:
Сверху Снизу