Jetrano 0 28 апреля Опубликовано 28 апреля (изменено) · Жалоба Всем привет! Библиотека LwIP предлагает для сборки несколько приложений которые находятся в директории apps. Каким способом можно собрать http-сервер? Где-то нужно указать http-сервер в качестве таргета. Xilinx SDK предлагает только TCP Echo Server. Может быть кто-нибудь уже решал этот вопрос ? Изменено 28 апреля пользователем Jetrano Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 28 апреля Опубликовано 28 апреля · Жалоба On 4/28/2024 at 1:21 PM, Jetrano said: Всем привет! Библиотека LwIP предлагает для сборки несколько приложений которые находятся в директории apps. Каким способом можно собрать http-сервер? Где-то нужно указать http-сервер в качестве таргета. Xilinx SDK предлагает только TCP Echo Server. Может быть кто-нибудь уже решал этот вопрос ? Убедитесь (по выводу в консоль Eclipse IDE) , что файл httpd.c у вас компилируется. В main добавьте вызов функции httpd_init(); И все. Страничка, отображаемая в браузере, лежит в папке http/fs Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jetrano 0 28 апреля Опубликовано 28 апреля · Жалоба В 28.04.2024 в 13:43, dimka76 сказал: Убедитесь (по выводу в консоль Eclipse IDE) , что файл httpd.c у вас компилируется. В main добавьте вызов функции httpd_init(); И все. Страничка, отображаемая в браузере, лежит в папке http/fs Именно это было сделано в первую очередь. Сообщение от линкера: main.c:244: undefined reference to `httpd_init'. Т.е. файлы находящиеся в папке http IDE не компилирует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 28 апреля Опубликовано 28 апреля · Жалоба On 4/28/2024 at 6:05 PM, Jetrano said: Т.е. файлы находящиеся в папке http IDE не компилирует. Значит вам надо настроить IDE так, чтобы она компилировала эти файлы. Видимо не достаточно просто их добавить в проект. Может у вас makefile project ? Тогда надо сделать соответствующие записи в makefile. Еще. У вас в том файле, в котором вы вызываете httpd_init, добавлен заголовочный файл #include "lwip/apps/httpd.h" ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jetrano 0 28 апреля Опубликовано 28 апреля · Жалоба В 28.04.2024 в 18:41, dimka76 сказал: Значит вам надо настроить IDE так, чтобы она компилировала эти файлы. Видимо не достаточно просто их добавить в проект. Может у вас makefile project ? Тогда надо сделать соответствующие записи в makefile. Еще. У вас в том файле, в котором вы вызываете httpd_init, добавлен заголовочный файл #include "lwip/apps/httpd.h" ? Заголовочный файл #include "lwip/apps/httpd.h" добавлен. Вот с соответствующими записями в makefile придётся разбираться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 1 мая Опубликовано 1 мая · Жалоба Откровенно блажная идея с веб-мордой в цинке доела не только мой мозг, но и мозги "начальства" - решение сделать было принято окончательно и бесповоротно. Само собой лвип с примерами был в первых рядах, т.к. поднимать линукс только ради этого не хотелось совсем. Учитывая динамический характер "сайта" и гемор со сборкой от виртуального диска тут же отказался. Файлы из примера были перенесены в проект и сделано динамическое формирование страниц в коде. Язык Си и работа со строками это отдельно-жутко-печальная песня. Желанный и никому не нужный на поверку результат был получен довольно быстро. Из подводных камней оказалось что разные браузеры шлют GET по разному, например, опера разбивает его на 2 tcp пакета которые лвип не склеивает хз почему - с эджем такой проблемы нет. Учитывая отсутствие с этим проблем у "больших" веб-серверов недоработка скорее всего в лвипе, включая и последние версии, из за упрощенной реализации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jetrano 0 3 мая Опубликовано 3 мая (изменено) · Жалоба В 01.05.2024 в 11:16, fguy сказал: Откровенно блажная идея с веб-мордой в цинке доела не только мой мозг, но и мозги "начальства" - решение сделать было принято окончательно и бесповоротно. Само собой лвип с примерами был в первых рядах, т.к. поднимать линукс только ради этого не хотелось совсем. Учитывая динамический характер "сайта" и гемор со сборкой от виртуального диска тут же отказался. Файлы из примера были перенесены в проект и сделано динамическое формирование страниц в коде. Язык Си и работа со строками это отдельно-жутко-печальная песня. Желанный и никому не нужный на поверку результат был получен довольно быстро. Из подводных камней оказалось что разные браузеры шлют GET по разному, например, опера разбивает его на 2 tcp пакета которые лвип не склеивает хз почему - с эджем такой проблемы нет. Учитывая отсутствие с этим проблем у "больших" веб-серверов недоработка скорее всего в лвипе, включая и последние версии, из за упрощенной реализации. В какой версии Vivado вы это всё выполнили? В той версии использовалась система сборки Cmake ? Файлы примера копировали в проект или где-то указывали путь к папке http ? Если я не ошибаюсь, Cmake исходя из настроек собирает библиотеку liblwip4.a и если предварительно где-то сформулировать требуемый таргет (web-морда), то в этой библиотеке будут все необходимые объектные файлы. Изменено 3 мая пользователем Jetrano Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 3 мая Опубликовано 3 мая · Жалоба 9 часов назад, Jetrano сказал: В какой версии Vivado вы это всё выполнили? В той версии использовалась система сборки Cmake ? Под проц цинка проект собирался под виндой в SDK 2018.3, косяк лвипа со склейкой пакетов проверял еще и в Vitis (ex SDK) 2023.1. При сборке оболочка запускает разные тулзы - cmake это или что другое я не вникал - и так работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 3 мая Опубликовано 3 мая · Жалоба 9 часов назад, Jetrano сказал: Файлы примера копировали в проект или где-то указывали путь к папке http ? В 01.05.2024 в 11:16, fguy сказал: Файлы из примера были перенесены в проект и сделано динамическое формирование страниц в коде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jetrano 0 3 мая Опубликовано 3 мая · Жалоба В 03.05.2024 в 20:36, fguy сказал: Попробую повторить, спасибо! А зачем браузер разбивает пакет с GET-запросом если размер этого запроса меньше размера MSS ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 4 мая Опубликовано 4 мая · Жалоба 13 часов назад, Jetrano сказал: А зачем браузер разбивает пакет с GET-запросом если размер этого запроса меньше размера MSS ? ХЗ, возможно особенности реализации и самого tcp то же - вы и сами будете отправлять страницу по частям через tcp_write. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться