Прикрутил к AT91SAM7s256 вот это
Нажмите для просмотра прикрепленного файла используется с GPRS модемом WAVECOM M2106B
Нужно работать с FTP сервером, вроде все нормально, но есть глюк.
При скачивании файла с сервера, "хвост" файла не принимается ("хвост" - это конечные несколько байт файла), либо не принимается файл с размером меньше определенного значения (~400 байт). Сижу и понять не могу, то ли это кривая реализация TCP, то ли действительно этот пакет не долетает до меня.
Есть подозрение, что остаток файла передается с установленным флагом TCP_FIN (запрос на разрыв соединения) и эта реализация протокола его игнорирует.
Все остальные операции проходят нормально (хождение по директориям, закачка файла на сервер и т.п.).
Ну и вопрос, может кто занимался такой реализацией и сталкивался с похожими проблемами? чего делать-то?

всем спасибо.
Если найдёшь решение, отпиши плиз.
2 subver
А чем Вас lwIP оттолкнул?
Цитата(3.14 @ Nov 8 2006, 01:31)

2 subver
А чем Вас lwIP оттолкнул?
А это что?
AT_Modem__PPP__UDP__ICMP___TCP.zip тоже нет ftp.
В общем решился вопрос вроде. Чуть подправил обработку TCP пакета с установленным флагом FIN, чтобы разрыв соединения не обрабатывался, пока из сокета не считаются все данные, теперь все шуршит ОК
2 subver
это более "жирная" реализация стека, в контексте используемого чипа может быть актуальней ...
2 etoja
в выложенном тоже нет реализации ftp, дык ведь это и не должно быть в реализации стека ...
Spider
Jan 24 2007, 15:46
Ребята, помогите, не могу собрать это дело под ICC. Имею ICC 7 и там что-то поменялось и она гриво открывает этот проект. В итоге собранная штука не работает. Собирал в WinAVR, но там проблема с переменной SRAM она объявлена с учётов особенности ICC компилятора, а как это в WinAVR не знаю. Помогите плз.
Для какого процессора собираешь?
Я тоже использую ICCV7 для LPC2106.
Spider
Jan 24 2007, 20:40
Цитата(etoja @ Jan 24 2007, 20:32)

Для какого процессора собираешь?
Я тоже использую ICCV7 для LPC2106.
Для АТМега128 с внешней памаятью. В итоге я всё же собрал всё это в WinAVR. И даже заработало. Ну там пока почему-то не работает прерывание по приёму на ЮАРТ, ну это уже не важно.
И всё же. Может кто-то знает первоисточник этих исходников?
Так ведь в исходниках прямо написано:
ProjectID: 199
Title: AT-Modem, PPP, UDP, ICMP & TCP
Author: lexxy (C Moss)
Registered at AVRfreaks.net May 22, 2004
www.avrfreaks.net
Spider
Jan 25 2007, 09:28
Цитата(etoja @ Jan 25 2007, 11:23)

Так ведь в исходниках прямо написано:
ProjectID: 199
Title: AT-Modem, PPP, UDP, ICMP & TCP
Author: lexxy (C Moss)
Registered at AVRfreaks.net May 22, 2004
www.avrfreaks.net
ДА? Где?

На самом деле не важно. Буду смотреть далее.
Spider
Mar 22 2007, 08:54
Столкнулся с проблемой. ГСМ модем и приведённый выше пример кода работают как нада. НО! начинаю лить файл и где-то на 1кб передачи всё останавливается. Моя сторона пытается слать ретрайны, но удалённая их так и не получает. При этом в стоящих радом колонках не слышно наводок характерных для ГСМ связи. До этого во время передачи они были. Немного стоим и срываемся с линии по таймауту. Что это? Глюк софта или железа? Или же это особенности ГПРС? Если последнее то как с этим бороться?
subver
Mar 22 2007, 11:22
Цитата(Alexey Belyaev @ Mar 22 2007, 11:54)

Что это? Глюк софта или железа? Или же это особенности ГПРС? Если последнее то как с этим бороться?
Да все, что угодно может быть. попробуйте модем подключить к компьютеру и с него переслать файл.
У меня вообще странности возникли с одним из ОпСосов, не хотел модуль с их симкой в инет выходить
Возможно, модем смотрит на линии DTR/DSR, RTS/CTS управления потоком байт RS232, а ваша программа - нет. Полтора килобайта - это размер внутреннего буфера модемов Сименс. Так что очень похоже на рассинхронизацию обмена по RS232 между модемом и вашим процессором.
Spider
Mar 22 2007, 14:18
Цитата(etoja @ Mar 22 2007, 15:57)

Возможно, модем смотрит на линии DTR/DSR, RTS/CTS управления потоком байт RS232, а ваша программа - нет. Полтора килобайта - это размер внутреннего буфера модемов Сименс. Так что очень похоже на рассинхронизацию обмена по RS232 между модемом и вашим процессором.
У меня именно сименс. Как раз таки обрабатываются. Но ведь модем отправил всё по месту назначения, стало быть буфера пусты. Сейчас делаю переходник, чтобы вместо GSM модема воткнуть обычный анаологовый модем и с ним повторить фокус.
Нужно посмотреть осциллографом расположение сигналов модема Tx/Rx относительно CTS/RTS.
Если осциллограмма правильная, то нужно проверить настройки модема по умолчанию.
Если и там всё в порядке, то читать протоколы и разбираться в тексте программы TCP/IP.
Spider
Mar 27 2007, 08:00
Цитата(etoja @ Mar 22 2007, 19:47)

