|
LwIP TCP-сервер и UDP-клиент на одном MCU+LAN8720A? |
|
|
|
Oct 21 2016, 06:10
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Всем привет!
Проект без операционной системы с LwIP-стеком (low-level "core" / "callback" or "raw" API) на одном микроконтроллере (основная программа + TCP-сервер (Modbus TCP)), работает.
Меня интересует, можно ли в этот проект добавить еще и UDP-клиент (SNTP-клиент) и не будет ли TCP-сервер конфликтовать с UDP-клиентом? По отдельности TCP-сервер работает, UDP-клиент работает, а как все вместе совместить (в проект c TCP-сервером добавить UDP-клиент)? Я еще с такой задачей не сталкивался, поэтому сильно не ругайте.
Если что, то в качестве PHY используется LAN8720A, разъем RJ45 один, проект на STM32, но микроконтроллер пока не важен, меня интересует сама возможность совмещения серера и клиента.
|
|
|
|
|
 |
Ответов
|
Oct 22 2016, 08:33
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(Pridnya @ Oct 21 2016, 09:10)  ...совмещения серера и клиента. логическое дробление в данном случае не накладывает никаких ограничений на реализацию. в Ваших вопросах сквозит просьба увидеть готовый пример. хочется процитировать один мультик: - "Вы и есть за меня будете?!" - "Ага!" удачи Вам (круглый)
|
|
|
|
|
Oct 24 2016, 05:25
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(kolobok0 @ Oct 22 2016, 11:33)  логическое дробление в данном случае не накладывает никаких ограничений на реализацию. в Ваших вопросах сквозит просьба увидеть готовый пример. Вы похоже не представляете как выглядит готовый пример в моем случае. У меня основная программа и ModbusTCP сервер уже занимают около 130 килобайт. Мне нужно добавить в программу UDP-клиента (SNTP-клиента). Я ожидал увидеть что-то типа такого. И пояснение "расположите код там-то, не забудьте настроить это". Цитата // UDP Server Initialisierung: upcb = udp_new(); if (upcb) { udp_bind(upcb, IP_ADDR_ANY, UDP_SERVER_PORT); udp_recv(upcb, udp_server_receive_callback, NULL); }
// TCP Server Initialisierung: tpcb = tcp_new(); if (tpcb != NULL) { tcp_bind(tpcb, IP_ADDR_ANY, TCP_SERVER_PORT); tpcb = tcp_listen(tpcb); tcp_accept(tpcb, tcp_callback_accept); } Цитата(kolobok0 @ Oct 22 2016, 11:33)  хочется процитировать один мультик:
- "Вы и есть за меня будете?!" - "Ага!" [CENSORED]
Сообщение отредактировал IgorKossak - Oct 24 2016, 10:56
Причина редактирования: переход на личности, бан на неделю
|
|
|
|
|
Oct 24 2016, 07:23
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(HardEgor @ Oct 24 2016, 09:31)  Да хоть 500 кБ. Колобок в чем-то прав - вы просто не понимаете как работает TCP/UDP/IP и хотите готовый рецепт. Да там под сотню настроек и все надо не забыть. Возьмите готовые примеры и посмотрите как сделано в нём, совместить дело пяти минут. Или вот на другом процессоре совмещенный. Упоминание об объеме проекта с TCP-стеком (основная программа + ModbusTCP), который у меня работает, означало, что мне не нужен чей-то пример, как студенту для кусовика. Я тоже могу написать, что вы не понимаете, как работает TCP/UDP/IP, LwIP-стек на STM32F407 без операционной системы т.к. советуте мне почитать AN3966 Application note LwIP TCP/IP stack demonstration for STM32F4x7 microcontrollers, которую я уже много раз перечитал и из которой мне уже взять нечего. В этом документе описаны общие сведения о вариантах использования стека (три вида API) и о примерах (9 отдельных примеров). Все примеры по даны для конкретного использования, т.е. там не как в стеке Microchip, когда стек конфигурируется утилитой и мы получае сразу несколько вариантов использования. По отдельности я пробовал запускать все эти примеры, но мне нужно то, что указано в теме (совместить или добавить к TCP-серверу UDP-клиент). В примерах от ST для каждого варианта использования стека (9 примеров) есть свой проект (отдельный) , т.е. там не все варианты сразу, которые можно директивами условной компиляции включить/выключить из кода ( или той сотней настроек, про которую вы упоминаете). Цитата This demonstration package contains nine applications running on top of the LwIP stack: • Applications running in standalone mode (without an RTOS): –A Web server –A TFTP server –A TCP echo client application –A TCP echo server application –A UDP echo client application –A UDP echo server application • Applications running with the FreeRTOS operating system: –A Web server based on netconn API –A Web server based on socket API –A TCP/UDP echo server application based on netconn API Кроме того вы упоминаете о сотне настроек, а из этой сотни менять мало что нужно. Это еще один аргумент в мою пользу.
Сообщение отредактировал Pridnya - Oct 24 2016, 07:35
|
|
|
|
|
Oct 24 2016, 07:56
|
Гуру
     
Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925

