Jump to content

    

Search the Community

Showing results for tags 'lwip'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Сайт и форум
    • Новости и обсуждения сайта и форума
    • Другие известные форумы и сайты по электронике
    • В помощь начинающему
    • International Forum
    • Образование в области электроники
    • Обучающие видео-материалы и обмен опытом
  • Cистемный уровень проектирования
    • Вопросы системного уровня проектирования
    • Математика и Физика
    • Операционные системы
    • Документация
    • Системы CAD/CAM/CAE/PLM
    • Разработка цифровых, аналоговых, аналого-цифровых ИС
    • Электробезопасность и ЭМС
    • Управление проектами
    • Neural networks and machine learning (NN/ML)
  • Программируемая логика ПЛИС (FPGA,CPLD, PLD)
    • Среды разработки - обсуждаем САПРы
    • Работаем с ПЛИС, области применения, выбор
    • Языки проектирования на ПЛИС (FPGA)
    • Системы на ПЛИС - System on a Programmable Chip (SoPC)
  • Цифровая обработка сигналов - ЦОС (DSP)
    • Сигнальные процессоры и их программирование - DSP
    • Алгоритмы ЦОС (DSP)
  • Микроконтроллеры (MCs)
    • Cредства разработки для МК
    • ARM
    • AVR
    • MSP430
    • Все остальные микроконтроллеры
    • Отладочные платы
  • Печатные платы (PCB)
    • Разрабатываем ПП в САПР - PCB development
    • Работаем с трассировкой
    • Изготовление ПП - PCB manufacturing
  • Сборка РЭУ
  • Аналоговая и цифровая техника, прикладная электроника
  • Силовая Электроника - Power Electronics
  • Интерфейсы
  • Поставщики компонентов для электроники
  • Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
  • Дополнительные разделы - Additional sections

Calendars

  • ELECTRONIX Community Calendar

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Код проверки


skype


Facebook


Vkontakte


LinkedIn


Twitter


G+


Одноклассники

