Jump to content

    

Алексей ВМ

Участник
  • Content Count

    145
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Алексей ВМ

  • Rank
    Частый гость

Recent Profile Visitors

2774 profile views
  1. lwip 2.1.2 можно чуть подробнее, если не сложно. Как понять, что сокет норм закрылся? И где чего дописать, чтоб наверняка?
  2. Выделение памяти не помогает, выделено 8К, если нет таймаутов, то максимум требуется 4К. Да, МК - хост, модем подключен девайсом. Такое впечатление, что где-то утечка памяти, но как её выявить непонятно.
  3. Добрый день! Имеется STM32F4 с FreeRTOS и lwIP на борту. Передаю данные с использованием PPP и USB модема. Передача реализована с помощью сокетов. Возникает ситуация, когда при таймауте ответа от сервера размер используемой кучи lwIP начинает расти, и в конце концов tcp_write() не хватает памяти для размещения очередного сегмента: tcp_write(pcb=20015730, data=20001950, len=2466, apiflags=1) tcp_write: queueing 6720:8080 mem_malloc: could not allocate 1436 bytes tcp_write : could not allocate memory for pbuf copy size 1106 Кто не чистит за собой память? Проблема возникает, если данные не влезают в один сегмент.
  4. Подскажите, плиз, где достать отладку STM32MP157C-DK2 за пару недель. Везде под заказ от 3-4 недель. С-Петербург.
  5. Куплю борду STM32MP157C-DK2.
  6. У меня не эзернет, а USB модем. Косяк в процедуре передачи данных по USB в модем.
  7. Без FreeRTOS все работает отлично, задержка не более 1 секунды. Выходит, проблема в ОС, либо в том, что используются разные функции lwip для работы с ОС и без.
  8. Добрый день, в процессе решения проблемы появилось подозрение, что задержка может образовываться из-за FreeRTOS. Пытаюсь собрать проект без ОС (NO_SYS = 1), однако компилятор ругается на отсутствие функций Error: L6218E: Undefined symbol sys_timeout (referred from fsm.o). Error: L6218E: Undefined symbol sys_untimeout (referred from fsm.o). опции следующие; #define LWIP_SOCKET 0 //add sockets.c to compilation #define LWIP_NETCONN 0 //sequiential API is used #define LWIP_ARP 0 //No ARP is needed #define LWIP_DNS 1 #define LWIP_DNS_SECURE 0 //Disable DNS security #define LWIP_ICMP 1 #define LWIP_RAW 1 //RAW IP connections #define LWIP_DHCP 0 #define LWIP_UDP 1 #define LWIP_TCP 1 #define PPP_SUPPORT 1 #define PPPOE_SUPPORT 0 #define PPP_INPROC_IRQ_SAFE 0 #define LWIP_PPP_API 0 #define PAP_SUPPORT 1 #define VJ_SUPPORT 1 #define LWIP_TIMERS 0 Вопрос - возможна ли в принципе поддержка PPP без ОС? Явных ограничений из кода не следует, но вот как быть с функциями таймаутов?
  9. Особых требований нет, но хочется, чтобы все уже было в сборе. В идеальном случае, в корпусе)
  10. Добрый день, Посоветуйте, пожалуйста, одноплатник, со след возможностями: 1. ОС - Линукс с графическим интерфейсом 2. Желательно два ядра ARM - под приложения (Ах) и под обработку реального времени (Мх) 3. 5-6 входов АЦП 4. Желательно наличие встроенного GPS модуля 5. ЖКИ не менее 5" Назначение - прием аналоговых сигналов, обработка в режиме реального времени, отображение в графическом виде.
  11. Спасибо! Программное вычисление CRC включено, в противном случае до сервера вообще бы ничего не доходило, в моем случае доходит 90% посылок, из них 50% с большой задержкой.
  12. Может кто-нибудь прокомментировать, что происходит: Посылаем данные TCP CONNECTED tcp_write(pcb=2000db28, data=20001492, len=178, apiflags=1) tcp_write: queuelen: 0 tcp_write: queueing 6516:6694 tcp_write: 1 (after enqueued) tcp_output: snd_wnd 14600, cwnd 4380, wnd 4380, effwnd 178, seq 6516, ack 6516 tcp_output: snd_wnd 14600, cwnd 4380, wnd 4380, effwnd 178, seq 6516, ack 6516, i 0 tcp_output_segment: 6516:6694 pppos_netif_output[0]: proto=0x21, len = 218 И после этого начинается TCP SEND OK!!! tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 4380, wnd 4380, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 4380, wnd 4380, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 4380, wnd 4380, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: rtime 6 pcb->rto 6 tcp_slowtmr: cwnd 1360 ssthresh 2720 tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, effwnd 178, seq 6516, ack 6516 tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, effwnd 178, seq 6516, ack 6516, i 0 tcp_output_segment: rtseq 6516 tcp_output_segment: 6516:6694 pppos_netif_output[0]: proto=0x21, len = 218 tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: rtime 12 pcb->rto 12 tcp_slowtmr: cwnd 1360 ssthresh 2720 tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, effwnd 178, seq 6516, ack 6516 tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, effwnd 178, seq 6516, ack 6516, i 0 tcp_output_segment: rtseq 6516 tcp_output_segment: 6516:6694 pppos_netif_output[0]: proto=0x21, len = 218 tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb tcp_slowtmr: processing active pcb tcp_slowtmr: polling application tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516 tcp_slowtmr: processing active pcb NO DATA TO RECEIVE tcp_close: closing in State: ESTABLISHED tcp_enqueue_flags: queuelen: 1 tcp_enqueue_flags: queueing 6694:6695 (0x1) tcp_enqueue_flags: 2 (after enqueued) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, effwnd 178, seq 6694, ack 6516 tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, effwnd 178, seq 6694, ack 6516, i 0 tcp_output_segment: 6694:6694 pppos_netif_output[0]: proto=0x21, len = 40 Отладка не получила АСК от сервера и пытается периодически что-то на сервер отправить? tcp_output: nothing to send (00000000) tcp_output: snd_wnd 14600, cwnd 1360, wnd 1360, seg == NULL, ack 6516
  13. Воткнул модем в ноут - COM портов нет. Думаю, модем каким-то хитрым образом сконфигурирован. Дров не было. Установил - появился СОМ порт.