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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> stm32f7+Lwip+lan8742, Тормоза при передачи
sadat
сообщение Dec 1 2017, 13:39
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 117
Регистрация: 6-07-05
Из: Белгород
Пользователь №: 6 575



Цитата(Kot_Schrodingera @ Dec 1 2017, 13:39) *
Да, уверен

В таких случаях выкладывают часть кода для анализа - то, что не составляет коммерческую тайну. Телепатические приёмы уже не работают.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Dec 1 2017, 19:23
Сообщение #17


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(scifi @ Dec 1 2017, 10:37) *
..скорее, некая демонстрация....


+1
немного другая мысль - что типа специально немного удалили пару блоков кода. не серьёзно но вот как раз паузы создаёт sm.gif - но думаю мысля та-же..


(круглый)
Go to the top of the page
 
+Quote Post
Kot_Schrodingera
сообщение Dec 4 2017, 04:28
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 28-11-17
Пользователь №: 100 395



Цитата
В таких случаях выкладывают часть кода для анализа - то,

Я думаю не имеет смысла выкладывать часть, которая относится к lwip, там я ничего не менял
CODE
void netconn_thread(void const *argument)
{
HAL_GPIO_WritePin(GPIOE, USB_PWR_GPIO_Pin, GPIO_PIN_SET);
HAL_Delay(10000);
struct netconn *conn, *newconn;


err_t err;
conn = netconn_new(NETCONN_TCP);

if(conn != NULL) {
err = netconn_bind(conn, NULL, 20020);

if(err == ERR_OK) {

netconn_listen(conn);

for(;;) {
err = netconn_accept(conn, &newconn);
connNoErr = true;

//netconn_set_recvtimeout(newconn, 50);
while((!ERR_IS_FATAL(netconn_err(newconn)))&(connNoErr)) {
recv_and_resp_netconn(newconn);
}

//if(err != ERR_OK)
//continue;

netconn_close(newconn);
netconn_delete(newconn);


}
} else {
debug("Can not bind netconn");
}
} else {
debug("Can not create netconn");
}

}
static void recv_and_resp_netconn(struct netconn *conn)
{
struct netbuf *inbuf;
err_t res;
char *buf;
u16_t buflen;
uint8_t type;
uint8_t buff_img[165000];

res = netconn_recv(conn, &inbuf);
if(res == ERR_OK) {

netbuf_data(inbuf, (void**)&buf, &buflen);

if(buflen >= sizeof(packet_tx_t)) {

uint8_t buffer[buflen];
memcpy(&buffer, buf, buflen);
search_object_t *packet = (search_object_t *)&buffer[1];

if(packet->header.cmd != PB_PVS_CMD_LED) {
pb_menu_process(buff_img, IMAGE_SIZE, buffer, buflen, packet->header.cmd);
}

packet_rx_t *packet_rx = (packet_rx_t *)&buff_img[1];

if(packet->header.cmd) {

if(packet->header.cmd == CMD_GET_SCAN) {
size_t size_rx;

if(packet_rx->status) {
size_rx = 20;
} else {
size_rx = IMAGE_SIZE + 14;
};
static uint32_t lt1, lt2, ltd, lt, ltpr;
//taskENTER_CRITICAL();
lt1 = xTaskGetTickCount();
netconn_write(conn, buff_img, size_rx, NETCONN_NOCOPY);
lt2 = xTaskGetTickCount();
ltd = lt2-lt1;
//taskEXIT_CRITICAL();
debug("qwerty\t%u", ltd);

} else {

netconn_write(conn, buff_img, 80, NETCONN_NOCOPY);
}
}
memset(buff_img, 0, 20);
}
} else {
debug("Error receiver : %d", res);
connNoErr = false;

}

netbuf_delete(inbuf);
}



И еще, раз возникает retransmission, то есть мой девайс не может дождаться ответа от хоста, может можно как-то увеличить это время?

Сообщение отредактировал IgorKossak - Dec 4 2017, 08:37
Причина редактирования: [codebox] для длинного кода. [code]-для короткого!!!
Go to the top of the page
 
+Quote Post
scifi
сообщение Dec 4 2017, 07:33
Сообщение #19


Гуру
******

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



Цитата(Kot_Schrodingera @ Dec 4 2017, 07:28) *
И еще, раз возникает retransmission, то есть мой девайс не может дождаться ответа от хоста, может можно как-то увеличить это время?

Просто теряется пакет. Либо при приёме, либо при передаче. Это баг. В нормально работающей системе ничто не теряется.
Go to the top of the page
 
+Quote Post
Kot_Schrodingera
сообщение Dec 4 2017, 09:55
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 28-11-17
Пользователь №: 100 395



