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

 
 
 
Reply to this topicStart new topic
> stm32F4 и ethernet
Fobes
сообщение Jan 19 2016, 19:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 19-01-16
Пользователь №: 90 105



Всем доброго времени суток. Уже совсем измучился... есть stm32F4 discovery и DP83848, подключил. Зашел в stm32 cube, настроил ethernet на RMII, подцепил LwIp. Залил код, запустил, DHCP запустилось, в подключения роутера появилось новое устройство с маком, который в cube задавался... Но теперь главная проблема. Вроде бы банальная задача, найти место где начинается обработка принятого кадра, в итоге я запутался... нашел функции low_level_output и low_level_input, но отладчик в них никогда не попадает, нашел буферы DMA Tx_Buff и Rx_Buff, вывел их в watch(keil), а они вроде как статичны, как-будто дма ждет что я следующую передачу разрешу.
Главная задача, научиться принимать и отправлять свои пакеты(в LwIp таковых нет) как это сделать ? куда копать ? По сути ведь можно обойтись стандартным драйвером, без LwIp, ведь мне не нужны TCP/IP, UDP и т.д. примеров никаких не нашел, только то что было до HAL sad.gif
И еще вопрос. В stm32F4 есть аппаратная поддержка PTP, но в HAL драйвере я нашел лишь то что она не поддерживается. Реализацию самому писать чтоли придется ? Но все сводится опять же к приему и отправке своих пакетов sad.gif
Направьте на верный путь, что почитать ? как настроить нужно, что использовать ? или примеры может какие >_<
Go to the top of the page
 
+Quote Post
alag57
сообщение Jan 20 2016, 05:00
Сообщение #2


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

Группа: Участник
Сообщений: 130
Регистрация: 26-06-06
Из: Березовский
Пользователь №: 18 355



Цитата(Fobes @ Jan 20 2016, 00:51) *
ведь мне не нужны TCP/IP, UDP и т.д.

А кто принимать будет ваши пакеты? А роутер пропустит ваши не ТСР и не UDP пакеты?
А вообще описание работы с lwip есть в папке Lwip/doc. Также примеры есть в пакете Lwip-contrib.
Go to the top of the page
 
+Quote Post
pitt
сообщение Jan 20 2016, 13:18
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Решаю ту же задачу, но написал свой HAL, никаких кубов и кривых библиотек - вся кривизна собственная см. тут и известно что, где и кого винить.
Роутеру все до лампочки, пропускает 802.3 без проблем. Отлаживать и принимать можно с помощью wireshark и packEth.

Сообщение отредактировал pitt - Jan 20 2016, 13:19


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
Fobes
сообщение Jan 20 2016, 18:49
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 19-01-16
Пользователь №: 90 105



Цитата(pitt @ Jan 20 2016, 14:18) *
Решаю ту же задачу, но написал свой HAL, никаких кубов и кривых библиотек - вся кривизна собственная см. тут и известно что, где и кого винить.
Роутеру все до лампочки, пропускает 802.3 без проблем. Отлаживать и принимать можно с помощью wireshark и packEth.


с вами можно как-то связаться, переговорить в реал тайме ? Все никак не решается проблема...
Go to the top of the page
 
+Quote Post
pitt
сообщение Jan 21 2016, 01:04
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(Fobes @ Jan 20 2016, 13:49) *
с вами можно как-то связаться, переговорить в реал тайме ? Все никак не решается проблема...

Дык и у меня тоже. Сегодня гонял тестовую программу: принимаю фрейм и тут же переправляю назад. Никакого переключения контекста, ничего не делаю. Через несколько секунд TxDMA умирает как я и описал. Несколько сотем фреймов пропутешествовало как и требовалось. Просто отсылаю фрейм: подыхает wireshark на PC с линухом...
Т.е. Отдельно и прием и передача работают, а вот вместе... Пахнет проблемами в силиконе.



--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
alag57
сообщение Jan 21 2016, 05:36
Сообщение #6


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

Группа: Участник
Сообщений: 130
Регистрация: 26-06-06
Из: Березовский
Пользователь №: 18 355



Цитата(Fobes @ Jan 20 2016, 00:51) *
нашел функции low_level_output и low_level_input
Направьте на верный путь

Функция low_level_output является конечной точкой, где заканчивает работать
Lwip и начинает драйвер. Функция low_level_input наоборот, конечная точка
работы драйвера и начала работы Lwip.
Возьмите любой пример с Lwip, т.е с ТСР или UDP. Запустите и в отладке зайдете
в эти функции.
Go to the top of the page
 
+Quote Post
Fobes
сообщение Jan 21 2016, 18:33
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 19-01-16
Пользователь №: 90 105



Цитата(alag57 @ Jan 21 2016, 05:36) *
Функция low_level_output является конечной точкой, где заканчивает работать
Lwip и начинает драйвер. Функция low_level_input наоборот, конечная точка
работы драйвера и начала работы Lwip.
Возьмите любой пример с Lwip, т.е с ТСР или UDP. Запустите и в отладке зайдете
в эти функции.


Уже так и сделал, но все равно спасибо что откликнулись))) Собственно с отправкой разобрался и приемом. Теперь другой вопрос.

CODE

struct ethernet_header
{
uint64_t dstAdr:48;
uint64_t srcAdr:48;
uint16_t type;
} __attribute__((packed));

struct ethernet_header eth_hdr;

eth_hdr.dstAdr = 0x010CCD040001;
eth_hdr.srcAdr = 0x0001010000FF;
eth_hdr.type = 0x8100;



Собственно при отправке все поля структуры выворачиваются. нашел lwip_htons

Код
eth_hdr.type     =    lwip_htons (0x8100);


При таком раскладе поле type просто не отправляется.

Код
eth_hdr.type     =    lwip_htons (0x8101);


Но если убрать нулевой байт, то поле выворачивается и отправляется. Это такая оптимизация ? Не подскажете как бороться ? Извиняюсь сразу за возможно глупые вопросы, только начал разбираться с контроллерами)

Сообщение отредактировал IgorKossak - Jan 22 2016, 12:37
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!
Go to the top of the page
 
+Quote Post

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

 


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


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