Found 6 results

  1. Уважаемые коллеги, здравствуйте! Делаю устройство на STM32F427 с использованием LWIP Sockets. Отправляю в сокет пакеты длиной 9 байт с частотой 120Гц. На приёмной стороне среднее количество полученных девятибайтовых пакетов за секунду 120. То есть все пакеты доходят до адресата отлично. Но! Wireshark мне показывает вот такую картину. Он говорит, что за секунду отправляется 5 TCP пакетов с payload 216 байт. То есть 24 девятибайтовых посылки в одном пакете. Мне нужно передавать быстроменяющийся сигнал, и за 200мс он безнадежно устареет. Вопрос такой. Как сделать, чтобы LWIP старался отправить TCP пакет сразу, а не накапливал данные в буфере? Я понимаю, что такой подход неэффективен, но нужно именно так. Заранее благодарю за ответы.
  2. Добрый день! Нужна помощь! Есть проект на отладочной плате nuclei-h743 реализует tcp сервер на lwip, полностью рабочий, нареканий нет. Написал идентичный проект в cubeide, при котором контроллер не подключается к сети, а по определяет как неопознанную сеть... подскажите, пожалуйста, что с этим делать? Куда копать?
  3. STM32F7LWIP

    Плата NUCLEO stm32f767ZI . Задача передать поток с камеры ov2640 2-10Мегабит. Делал такое уже на w5500 и stm32f4. Сейчас разогнал мк В кубе включил TCM interface для flash.ART Accelerator,instruction perfetch настройки адреса flash изменил вручную, т.к. куб не прописывает для KEIL почему то.Потребление камня заметно возросло производительность тоже. Использую DMA (для DСMI) оно вроде как и FLASH( по умолчанию) работает через шину AHB->AXI и там вроде как могут пробыть проблемы если включить кэш команд и данных.Поэтому сделал как написал выше. В планах разместись стек и кучу и FIFO буфер в DTCM и обработчики прерываний в ITCM. Работаю без RTOS RAW API.Проблема в том, ЧТО Я НЕ МОГУ ПОЛУЧИТЬ нормальные 10 Мегабит не говоря уже о 10 Мегабайтах в секунду о которых пишут. Передаю пакеты размером 16Кило след. образом. while(ETH_TXBUF_SIZE > get_tcp_sndbuf_free(&CI)) MX_LWIP_Process(); tcp_write(CI.tcp_client_pcb,ETH_TX_buf,ETH_TXBUF_SIZE, 1); tcp_output(CI.tcp_client_pcb); Проблема в том что пришлось выкрутить TCP_TMR_INTERVAL в 1 вместо 250? Иначе не работает на таких скоростях. По идее TCP_TMR_INTERVAL я вообще не должен трогать!!! Сейчас удается передать поток 5 Мегабит с камеры, есть tcp retransmission,tcp dup ACK. Есть логи отладки через stats_display(); там все ОК. lwipopts.h
  4. Здравствуйте, необходимо реализовать обмен данными между мк stm32 и пк посредством ethernet. МК передает данные с датчиков, АПЦ и тд, ПК передает управляющие сигналы - зажечь, потушить светодиод и тд. МК - stm32f746 dicovery, PHY - LAN8742. Предполагаю использовать CubeMX, соответственно HAL, т.к. stm32f7, IDE - STM32CubeIDE, в качестве стека LWIP без ОС (читал разные мнения относительно применения FreeRTOS при использовании LWIP, пока решил не прикручивать его сюда). Перечитал кучу информации, форумов, но ничего толком не нашел, что можно было бы использовать в качестве основы, т.к. с Ethernet сталкиваюсь впервые. МОжет кто сможет помочь информацией, как должна выглядеть архитектура такой программы, код, примеры? Вроде понимание теории есть, проблемы с реализацией.
  5. Доброго времени суток, уважаемые коллеги! Встала задача принимать пакеты из UART и передавать их в сеть. Запустил задачу-сервер на Socket API из примера ST, проверил, send - receive работает. Но когда дело дошло до реальной реализации, выяснилось, что функции accept и receive намертво блокируют задачу. Блокировку функцией accept решил вот такой нехитрой конструкцией: if (accept_state==0){ newconn = accept(sock, (struct sockaddr *)&remotehost, (socklen_t *)&size);//принимаем входящее подключение accept_state=1; } То есть, сервер принимает только одно входящее подключение. Общий вид главного цикла задачи-сервера: while (1) { if (accept_state==0){ newconn = accept(sock, (struct sockaddr *)&remotehost, (socklen_t *)&size);//принимаем входящее подключение accept_state=1; } event=osMessageGet(UART_RX_QHandle,10);//получаем указатель на структуру, которую нужно передать в сокет if (event.status==osEventMessage){ printf ("Queue received at %lu\r\n", osKernelSysTick()); pDataToSend=(UART_RX_Data*)event.value.v; HAL_GPIO_TogglePin(LD2_GPIO_Port,LD2_Pin); send(newconn, pDataToSend->payload, pDataToSend->size, 0);//отправляем данные в сокет HAL_UART_Receive_IT(&huart3,uartRXBuffer,UART3RX_BUF_SIZE);//включаем приём в UART printf ("Switch context at %lu\r\n", osKernelSysTick()); osThreadYield(); } } в общем, циклично, по приходу пакета в UART, в задачу-сервер через очередь передается указатель на данные, которые нужно отправить в сокет. Вот теперь возникли два вопроса. Первый - как корректно завершить соединение по запросу от клиента? Попробовал сделать так: nbytes=recv(newconn, rxBuf, BUFLEN, MSG_PEEK); if (nbytes<=0){ close(newconn); } Сразу перестала работать очередь, потому что функция recv наглухо блокирует задачу. Что подскажете? И второй вопрос. Как отслеживать физический дисконнект? Может, кто уже решал эту задачу?
  6. Коллеги, в случае если PPP соединение будет разорвано оператором сотовой связи, стек lwip уведомит об этом через вызов функции void status_cb(ppp_pcb *pcb, int err_code, void *ctx)?