Увеличил буффер TCP_SND_BUF
И получил следующее
Код
"1213","5.672845","172.29.21.156","172.29.21.190","TCP","1514","20020  >  56571 [ACK] Seq=712117 Ack=1693 Win=1498 Len=1460"
"1214","5.672951","172.29.21.156","172.29.21.190","TCP","1514","20020  >  56571 [ACK] Seq=713577 Ack=1693 Win=1498 Len=1460"
"1215","5.673065","172.29.21.156","172.29.21.190","TCP","1514","20020  >  56571 [ACK] Seq=715037 Ack=1693 Win=1498 Len=1460"
"1216","5.673137","172.29.21.190","172.29.21.156","TCP","60","56571  >  20020 [ACK] Seq=1693 Ack=710657 Win=65535 Len=0"
"1217","5.673416","172.29.21.156","172.29.21.190","TCP","1514","[TCP Previous segment not captured] 20020  >  56571 [ACK] Seq=717957 Ack=1693 Win=1498 Len=1460"
"1218","5.673745","172.29.21.190","172.29.21.156","TCP","60","56571  >  20020 [ACK] Seq=1693 Ack=713577 Win=65535 Len=0"
"1219","5.673750","172.29.21.190","172.29.21.156","TCP","60","56571  >  20020 [ACK] Seq=1693 Ack=716497 Win=65535 Len=0"
"1220","5.674088","172.29.21.156","172.29.21.190","TCP","1514","20020  >  56571 [ACK] Seq=719417 Ack=1693 Win=1498 Len=1460"
"1221","5.674191","172.29.21.156","172.29.21.190","TCP","1514","20020  >  56571 [ACK] Seq=720877 Ack=1693 Win=1498 Len=1460"
"1222","5.674314","172.29.21.156","172.29.21.190","TCP","1514","20020  >  56571 [ACK] Seq=722337 Ack=1693 Win=1498 Len=1460"
"1223","5.674366","172.29.21.190","172.29.21.156","TCP","60","[TCP Dup ACK 1219#1] 56571  >  20020 [ACK] Seq=1693 Ack=716497 Win=65535 Len=0"
"1224","5.675012","172.29.21.190","172.29.21.156","TCP","60","[TCP Dup ACK 1219#2] 56571  >  20020 [ACK] Seq=1693 Ack=716497 Win=65535 Len=0"
"1225","5.675019","172.29.21.190","172.29.21.156","TCP","60","[TCP Dup ACK 1219#3] 56571  >  20020 [ACK] Seq=1693 Ack=716497 Win=65535 Len=0"
"1226","5.675024","172.29.21.190","172.29.21.156","TCP","60","[TCP Dup ACK 1219#4] 56571  >  20020 [ACK] Seq=1693 Ack=716497 Win=65535 Len=0"
"1227","5.675320","172.29.21.156","172.29.21.190","TCP","1514","[TCP Fast Retransmission] 20020  >  56571 [ACK] Seq=716497 Ack=1693 Win=1498 Len=1460"
"1228","5.676263","172.29.21.190","172.29.21.156","TCP","60","56571  >  20020 [ACK] Seq=1693 Ack=723797 Win=65535 Len=0"
"1229","5.676315","172.29.21.156","172.29.21.190","TCP","1514","[TCP Previous segment not captured] 20020  >  56571 [ACK] Seq=725257 Ack=1693 Win=1498 Len=1460"
"1230","5.676904","172.29.21.190","172.29.21.156","TCP","60","[TCP Dup ACK 1228#1] 56571  >  20020 [ACK] Seq=1693 Ack=723797 Win=65535 Len=0"
"1231","5.677312","172.29.21.156","172.29.21.190","TCP","1514","20020  >  56571 [ACK] Seq=726717 Ack=1693 Win=1498 Len=1460"
"1232","5.678181","172.29.21.190","172.29.21.156","TCP","60","[TCP Dup ACK 1228#2] 56571  >  20020 [ACK] Seq=1693 Ack=723797 Win=65535 Len=0"
"1244","7.145808","172.29.21.156","172.29.21.190","TCP","1514","[TCP Retransmission] 20020  >  56571 [ACK] Seq=723797 Ack=1693 Win=1498 Len=1460"
"1245","7.146624","172.29.21.190","172.29.21.156","TCP","60","56571  >  20020 [ACK] Seq=1693 Ack=728177 Win=65535 Len=0"
"1246","7.146985","172.29.21.156","172.29.21.190","TCP","1514","20020  >  56571 [ACK] Seq=728177 Ack=1693 Win=1498 Len=1460"
"1247","7.147109","172.29.21.156","172.29.21.190","TCP","1514","20020  >  56571 [ACK] Seq=729637 Ack=1693 Win=1498 Len=1460"
"1248","7.147869","172.29.21.190","172.29.21.156","TCP","60","56571  >  20020 [ACK] Seq=1693 Ack=729637 Win=65535 Len=0"
"1249","7.147884","172.29.21.190","172.29.21.156","TCP","60","56571  >  20020 [ACK] Seq=1693 Ack=731097 Win=65535 Len=0"

Я правильно понимаю, что проблемы не у меня?
Go to the top of the page
 
+Quote Post
Grape
сообщение Dec 4 2017, 10:16
Сообщение #21


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 22-10-04
Пользователь №: 956



а какая версия lwip?
Go to the top of the page
 
+Quote Post
Kot_Schrodingera
сообщение Dec 4 2017, 10:43
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 28-11-17
Пользователь №: 100 395



Цитата
а какая версия lwip?

2.0.0

Сообщение отредактировал Kot_Schrodingera - Dec 4 2017, 10:44
Go to the top of the page
 
+Quote Post
Grape
сообщение Dec 5 2017, 09:37
Сообщение #23


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 22-10-04
Пользователь №: 956



Цитата(Kot_Schrodingera @ Dec 4 2017, 13:43) *
2.0.0


я бы попробовал 2.0.3 и включил бы статистику.
У меня были похожие затыки, в результате нашлась ошибочка в lwip.

Go to the top of the page
 
+Quote Post
Kot_Schrodingera
сообщение Dec 11 2017, 04:54
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 28-11-17
Пользователь №: 100 395



Цитата
я бы попробовал 2.0.3 и включил бы статистику.

Сейчас займусь этим, спасибо
Go to the top of the page
 
+Quote Post

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

 


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


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