|
atmega32u4+ENC28J60+uIP = HTTPD+CGI+DHCP+DFU bootloader, Собственно реальзация web сервера для atmega32u4 и enc28J60 |
|
|
|
Jul 1 2009, 20:29
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 21-04-09
Пользователь №: 48 010

|
Собственно проект: http://code.google.com/p/uhttpd-avr/ компилиурется WinAvr, прошивку можно обновлять с помощью FLIP'a через USB. Параметры сети хрянятся в EEPROM'e, можно менять через web, есть поддержка DHCP. Всё реализовано на основе uIP модифицированного для хранения данных в program memory. P.S. Работает медленно
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 26)
|
Jul 6 2009, 03:36
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 21-04-09
Пользователь №: 48 010

|
Неужто никому не нужно?
|
|
|
|
|
Jul 6 2009, 05:18
|
Местный
  
Группа: Свой
Сообщений: 283
Регистрация: 13-06-07
Из: Челябинск
Пользователь №: 28 391

|
Вот этим отпугнул  Цитата(Ilmarin @ Jul 2 2009, 02:29)  P.S. Работает медленно Мне лично интересно, но я пока мельком глянул. PS. Не нашел кнопки в репозитории чтобы сразу архивом все файлы качнуть.
|
|
|
|
|
Jul 8 2009, 05:33
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 21-04-09
Пользователь №: 48 010

