реклама на сайте
подробности

 
 
> LWIP Как послать данные (tcp_write) по событию?
js_slider
сообщение Apr 29 2014, 09:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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] - для короткого!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Jun 4 2014, 05:41
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



как минимум надо дергать еще функции LwIP которые обрабатывают стэк. Вы пока создали сообщение и добавили его в очередь, а сам стэк не работает...

tcp_fasttmr();

и еще для прочей работы

tcp_slowtmr();
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 4 2014, 05:52
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Golikov A. @ Jun 4 2014, 12:51) *
как минимум надо дергать еще функции LwIP которые обрабатывают стэк. Вы пока создали сообщение и добавили его в очередь, а сам стэк не работает...

Почему не работает? Если пингануть плату - она ответит.

Цитата(Golikov A. @ Jun 4 2014, 12:51) *
tcp_fasttmr();
tcp_slowtmr();

Но это функции для работы по TCP протоколу, каким боком они к UDP?
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 4 2014, 06:11
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(doom13 @ Jun 4 2014, 14:02) *
Почему не работает? Если пингануть плату - она ответит.

Что-то не видно, как кадры из Ethernet принимаются и обрабатываются. В обработчике прерывания что ли?
Кстати, есть ещё ARP. Он тоже может задерживать отправку пакетов, и там есть таймеры.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 4 2014, 06:16
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(scifi @ Jun 4 2014, 13:21) *
Что-то не видно, как кадры из Ethernet принимаются и обрабатываются. В обработчике прерывания что ли?
Кстати, есть ещё ARP. Он тоже может задерживать отправку пакетов, и там есть таймеры.

Я пока отправку пытаюсь сделать, или Вы хотите сказать, что посылать данные без настройки приёма оно не будет?
ARP и ICMP начинают работать уже после
Код
lwIPInit(pucMACArray, board_ip, net_mask, 0, IPADDR_USE_STATIC);

и ничего более не требуют.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 4 2014, 06:47
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(doom13 @ Jun 4 2014, 14:26) *
Я пока отправку пытаюсь сделать, или Вы хотите сказать, что посылать данные без настройки приёма оно не будет?

Отправка без приёма работать не должна. Если только не сделаете заранее статическую таблицу ARP.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
|- - 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   WireShark для некоторых пакетов, отправляемых LwIP...   Jun 5 2014, 02:35
- - 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


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 08:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01447 секунд с 7
ELECTRONIX ©2004-2016