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

 
 
> 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 11 2014, 04:53
Сообщение #2


Гуру
******

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



LwIP можно утоптать в работу на аж на 2 КБайтах РАМ, Она для того и сделана чтобы работать на супер маленьких AVR. Другое дело что она сможет на такой памяти потянуть... Больше вопрос в том сколько flash она сожрет
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 11 2014, 05:54
Сообщение #3


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

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



Цитата(Golikov A. @ Jun 11 2014, 12:03) *
LwIP можно утоптать в работу на аж на 2 КБайтах РАМ, Она для того и сделана чтобы работать на супер маленьких AVR. Другое дело что она сможет на такой памяти потянуть... Больше вопрос в том сколько flash она сожрет

Flash-а на этом проце нету, т.е. надо всё в RAM утоптать, вот и вопрос, сколько же код всех функций и прочего LwIP скушает?


Цитата(scifi @ Jun 11 2014, 12:42) *
У мну lwip занимает 21К байт памяти программ (Cortex-M3). Это Raw API, no OS. Полное приложение занимает 85К байт памяти программ. Это не считая константы, а их много: все веб-страницы там же. Приложение содержит много функционала. По моему опыту, 32К байт оперативной памяти для буферов lwip - это оч. комфортный объём, с которым веб интерфейс летатает. Наверняка и с 16К тоже будет летать.

Вот и у меня на плате с Cortex-M3 вместе с проектом переработанным из примера Техаса под Cortex-M3 весь код прошивки уместился в 38 кБ. Попытка прикрутить LwIP к ARM9 (так же на основе примера Техаса, но для ARM9) не проходит, после комента кучи функций код занимает порядка 90 кБ, а если оставить как есть, то и в 128 кБ не помещается. Что-то, наверное, для либы можно оптимизировать?
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
- - 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   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
|- - 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 Текстовая версия Сейчас: 31st July 2025 - 12:31
Рейтинг@Mail.ru


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