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

 
 
> 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
scifi
сообщение Jun 11 2014, 05:57
Сообщение #4


Гуру
******

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



Цитата(doom13 @ Jun 11 2014, 14:04) *
Попытка прикрутить LwIP к ARM9 (так же на основе примера Техаса, но для ARM9) не проходит, после комента кучи функций код занимает порядка 90 кБ...

Для начала надо включить режим THUMB.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 11 2014, 06:26
Сообщение #5


Гуру
******

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



Цитата(scifi @ Jun 11 2014, 14:07) *
Для начала надо включить режим THUMB.

Википедия в помощь.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 11 2014, 06:42
Сообщение #6


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

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



Цитата(scifi @ Jun 11 2014, 13:36) *

Это я уже посмотрел. Как мне его включить или посмотреть включён ли он в моём проекте?

Цитата(Golikov A. @ Jun 11 2014, 13:27) *
по РАМ режут количество сокетов и их размеры для UDP и TCP
по размеру библиотеки думаю очень должно помочь срезать весь дебаг, он там обширный и через printf, а эта библиотечка много кушает...

Дебаг, если правильно понимаю, выключен
Код
#define LWIP_DBG_MIN_LEVEL              LWIP_DBG_LEVEL_OFF

, сокеты так же
Код
#define LWIP_SOCKET                     0
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
|- - doom13   Цитата(scifi @ Jun 11 2014, 13:07) Для на...   Jun 11 2014, 05:59
|- - 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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