|
LWIP Как послать данные (tcp_write) по событию? |
|
|
|
Apr 29 2014, 09:49
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 22-12-05
Пользователь №: 12 577

|
Здравствуйте. Сделал на STM32F4 TCP/IP сервер c использованием lwip стека без OS. Все работает замечательно по типу запрос-ответ. Ответ процедурой tcp_write реализован как и требуется из callback. Но вот возникла необходимость посылать данные не по запросу, а по событию - по приходу строба на ножку. Делал ссылку на pcb во время коннекта клиента, и отправлял данные вне callback... Код struct tcp_pcb *Globalpcb; .... Globalpcb=pcb; ....
if(Globalpcb != NULL) { COUNT_TX=tcp_sndbuf(Globalpcb); if(COUNT_TX > Len) { err = tcp_write(Globalpcb, Data, Len, 1); tcp_output(Globalpcb); } } все работает..., но не долго - периодически стек падает. Вопрос как гармотно использовать tcp_write в данном случае чтобы не порушить стек? Кто сталкивался?
Сообщение отредактировал IgorKossak - Apr 29 2014, 11:34
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
|
|
|
|
|
 |
Ответов
|
Jun 5 2014, 02:35
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
WireShark для некоторых пакетов, отправляемых LwIP, выдаёт ETHERNET FRAME CHECK SEQUENCE INCORRECT, например, для ответа на ARP запрос выдаёт эту месагу. Кто такой этот ETHERNET FRAME CHECK SEQUENCE, который получился как 5A D2 36 08, а должен был быть 4F 8F 14 D1? Ведь ethernet CRC формируется MAC-контроллером и WireShark-ом я его, по идее, не вижу.
Эскизы прикрепленных изображений
|
|
|
|
Сообщений в этой теме
js_slider LWIP Как послать данные (tcp_write) по событию? Apr 29 2014, 09:49 scifi Цитата(js_slider @ Apr 29 2014, 13:49) Но... Apr 29 2014, 10:44 js_slider Цитата(scifi @ Apr 29 2014, 13:44) Надеюс... Apr 29 2014, 11:53  scifi Цитата(js_slider @ Apr 29 2014, 15:53) Из... Apr 29 2014, 12:51  kolobok0 Цитата(js_slider @ Apr 29 2014, 15:53) Из... Apr 29 2014, 19:46   KnightIgor Цитата(kolobok0 @ Apr 29 2014, 20:46) поч... Apr 30 2014, 10:14 js_slider Благодарю всех откликнувшихся. Проблема решена. Де... May 3 2014, 16:58 TriAlexAnt Если можно, хочу задать вопрос в развитие данной т... May 7 2014, 12:26 scifi Цитата(TriAlexAnt @ May 7 2014, 16:26) Хо... May 7 2014, 13:50  TriAlexAnt Цитата(scifi @ May 7 2014, 16:50) HTTP не... May 7 2014, 14:04   scifi Цитата(TriAlexAnt @ May 7 2014, 18:04) А ... May 7 2014, 14:22  jcxz Цитата(scifi @ May 7 2014, 19:50) HTTP не... May 7 2014, 15:26 doom13 Хочу к своему проекту прикрутить либу LWIP, пока ч... May 19 2014, 08:09 scifi Цитата(doom13 @ May 19 2014, 16:19) Данна... May 19 2014, 08:40  doom13 Цитата(scifi @ May 19 2014, 15:50) Это си... May 19 2014, 08:47   scifi Цитата(doom13 @ May 19 2014, 16:57) Посов... May 19 2014, 08:54    doom13 Цитата(scifi @ May 19 2014, 16:04) Можно ... May 19 2014, 09:19 andrewlekar ЦитатаДанная либа не позволяет послать фрагментиро... May 20 2014, 00:39 doom13 Цитата(andrewlekar @ May 20 2014, 07:49) ... May 20 2014, 02:55 Golikov A. проблема в том что макс пакет около 1500 байт, 143... May 20 2014, 00:46 doom13 Цитата(Golikov A. @ May 20 2014, 07:56) п... May 20 2014, 03:34 Golikov A. А! ну у вас ошибка терминологии)
Если у вас е... May 20 2014, 03:04 Golikov A. странно это все для меня, ну если вы говорите.... ... May 20 2014, 03:39 doom13 В либе LwIP часто встречается термин PCB, если мож... Jun 3 2014, 09:18 scifi Цитата(doom13 @ Jun 3 2014, 17:28) В либе... Jun 3 2014, 09:36  doom13 Цитата(scifi @ Jun 3 2014, 16:46) Protoco... Jun 3 2014, 09:40 doom13 Нужна помощь, не могу понять, чего не хватает, что... Jun 4 2014, 04:41 Golikov A. как минимум надо дергать еще функции LwIP которые ... Jun 4 2014, 05:41 doom13 Цитата(Golikov A. @ Jun 4 2014, 12:51) ка... Jun 4 2014, 05:52  scifi Цитата(doom13 @ Jun 4 2014, 14:02) Почему... Jun 4 2014, 06:11   doom13 Цитата(scifi @ Jun 4 2014, 13:21) Что-то ... Jun 4 2014, 06:16    scifi Цитата(doom13 @ Jun 4 2014, 14:26) Я пока... Jun 4 2014, 06:47     doom13 Цитата(scifi @ Jun 4 2014, 13:57) Отправк... Jun 4 2014, 06:56      scifi Цитата(doom13 @ Jun 4 2014, 15:06) По иде... Jun 4 2014, 07:02       doom13 Цитата(scifi @ Jun 4 2014, 14:12)
Мы нав... Jun 4 2014, 07:14        scifi Цитата(doom13 @ Jun 4 2014, 15:24) Вы про... Jun 4 2014, 07:21 doom13 Короче передача заработала, проблема была в том, ч... Jun 4 2014, 08:13 scifi Цитата(doom13 @ Jun 4 2014, 16:23) Очеред... Jun 4 2014, 10:44  doom13 Цитата(scifi @ Jun 4 2014, 17:54) Что зна... Jun 4 2014, 13:33 doom13 Смотрю, что в ARP протоколе этих четырёх последних... Jun 5 2014, 03:48 jcxz ARP-кадр у вас вроде верный.
Не забыли, что пре пе... Jun 5 2014, 07:05  doom13 Цитата(jcxz @ Jun 5 2014, 14:15) ARP-кадр... Jun 5 2014, 07:32 doom13 Приветствую.
Разбирался с работой LwIP на плате с ... Jun 10 2014, 04:47 scifi Цитата(doom13 @ Jun 10 2014, 12:57) Можно... Jun 10 2014, 04:54  doom13 Цитата(scifi @ Jun 10 2014, 12:04)
Спаси... Jun 10 2014, 07:28 doom13 Возник вопрос, получится ли использовать LwIP и AM... Jun 11 2014, 03:11 scifi Цитата(doom13 @ Jun 11 2014, 11:21) Возни... Jun 11 2014, 05:32 Golikov A. LwIP можно утоптать в работу на аж на 2 КБайтах РА... Jun 11 2014, 04:53 doom13 Цитата(Golikov A. @ Jun 11 2014, 12:03) L... Jun 11 2014, 05:54  scifi Цитата(doom13 @ Jun 11 2014, 14:04) Попыт... Jun 11 2014, 05:57   doom13 Цитата(scifi @ Jun 11 2014, 13:07) Для на... Jun 11 2014, 05:59   scifi Цитата(scifi @ Jun 11 2014, 14:07) Для на... Jun 11 2014, 06:26    doom13 Цитата(scifi @ Jun 11 2014, 13:36) Википе... Jun 11 2014, 06:42   doom13 Цитата(scifi @ Jun 11 2014, 13:07) Для на... Jun 11 2014, 09:25    scifi Цитата(doom13 @ Jun 11 2014, 17:35) Норма... Jun 11 2014, 09:29 Golikov A. по РАМ режут количество сокетов и их размеры для U... Jun 11 2014, 06:17
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|