|
TCP/IP + ATMEGA128 + CS8900, Подскажите с чего начать, примеры |
|
|
|
Nov 7 2006, 17:51
|
Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 6-12-04
Пользователь №: 1 340

|
Требуется разработать TCP сервер для удаленных измерений. за основу взял Мегу128 + CS8900 + RAM 64k решил копать с сторону LWIP стека (с перспективой использования стека под арм). Вопрос чего начать, по скудной документации понятно что лучше работь в режиме callback function (попроше), несовсем понятно с чего начинать как инитить сам стек и обрабатывать пакеты. железо запустил, принимает пакеты и выводит в UART порт, подошел к стеку и попал в тупик, подскажите как с ним работать ?
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 34)
|
Nov 7 2006, 21:19
|

За битами по регистрам гоняюсь
  
Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446

|
Цитата(cpl @ Nov 8 2006, 00:53)  Интерисует именно стек LWIP 15 секунд поиска в Yandex дали: http://www.sics.se/~adam/lwip/
--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
|
|
|
|
|
Nov 8 2006, 05:48
|
Частый гость
 
Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088

|
Цитата(cpl @ Nov 8 2006, 00:31)  The lwIP API uses a connection abstraction similar to that of the BSD socket APIThe lwIP API uses a connection abstraction similar to that of the BSD socket API Это значит, что запускаешь свой любимый дистрибутив линукса, например, команда info libc sockets, там всё есть, с примерами. Заодно и проверишь на линуксе, свои примеры, а потом на контроллере. Кстати, на сайте есть pdf-ка, там есть примеры.
Сообщение отредактировал impatt - Nov 8 2006, 05:53
|
|
|
|
|
Nov 8 2006, 06:37
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(cpl @ Nov 7 2006, 21:51)  Требуется разработать TCP сервер для удаленных измерений. за основу взял Мегу128 + CS8900 + RAM 64k Могу прислать описания и софт для micrel.com - KSZ8842/1 - и это будет Ethernet 10/100. Это примерно 6 Мег. И сделайте поиск по нику "Волощенко". Он только что аналогичеую вещь закончил на CS8900, подумал над жизнью и попросил образец KSZ8842.... Вот для затравки пара документов.
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Nov 8 2006, 10:52
|
Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 6-12-04
Пользователь №: 1 340

|
Цитата(impatt @ Nov 8 2006, 08:48)  Цитата(cpl @ Nov 8 2006, 00:31)  The lwIP API uses a connection abstraction similar to that of the BSD socket APIThe lwIP API uses a connection abstraction similar to that of the BSD socket API Это значит, что запускаешь свой любимый дистрибутив линукса, например, команда info libc sockets, там всё есть, с примерами. Заодно и проверишь на линуксе, свои примеры, а потом на контроллере. Кстати, на сайте есть pdf-ка, там есть примеры. Как я понял под BSD нужно ос, чтоб разруливать, ос непредполагается, поэтому callback а на нее примеров нет
|
|
|
|
|
Nov 8 2006, 11:45
|
Частый гость
 
Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088

|
Цитата(cpl @ Nov 8 2006, 13:52)  Как я понял под BSD нужно ос, чтоб разруливать, ос непредполагается, поэтому callback а на нее примеров нет Неправильно. Написано, что механизм взаимодействия с библиотекой такой-же, как в BSD (такой-же, как в Линуксе, *BSD, такоей-же, как в винде 9х, если не ошибаюсь по поводу последней - та, что winsock.dll имеет). Это значит, что у тебя есть несколько функций, посредством которых ты можешь получить доступ ко всем примочкам. По поводу линукса (да хоть той-же *BSD) - эта ось на настольном компьютере поможет тебе нормально промоделировать работу твоей проги под эту библиотеку, ибо API - одинаков. Ферштеен ?
Сообщение отредактировал impatt - Nov 8 2006, 11:46
|
|
|
|
|
Nov 8 2006, 12:58
|
Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 6-12-04
Пользователь №: 1 340

|
Цитата(impatt @ Nov 8 2006, 14:45)  Цитата(cpl @ Nov 8 2006, 13:52)  Как я понял под BSD нужно ос, чтоб разруливать, ос непредполагается, поэтому callback а на нее примеров нет
Неправильно. Написано, что механизм взаимодействия с библиотекой такой-же, как в BSD (такой-же, как в Линуксе, *BSD, такоей-же, как в винде 9х, если не ошибаюсь по поводу последней - та, что winsock.dll имеет). Это значит, что у тебя есть несколько функций, посредством которых ты можешь получить доступ ко всем примочкам. По поводу линукса (да хоть той-же *BSD) - эта ось на настольном компьютере поможет тебе нормально промоделировать работу твоей проги под эту библиотеку, ибо API - одинаков. Ферштеен ? Спасибо теперь начинаю понимать, значит вовсе необязательно использовать низкоуровневые callback функции, (с winsock немного знаком) как привязывается API к железу, через какую функцию ? правильно ли я понял что низкоуровненвые функции ВВ находятся \src\netif\ ethernetif.c в частности low_level_output и low_level_input ? для чего нужен loopif.c ? slipif.c так понимаю для работы по протоколу slip. поправте если неправ
|
|
|
|
|
Nov 9 2006, 03:10
|
Частый гость
 
Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088