|
Цитата(Pridnya @ Oct 24 2016, 14:23)  Упоминание об объеме проекта с TCP-стеком (основная программа + ModbusTCP), который у меня работает, означало, что мне не нужен чей-то пример, как студенту для кусовика. Мда...., если бы вы знали какие объемы пишут студенты, вы бы не приводили такие аргументы. Объем о качестве специалиста ничего не говорит. У меня программа в 160 кБ, хотя я написал всего 2кБ и что? Цитата По отдельности я пробовал запускать все эти примеры, но мне нужно то, что указано в теме (совместить или добавить к TCP-серверу UDP-клиент). т.е. второй пример, где всё совмещено, вы даже не открывали? Ну тогда ничем не могу вам помочь. Цитата Кроме того вы упоминаете о сотне настроек, а из этой сотни менять мало что нужно. Это еще один аргумент в мою пользу. В какую пользу? Это вам надо разобраться, а не мне....
|
|
|
|
|
Oct 24 2016, 09:36
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(HardEgor @ Oct 24 2016, 10:56)  т.е. второй пример, где всё совмещено, вы даже не открывали? Ну тогда ничем не могу вам помочь. Вот спасибо! Этого примера (IAP over Ethernet) не было на CD-диске к моей отладочной плате (DevKit407). Пример с сайта ST вообще для другой отладочной платы, на которой установлен PHY DP83848, она подключена по MII-интерфейсу, а у меня только RMII (LAN8720A). Но все равно спасибо!  В примере TFTP работает поверх UDP, а HTTP поверх TCP. Есть что посмотреть.
|
|
|
|
Сообщений в этой теме
Pridnya LwIP TCP-сервер и UDP-клиент на одном MCU+LAN8720A? Oct 21 2016, 06:10 scifi Цитата(Pridnya @ Oct 21 2016, 09:10) Меня... Oct 21 2016, 07:14 Pridnya Цитата(scifi @ Oct 21 2016, 10:14) Не пре... Oct 21 2016, 08:01 Pridnya Цитата(scifi @ Oct 21 2016, 10:14) Не пре... Oct 21 2016, 13:23     Pridnya Цитата(HardEgor @ Oct 24 2016, 10:56) т.е... Oct 24 2016, 08:32      mantech Цитата(Pridnya @ Oct 24 2016, 11:32) Серг... Oct 25 2016, 12:16       Pridnya Цитата(mantech @ Oct 25 2016, 15:16) Сорр... Oct 31 2016, 11:01 scifi Lwip - это такая штука, про которую нужно знать, к... Oct 24 2016, 07:34 Pridnya Цитата(scifi @ Oct 24 2016, 10:34) Lwip -... Oct 24 2016, 07:46  Сергей Борщ QUOTE (Pridnya @ Oct 24 2016, 11:32) Я за... Oct 24 2016, 10:00 kolobok0 Цитата(Pridnya @ Oct 21 2016, 09:10) ...м... Oct 25 2016, 00:03 Pridnya Цитата(kolobok0 @ Oct 25 2016, 03:03) 1) ... Nov 3 2016, 07:59  Pridnya Оказалось все проще простого: достаточно добавить ... Nov 3 2016, 12:10 krounis Цитата(Pridnya @ Oct 21 2016, 13:10) Всем... Jan 25 2018, 11:03
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|