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

 
 
> stm32 LwIp, Как работать с фреймами Ethernet
TolikG
сообщение Jan 21 2014, 13:19
Сообщение #1


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

Группа: Свой
Сообщений: 86
Регистрация: 19-03-10
Пользователь №: 56 071



Использую STM32F4 + FreeRtos + LwIp.
Возникла задача принимать некоторые фреймы Ethernet, обрабатывать их не пропуская в стек LwIp, после обработки посилать в Ethernet. При этом не нарушить работоспособность стека LwIp.
Подскажите в каком месте следует перефатывать принятые фреймы, и как передать свой фрейм. Разобраться в исходниках ядра не смог - натыкаюсь на бесконечные переопределения, указатели, семафоры, очереди.
Вобщем не смог проследить путь от netconn_write() до места где данные уходят наружу, там мог бы и подменить буфер с фреймом.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MALLOY2
сообщение Jan 24 2014, 06:44
Сообщение #2


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



Цитата
Вобщем не смог проследить путь от netconn_write() до места где данные уходят наружу, там мог бы и подменить буфер с фреймом.


1. Вам нужно найти место где инициализируется структура
Код
  ethif->output     = etharp_output;
  ethif->linkoutput = EthernetOutput;   //EthernetOutput - Это и есть вывод фремом естесно у Вас она может по другому называться скажем так low_level_output
  ethif->input       = tcpip_input;         //tcpip_input - Сюда принятые фреймы засовываются если используется ОС и ethernet_input - если неиспользуется ОС
  ethif->mtu         = 1500;        
  ethif->flags        = NETIF_FLAG_BROADCAST|NETIF_FLAG_ETHARP; //broadcast capability


P.S. Странный подход у Вас вам нужны вреймы а вы их пытаетесь проследить от netconn_write(), не стой стороны копаете, копайте со стороны драйвера МАС.
Go to the top of the page
 
+Quote Post
TolikG
сообщение Jan 30 2014, 13:16
Сообщение #3


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

Группа: Свой
Сообщений: 86
Регистрация: 19-03-10
Пользователь №: 56 071



Цитата(MALLOY2 @ Jan 24 2014, 10:44) *
1. Вам нужно найти место где инициализируется структура
Код
  ethif->output     = etharp_output;
  ethif->linkoutput = EthernetOutput;   //EthernetOutput - Это и есть вывод фремом естесно у Вас она может по другому называться скажем так low_level_output
  ethif->input       = tcpip_input;         //tcpip_input - Сюда принятые фреймы засовываются если используется ОС и ethernet_input - если неиспользуется ОС
  ethif->mtu         = 1500;        
  ethif->flags        = NETIF_FLAG_BROADCAST|NETIF_FLAG_ETHARP; //broadcast capability


P.S. Странный подход у Вас вам нужны вреймы а вы их пытаетесь проследить от netconn_write(), не стой стороны копаете, копайте со стороны драйвера МАС.

Устройство должно выполнять следующие задачи:
- WEB - cтраничка для оперативного управления
- FTP-сервер для удаленного обновления
- маршрутизация (пересылка некоторых фреймов в необработанном виде) в другие (не Eternet!) интерфейсы (UART, SPI...) и обратно из других интерфейсов в Eternet.

Покопался в исходниках LwIp со стороны обработчика прерываний - вышел на функции low_level_input(), low_level_output(). Думаю получится.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jan 30 2014, 13:34
Сообщение #4


Гуру
******

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



Цитата(TolikG @ Jan 30 2014, 17:16) *
- маршрутизация (пересылка некоторых фреймов в необработанном виде) в другие (не Eternet!) интерфейсы (UART, SPI...) и обратно из других интерфейсов в Eternet.

Пересылка голых кадров Ethernet? Зачем? Через UDP было бы удобнее.
Go to the top of the page
 
+Quote Post
TolikG
сообщение Jan 31 2014, 05:49
Сообщение #5


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

Группа: Свой
Сообщений: 86
Регистрация: 19-03-10
Пользователь №: 56 071



Цитата(scifi @ Jan 30 2014, 17:34) *
Пересылка голых кадров Ethernet? Зачем? Через UDP было бы удобнее.

Чтобы не зависеть от протокола - отбор кадров по МАС адресу источника.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- TolikG   stm32 LwIp   Jan 21 2014, 13:19
- - Log_in   Вот пример от терраэлектроники как они реализуют п...   Jan 22 2014, 06:02
- - scifi   Цитата(TolikG @ Jan 21 2014, 17:19) Подск...   Jan 22 2014, 06:40
|- - TolikG   Цитата(scifi @ Jan 22 2014, 10:40) Если п...   Jan 23 2014, 06:14
||- - scifi   Цитата(TolikG @ Jan 23 2014, 10:14) Я так...   Jan 23 2014, 06:47
||- - Golikov A.   Цитата(TolikG @ Jan 23 2014, 10:14) В lwI...   Jan 23 2014, 08:10
||- - scifi   Цитата(Golikov A. @ Jan 23 2014, 12:10) Д...   Jan 23 2014, 10:06
||- - Golikov A.   Цитата(scifi @ Jan 23 2014, 14:06) При чё...   Jan 23 2014, 10:20
||- - kolobok0   Цитата(Golikov A. @ Jan 23 2014, 14:20) ....   Jan 24 2014, 10:08
|- - kolobok0   Цитата(scifi @ Jan 22 2014, 10:40) ...раз...   Jan 23 2014, 07:31
|- - scifi   Цитата(TolikG @ Jan 31 2014, 09:49) Чтобы...   Jan 31 2014, 06:03
|- - TolikG   Цитата(scifi @ Jan 31 2014, 10:03) Ни кап...   Feb 3 2014, 06:19
- - sergey sva   Разбираюсь с исходниками lwip, настроек очень мног...   Jan 27 2014, 12:45
- - MALLOY2   Цитатакак бы роу - в контексте стэка, имеется ввид...   Jan 28 2014, 06:03
- - Golikov A.   ну да. Вам и контрольную сумму посчитают, и мак ад...   Jan 30 2014, 16:19
- - Golikov A.   и не понятно откуда возьмутся независящие от прото...   Jan 31 2014, 11:07
|- - kolobok0   Цитата(Golikov A. @ Jan 31 2014, 15:07) ....   Jan 31 2014, 20:00
|- - scifi   Цитата(kolobok0 @ Feb 1 2014, 00:00) это ...   Feb 1 2014, 10:27
|- - kolobok0   Цитата(scifi @ Feb 1 2014, 14:27) Между п...   Feb 2 2014, 10:34
- - Golikov A.   какой бы протокол ни был всегда можно его посылку ...   Feb 3 2014, 08:23


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:33
Рейтинг@Mail.ru


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