|
Цитата(cpl @ Nov 8 2006, 15:58)  Спасибо теперь начинаю понимать, значит вовсе необязательно использовать низкоуровневые callback функции, (с winsock немного знаком) Никаких, как я понимаю, callback-ов. Если я и упомянул про winsock.dll (а не winsock2.dll), то только потому, что слышал, что в ней использовались фукции а-ля BSD. Сам winsock-ом не пользовался. Так как я не пользовался этой библиотекой, то точно ответить на следующие вопросы не могу. Могу посоветовать скачать доку http://www.sics.se/~adam/lwip/doc/lwip.pdf и поглядеть по главам, а также пытаться скомпилировать проект и поглядеть, что получается. Цитата(cpl @ Nov 8 2006, 15:58)  как привязывается API к железу, через какую функцию ? Надо, главным образом, как я понимаю, пару функций принимающих пакет и отправляющих его. Это, условно говоря, связь с железом. Цитата(cpl @ Nov 8 2006, 15:58)  правильно ли я понял что низкоуровненвые функции ВВ находятся \src\netif\ ethernetif.c в частности low_level_output и low_level_input ? Я не очень в курсе, что такое BB... К сожалению, не могу подсказать и касательно указанных функций и файлов: не имел дела я с этой библиотекой. Могу посоветовать пытаться скомпилировать проект (чего будет недостаточно, а конкретно, связь с железом - будет ошибка и там рыть надо, или, если скомпилируется, отладчиком смотреть, что куда пишется и обращается, станет понятнее), почитать доку неспеша, а также поэкспериментировать с высокоуровневыми функциями на работающей системе (Linux, *BSD).
|
|
|
|
|
Nov 9 2006, 16:02
|
Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 6-12-04
Пользователь №: 1 340

|
Цитата(defunct @ Nov 9 2006, 18:59)  Цитата(cpl @ Nov 8 2006, 14:11)  С протоколом ознакомился, думаю начальство неодобрит переписывания стека  Гм.. а я думаю начальству все равно какой там будет стек, больше всего их будет волновать функциональность. На мой взгляд LwIp сделан криво. Встречный вопрос, какой стек считаете сделан номально ?
|
|
|
|
|
Nov 9 2006, 16:27
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551

|
Цитата(defunct @ Nov 9 2006, 19:59)  На мой взгляд LwIp сделан криво. Что вы имеете ввиду под "сделан криво"? Архитектурные решения? И что по вашему прямее?
|
|
|
|
|
Nov 14 2006, 06:25
|
Участник

Группа: Свой
Сообщений: 60
Регистрация: 8-11-05
Пользователь №: 10 602

|
Я впринципе реализовал стек протоколов самостоятельно. По объему не так и много получилось. Намного выгоднее чем заморачиваться с системой. Библиотеку реализации стека могу подогнать. Не забесплатно конечно
|
|
|
|
|
Nov 15 2006, 07:25
|
Участник

Группа: Свой
Сообщений: 60
Регистрация: 8-11-05
Пользователь №: 10 602

|
У меня впринципе немного покруче будет.... Поддерживаются протоколы TCP и UDP. По протоколу TCP устройство может быть как сервером так и клиентом. Занимает это все добро около 10 кБ
|
|
|
|
|
Nov 15 2006, 07:54
|
Частый гость
 
Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088

|
Цитата(vesago @ Nov 10 2006, 14:34)  Кстати хотел спросить народ - я закончил написание TCP, чтоб передавать данные через GPRS. Теперь совершенно не представляю как отладить. Непосредственно с сервером опсоса дороговато как-то. Может кто поделится мыслями? Если осилил написание TCP (хотя наверняка получился недоделаный и дырявый - даже на очень эксплуатируемых стеках во всех, думаю, осях ошибки находят чуть ли не по сей день), то осиль запуск pppd (сервис ppp) на каком-нибудь *NIX-е, например, Линукс или *BSD. Это процесс, который цепляется на указанный, условно говоря, ком-порт (реально терминал или поток ввода/вывода из другого процесса) принимающий оттуда ppp кадры, и создающий/удаляющий IP интерфейс в системе. Таким образом сможешь проверить, как работает твой софт. Для того, чтобы убедиться, что правильно настроен pppd, проще, если работаешь в винде, создать модемное соединение на каком-нибудь КОМ-порту и соединить машину с pppd и виндой нульмодемным кабелем. Вопрос: зачем изобретать велосипед и делать что-то снова своё, а не брать уже готовое и отлаженое ?
|
|
|
|
|
Nov 21 2006, 07:41
|
Частый гость
 
Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088

|
Цитата(vesago @ Nov 15 2006, 10:43)  Изобретать велосипед пришлось из-за ограниченности ресурсов. Ну, что-ж, тут возразить нечего. Цитата(vesago @ Nov 15 2006, 10:43)  Хотя много времени потратил в первую очередь на изучение сабжа. Это, ИМХО, полезно. Цитата(vesago @ Nov 15 2006, 10:43)  По поводу вашего совета - спасибо, но мне как-то строашно слово линукс. Это его на компьютер ставить надо. Желательно, но необязательно: есть же LiveCD. Впрочем, если опыта в юниксах мало, то то, что сложно - понимаю. Однако настоятельно советую иметь под боком и по возможности экспериментировать, ибо там очень много полезных концепций. Полагаю, что многие согласятся с тем, что способы решения многих технических вопросов, в частности, с сетью, в юниксах (имею в виду linux, *BSD) сделаны существенно нагляднее, чем где бы то ни было, включая виндовс. Есть чему поучиться, причём дело даже не в исходниках, а в программных и прочих интерфейсах.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|