Нужно посмотреть осциллографом расположение сигналов модема Tx/Rx относительно CTS/RTS.
Если осциллограмма правильная, то нужно проверить настройки модема по умолчанию.
Если и там всё в порядке, то читать протоколы и разбираться в тексте программы TCP/IP.
Всё правильно. Модем настроен на работу с управляемым потокм, поток управляет корректно.
Проверил программу на переполнения и прочее - всё в норме.
"Виснет" всегда по разному. Бывает даже РРР серрсия не проходит, повисает. А бывает файл уходит. Поставил обычный аналоговый модем - работает :\
Тогда нужно проверить источник питания для модема Сименс. Он должен обеспечивать ток до двух ампер.
Spider
Apr 15 2007, 09:05
Цитата(etoja @ Mar 28 2007, 10:50)

Тогда нужно проверить источник питания для модема Сименс. Он должен обеспечивать ток до двух ампер.
Использую LM2576-ADJ. Вроде как должна обеспечивать до 3А.
Земляки!
У кого есть исходные "Си" тексты FTP-клиента для выкладывания(upload) файла на сервер через протоколы PPP/TCP/IP ?
Цитата(etoja @ Jun 27 2007, 15:07)

Земляки!
У кого есть исходные "Си" тексты FTP-клиента для выкладывания(upload) файла на сервер через протоколы PPP/TCP/IP ?
Вот изобретением этого вилосепеда сейчас и занимаюсь. Геморой ещё тот
Цитата(etoja @ Jun 27 2007, 15:07)

Земляки!
У кого есть исходные "Си" тексты FTP-клиента для выкладывания(upload) файла на сервер через протоколы PPP/TCP/IP ?
Стукнись в аську, авось и помогу )
304754518
Цитата(subver @ Jul 3 2007, 13:23)

Стукнись в аську, авось и помогу )
304754518
Да мы уже общались

Я за основу взял тот код с avrfreaks и теперь его развиваю. Там многое не правильно по части TCP или не логично. Вот уже оптимизировал "скользящее окно" и самого FTP клиента. Сейчас бьюсь со всевозможными ситуациями в роезультате потери пакетов и прочего. GPRS оказывает совсем хреновая вещь. Явно вижу, что с UART данные ушли в модеи, последний что-то энергично протрещал, а на полкчателе не вижу такого пакета, потом серия ретрейнов и вот он пролез. И это ещё цветочки. Если же делать DATA соедеинение (простой дозвон на модем), то и скорости приличные и потерь нет.
аски нет, зато есть почта terrano2003@mail.ru
Кстати, может действительно лучше использовать lwIP?
Шведский институт компьютерных наук разрабатывал как-никак.
У меня к нему есть исходники PPP и FTP.
KonstantinT
Jul 5 2007, 15:56
PPP в комплекте с ним идут
Цитата(Alexey Belyaev @ Jul 3 2007, 13:28)

Явно вижу, что с UART данные ушли в модеи, последний что-то энергично протрещал, а на полкчателе не вижу такого пакета, потом серия ретрейнов и вот он пролез. И это ещё цветочки. Если же делать DATA соедеинение (простой дозвон на модем), то и скорости приличные и потерь нет.
Странно это

У меня нормально все работает и FTP тоже. На этих же исходниках делал мониторинг по UDP, тоже все нормально, за исключением лага GPRS (что проявляется не зависимо как на компе так и на устройстве).
"за исключением лага GPRS"
Что имеется в виду?
Портировал этот стек для LPC2106, компилятор ICCV7.
К UART1 подключен GPRS модем Siemens.
Из прибора идёт следующий листинг по консольному UART0:
dial
*** AT Stage: Dial Init 1
AT\Q0
at\q0
ok
*** AT Stage: Dial Init 2
AT+CGDCONT=1,"IP","internet"
at+cgdcont=1,"ip","internet"
ok
*** AT Stage: Dial Init 3
ATE0
ate0
ok
*** AT Stage: Dialing
ATD*99*217.16.29.51*PPP*1#
connect
*** AT Stage: PPP
*** PPP Stage: None
*** PPP Stage: Starting
*** AT Stage: Disc 1
*** PPP Stage: Starting
*** PPP Stage: LCP Options
TX: Protocol: PPP_LCP [04x] Code:CREQ [1] ID:0 Len:20
type:1 len:4 MRU: 1500
type:2 len:6 ACCM: 00000000000000000000000000000000
type:32 len:253 .. 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 0
2X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 0
2X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 0
2X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 0
2X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 0
2X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02 э®І} } «T} } }
М?L} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }
} } } } } } } } } } } } } } } 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 0
2X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 0
2X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 0
2X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 0
2X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 0
2X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X 02X
в результате соединение не устанавливается. Пробовал с МТСом и Мегафоном.
Что не так в PPP?
Usatyj
Jul 12 2007, 10:23
Цитата(etoja @ Jul 3 2007, 16:32)

аски нет, зато есть почта terrano2003@mail.ru
Кстати, может действительно лучше использовать lwIP?
Шведский институт компьютерных наук разрабатывал как-никак.
У меня к нему есть исходники PPP и FTP.
Если несложно, поделитесь пожалуйста
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.