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

 
 
> lwip с Rtos или без Rtos, Как лучше, правильнее, удобнее использовать стек с rtos или без
sergey sva
сообщение Jan 29 2014, 08:50
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Не знаю пока всех тонкостей по этой теме, проконсультируйте пожалуйста.
Как лучше использовать stek lwip с Rtos или без какие за и против, для примера контроллер lpc4337?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergey sva
сообщение Jan 29 2014, 11:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Понятно, какие еще есть открытые , на данный момент нашел два lwip и fnet и uIP. Второй кто нибудь использовал ?
Еще вопрос по стеку Lwip в функции low_level_output в цикле заполняется dma и после отправляется фрейм.
Если сразу отправлять, насколько это будет правильно?
Код
    for(q = p; q != NULL; q = q->next) {
     заполняем dma(q->payload, q->len);
     запрос на передачу()
    }
Go to the top of the page
 
+Quote Post
scifi
сообщение Jan 29 2014, 12:45
Сообщение #3


Гуру
******

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



Цитата(sergey sva @ Jan 29 2014, 15:53) *
Еще вопрос по стеку Lwip в функции low_level_output в цикле заполняется dma и после отправляется фрейм.
Если сразу отправлять, насколько это будет правильно?

Сразу отправлять - это zero-copy transmit что ли? Я, собственно, так и делаю. Естественно, есть ограничения: данные для отправки не могут лежать в флеше, т.к. STM32 Ethernet DMA не имеет к ней доступа. Кроме того, я жду окончания отправки пакета прямо там же, так как в противном случае есть вероятность того, что буфер будет затёрт до того, как пакет будет отправлен.
Чтобы не быть голословным, вот код:
CODE
err_t
low_level_output(struct netif *netif, struct pbuf *p)
{
int i;
uint32_t mask;

if (!netif_is_link_up(netif))
{
return ERR_OK;
}
while ((ETH_DMASR & 0x00700000) != 0x00600000)
{
/* wait until Tx DMA is suspended */
}
mask = (1u << 31) /* OWN bit */
| (1 << 28); /* first segment */
i = -1;
for (;;)
{
i++;
if (i == TX_RING_SIZE)
{
/* not enough TX descriptors */
return ERR_MEM;
}
tx_desc[i].len[0] = p->len;
tx_desc[i].ptr[0] = p->payload;
p = p->next;
if (p)
{
tx_desc[i].len[1] = p->len;
tx_desc[i].ptr[1] = p->payload;
p = p->next;
if (p)
{
tx_desc[i].status = mask;
mask = (1u << 31); /* OWN bit */
}
else
{
break;
}
}
else
{
tx_desc[i].len[1] = 0;
break;
}
}
mask |= (1 << 21) /* end of ring */
| (1 << 29); /* last segment */
tx_desc[i].status = mask;
REGBIT(ETH_DMASR, 10) = 1; /* reset ETS flag in status register */
ETH_DMATPDR = 0; /* start transmission */
while (REGBIT(ETH_DMASR, 10) == 0)
{
/* wait for data to be copied into Tx FIFO */
}
return ERR_OK;
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sergey sva   lwip с Rtos или без Rtos   Jan 29 2014, 08:50
- - scifi   Я использовал без RTOS - так исторически сложилось...   Jan 29 2014, 09:26
||- - Golikov A.   Цитата(scifi @ Jan 29 2014, 16:45) Кроме ...   Jan 29 2014, 17:29
||- - _Артём_   Цитата(Golikov A. @ Jan 29 2014, 19:29) К...   Jan 29 2014, 18:07
||- - scifi   Цитата(Golikov A. @ Jan 29 2014, 21:29) П...   Jan 29 2014, 19:08
|- - kolobok0   Цитата(sergey sva @ Jan 29 2014, 15:53) ....   Jan 29 2014, 16:17
- - sergey sva   Да. Смотрел пример в нем реализовано так Код for...   Jan 29 2014, 13:21
- - Golikov A.   Мне кажется что memcpy быстрее скопирует данные из...   Jan 29 2014, 18:32
|- - _Артём_   Цитата(Golikov A. @ Jan 29 2014, 20:32) И...   Jan 29 2014, 19:24
|- - scifi   Не только дефицит ОЗУ, но и вообще не нужны мне ре...   Jan 29 2014, 20:10
- - sergey sva   struct pbuf->len указывает размер в байтах или ...   Jan 30 2014, 14:11
- - MALLOY2   В байтах   Jan 30 2014, 15:54
- - sergey sva   Понятно видимо гдето ошибся. Добавили вывод в терм...   Jan 30 2014, 18:17
- - sergey sva   Снял лог есть несколько ошибок, может у кого такие...   Jan 30 2014, 20:27
- - sergey sva   Думаю что не хочет работать из за этой ошибки tcp_...   Jan 31 2014, 12:45
- - Golikov A.   no active pcbs это не ошибка, это констатация факт...   Jan 31 2014, 13:32
- - sergey sva   Быстрый ,медленый таймер дергае tcptmr(), может ещ...   Jan 31 2014, 14:01
- - MALLOY2   ЦитатаЕсли нет системы не получиться использовать ...   Jan 31 2014, 14:03
- - sergey sva   Благодарю ,помогли . Ошибка была в копирование из ...   Jan 31 2014, 17:12
- - sergey sva   Вроде проясняется потихоньку). Сейчас между двумя ...   Feb 1 2014, 06:08
- - Golikov A.   ну есть третий, сделать свой буфер, аналог PBUF, н...   Feb 1 2014, 11:09
- - sergey sva   Понятно. Еще наверно будет проблема без ос, если ...   Feb 2 2014, 05:25
|- - scifi   Цитата(sergey sva @ Feb 2 2014, 09:25) Ещ...   Feb 2 2014, 05:42
- - sergey sva   Например у меня несколько страниц web подключился ...   Feb 2 2014, 05:58
|- - scifi   Цитата(sergey sva @ Feb 2 2014, 09:58) На...   Feb 2 2014, 06:09
- - Golikov A.   ну вообще вы описываете стандартную работу сервера...   Feb 2 2014, 18:57
- - MALLOY2   ЦитатаПервый с копированием данных из pbuf и второ...   Feb 3 2014, 07:04
- - sergey sva   Цитатамаксимальный фрейм (1512 по моему). наверно ...   Feb 3 2014, 12:24
|- - scifi   Цитата(sergey sva @ Feb 3 2014, 16:24) #d...   Feb 3 2014, 13:00
||- - kolobok0   Цитата(scifi @ Feb 3 2014, 17:00) ...у не...   Feb 3 2014, 18:21
||- - scifi   Цитата(kolobok0 @ Feb 3 2014, 22:21) там ...   Feb 3 2014, 19:17
|- - Golikov A.   Цитата(sergey sva @ Feb 3 2014, 16:24) Ка...   Feb 3 2014, 14:00
- - sergey sva   У меня вот так задается PBUF_POOL_BUFSIZE Код/**...   Feb 3 2014, 13:51
- - sergey sva   Может есть готовые библиотеки работы с сокетами ?   Feb 3 2014, 14:15
- - sergey sva   Еще один вопрос новичка по lwip, после accept как ...   Feb 3 2014, 15:35
- - MALLOY2   ЦитатаБуквально на днях сам на этом обжёгся. lwip ...   Feb 3 2014, 15:46
|- - scifi   Цитата(MALLOY2 @ Feb 3 2014, 19:46) lwip ...   Feb 3 2014, 15:54
- - sergey sva   Понятно. У меня первый вариант без ос. Вот еще как...   Feb 3 2014, 16:08
- - Golikov A.   почитайте викизнание по LwIP он сам сделает стру...   Feb 3 2014, 17:33
- - sergey sva   Документация только здесь http://lwip.wikia.com/wi...   Feb 3 2014, 19:09
- - sergey sva   После того как сервер получает запрос Get tcp долж...   Feb 4 2014, 12:39
- - sergey sva   Собрал по примерам исходников функцию которая долж...   Feb 4 2014, 15:18
- - scifi   Хотите написать свой веб сервер? Бросайте это гибл...   Feb 4 2014, 17:22
- - sergey sva   Сейчас посмотрю. Откуда же ей взяться если буду в...   Feb 4 2014, 17:50
- - sergey sva   Не выходит никак ничего )). В чем может быть дело...   Feb 9 2014, 09:36
- - sergey sva   Все заработало причина была в этом флаге TCP_WRITE...   Feb 9 2014, 14:01
- - sergey sva   Как ускорить процесс, сейчас в tcp_pool (foo,4) в ...   Feb 10 2014, 07:46
- - sergey sva   Если увеличить скорость быстрого и медленного тайм...   Feb 10 2014, 18:23
|- - kolobok0   Цитата(sergey sva @ Feb 10 2014, 22:23) Е...   Feb 12 2014, 12:26
- - Golikov A.   а вы попробуйте%)... пакеты приходить уходить чащ...   Feb 10 2014, 19:01
- - sergey sva   У меня сейчас почему то retransmitt с браузера про...   Feb 10 2014, 19:06
- - sergey sva   Никак не пойму в чем дело иногда не происходит пов...   Feb 11 2014, 13:32
- - Golikov A.   погодите, по быстрому таймеру дергается функция об...   Feb 12 2014, 17:56


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

 


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


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