• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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-свалку - не успел сделать драйвер очереди запросов и обработки переменных с минимальным использованием ресурсов...
 
Последнее редактирование:
Сверху Снизу