|
Цитата(Rst7 @ Jul 6 2009, 02:01)  Дык надо uIP хачить на предмет Delayed ACK. Будет лучше  Приделал uip_split ( http://www.sics.se/~adam/uip/uip-1.0-refman/a00154.html ) заметно лучше не стало. Скорее всего из-за того что этот хак отсылает по-частям только пакеты максимальной длинны. Что интересно, если сравнивать скорость загрузки страннички с динамически сгенерированной формой на винде ХП и линиксе (Ubuntu) то на линуксе существенно быстрее (и там и там Firefox 3.0.11 , без прокси ). http://uhttpd-avr.googlecode.com/files/uht...-2009-07-08.zip
|
|
|
|
|
Jul 8 2009, 05:57
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Приделал uip_split заметно лучше не стало. Скорее всего из-за того что этот хак отсылает по-частям только пакеты максимальной длинны. Дык захачте его, чтобы любые пакеты пилил. Либо есть другой вариант (я так делал, пока не реализовал полноценную поддержку Delayed ACK у себя в стеке) - после каждого пакета с данными посылать пакет без данных с тем же SEQ - на такое что винда, что линух мгновенно отвечает ACK'ом. Цитата Что интересно, если сравнивать скорость загрузки страннички с динамически сгенерированной формой на винде ХП и линиксе (Ubuntu) то на линуксе существенно быстрее (и там и там Firefox 3.0.11 , без прокси ). Дело в том, что авторы стека TCP/IP в линухе видимо писатели, а не читатели (рекомендаций в RFC), посему линух отвечает ACK'ом на каждый пакет.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jul 8 2009, 15:03
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 21-04-09
Пользователь №: 48 010

|
Цитата(Rst7 @ Jul 8 2009, 01:57)  Дык захачте его, чтобы любые пакеты пилил. Пробовал ( поменял условие при котором распил происходит ) - что-то нестабильно работать стало.
|
|
|
|
|
Jul 9 2009, 03:07
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 21-04-09
Пользователь №: 48 010

|
Цитата(Rst7 @ Jul 8 2009, 11:55)  В чем нестабильность выражена? Связь стала случайным образом подвисать. Цитата(Rst7 @ Jul 8 2009, 01:57)  Дело в том, что авторы стека TCP/IP в линухе видимо писатели, а не читатели (рекомендаций в RFC), посему линух отвечает ACK'ом на каждый пакет. Нашёл в интернете что в виндах таймер на ACK - 200мс, а в Линуксе - 10мс. Кстати, в виндах можно настраивать количество пакетов : http://support.microsoft.com/kb/328890 , если поставить 1 то всё работает довольно быстро.
|
|
|
|
|
Jul 9 2009, 05:28
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Связь стала случайным образом подвисать. Хз, хз.. Цитата Кстати, в виндах можно настраивать количество пакетов : http://support.microsoft.com/kb/328890 , если поставить 1 то всё работает довольно быстро. Ну это не выход. Во-первых - нарушает чи большим братьям с полновесной реализацией TCP-стеков. Во-вторых - без полноценной поддержки Delayed ACK толку от этого на медленных каналах связи не будет - каждый пакет будет передаваться за время прохода туда и обратно. В принципе, можно дохачить uIP под полноценную поддержку Delayed ACK (и посылок размером в окно).
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jul 9 2009, 07:03
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 21-04-09
Пользователь №: 48 010

|
В общем нашёл ошибку ( надо было проверять что пакет уже ушёл, и в рассчёте размеров пакета в uip-split была ошибка). Ну и сделал отправку пустых пакетов. Теперь работает и то и другоe ( выбирается в uNetConfigure.h). Работать стало быстрее, но Линукс по прежнему опережает винду, почему то. Обновлённый релиз: http://uhttpd-avr.googlecode.com/files/uht...-2009-07-09.zip
Сообщение отредактировал Ilmarin - Jul 9 2009, 07:04
|
|
|
|
|
Jul 9 2009, 07:23
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 21-04-09
Пользователь №: 48 010

|
Цитата(Rst7 @ Jul 9 2009, 03:13)  Да потому, что все это - костыли. Если такое просунуть через медленный канал, будет ужасно. Надо реализовывать правильную работу с окном. Ну, это всё делается не для того чтобы сотню запросов в секунду обрабатывать. Сейчас уже на мега32 память почти вся занята ( и это при том что буфер установлен в 400 байт и максимум 2 паралельных соединения): AVR Memory Usage ---------------- Device: atmega32u4 Program: 25658 bytes (78.3% Full) (.text + .data + .bootloader) Data: 2125 bytes (83.0% Full) (.data + .bss + .noinit) EEPROM: 19 bytes (1.9% Full) (.eeprom)
|
|
|
|
|
Jul 9 2009, 07:42
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Ну тогда посмотрите сюда - http://electronix.ru/forum/index.php?showtopic=44276Вот тут почти крайние исходники - http://electronix.ru/forum/index.php?act=a...st&id=30493Эта штука довольно просто портируется под работу с ENC28J60 (например, вот - http://alyer.frihost.net/web_server.htm и результат - http://wapbox.ath.cx/ , но это не последняя версия, тут по 2 пакета с данными отправляется, такая себе полуполноценная реализация) В крайних исходниках реализована достаточно полноценная работа с окном и утилизация Delayed ACK, что позволяет достичь вполне вменяемых скоростей на быстрых каналах и не тормозить на медленных.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jul 9 2009, 15:07
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 21-04-09
Пользователь №: 48 010

|
Цитата(Rst7 @ Jul 9 2009, 03:42)  В крайних исходниках реализована достаточно полноценная работа с окном и утилизация Delayed ACK, что позволяет достичь вполне вменяемых скоростей на быстрых каналах и не тормозить на медленных. - в крайних это в которых?
|
|
|
|
|
Jul 9 2009, 15:58
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата - в крайних это в которых? Эти - Цитата имеют сей функционал. PS "Крайние" - это последние. Представители некоторых профессий не любят употреблять слово "последний".
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jul 9 2009, 17:54
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 21-04-09
Пользователь №: 48 010

|
Цитата(Rst7 @ Jul 9 2009, 03:42)  Эта штука довольно просто портируется под работу с ENC28J60 (например, вот - http://alyer.frihost.net/web_server.htm и результат - http://wapbox.ath.cx/ , но это не последняя версия, тут по 2 пакета с данными отправляется, такая себе полуполноценная реализация) А исходников с ENC28J60 нету?
|
|
|
|
|
Jul 10 2009, 04:41
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 21-04-09
Пользователь №: 48 010

|
Цитата(Rst7 @ Jul 9 2009, 14:33)  У меня - нет. Я не пользую ENC. Появится портер в онлайне, я его попрошу выложить, только склеивать эти версии сами будете. Вообще, у меня в планах с lwip поигратся - может на mega128 он поместится.
|
|
|
|
|
Jul 10 2009, 07:19
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 21-04-09
Пользователь №: 48 010

|
Цитата(Rst7 @ Jul 10 2009, 01:36)  Тогда зачем Вам исходники с поддержкой ENC? чтобы было с чем сравнивать (быстродействие и т.д).
|
|
|
|
|
Nov 4 2009, 20:12
|
Группа: Новичок
Сообщений: 2
Регистрация: 7-04-09
Пользователь №: 47 321

|
Цитата(Ilmarin @ Jul 10 2009, 11:19)  чтобы было с чем сравнивать (быстродействие и т.д). Здравствуйте! Пытаюсь портировать uIP0.9 +enc28j60 на платформу 8052. Как ни крутил не работает Http. ICMP и ARP работает вроде. Помогите пожалуйста!!! Вот архив с проектом. http://depositfiles.com/files/yhf528h17
Сообщение отредактировал vadim_ich - Nov 4 2009, 20:13
|
|
|
|
|
Nov 25 2009, 21:43
|
Группа: Новичок
Сообщений: 2
Регистрация: 7-04-09
Пользователь №: 47 321

|
Цитата(Ilmarin @ Jul 9 2009, 11:03)  В общем нашёл ошибку ( надо было проверять что пакет уже ушёл, и в рассчёте размеров пакета в uip-split была ошибка). Ну и сделал отправку пустых пакетов. Теперь работает и то и другоe ( выбирается в uNetConfigure.h). Работать стало быстрее, но Линукс по прежнему опережает винду, почему то. Обновлённый релиз: http://uhttpd-avr.googlecode.com/files/uht...-2009-07-09.zipЗдравствуйте, попробовал портировать uIP+enc28j60 на мк Aduc812. Почему то пакеты больше чем 255 байт принимаются с ошибками. В чем может быть причина?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|