скрытое меню

HTTP server

Файлы для скачивания

* STM32F205VGT6_USB_RNDIS_LWIP141_FreeRTOS [zip]
проект на Atollic True Studio , работает http сервер, dhcp сервер . Реализован RNDIS адаптер.

Это конечная точка наших стремлений на сегодняшний день - реализовать таки HTTP сервер на LWIP.

Попытка надо признаться удачная , но путь к ней довольно длинный. Дело в том , что HTTP сервер возможен (похоже) не на всех версиях LWIP.

Основная трудность реализации HTTP в том , что в отличии от arp, udp пакетов тут все построено на TCP соединениях. То есть это не разовые пакеты, а целый протокол взаимодействия открыл соединение / послал / принял / закрыл соединение. И таких соединений обычно несколько одновременно с браузера приходит.

Вариант NetCONN для микроконтроллеров сразу отметаем , так как там присутствует динамическое выделение памяти. В контроллере STM32F205VGT6 128KB SRAM и у нас работает только статика.

Никто не запрещает нам использовать FreeRTOS c LWIP RAW. Мы используем именно RAW вариант LWIP.
FreeRTOS настраиваем на вариант static. Убираем все malloc , все переводим на PBUF_POOL память, то есть на память которая заранее выделена и которой управляет диспетчер LWIP.

И последнее важное замечание : похоже надо использовать версию LWIP 1.4.1 и никакой LWIP 2.x.x . Обращайте внимание , кто писал тот или иной файл кода , если Адам Дункельс , тогда нормально , иначе ...