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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Нет прерываний от модуля Ethernet.
Oleg_IT
сообщение Oct 8 2013, 08:55
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Продолжение работы, которая обсуждалась здесь
Демо плата SK-MLPC2478, приложение EMAC. Отдельный вход Ethernet для этой платы. Формирую ARP запрос, по WireShark вижу, что сообщение в PC приходит и формируется ответ, но прерывания в ARM-е, по приходу данных, нет, прерывания возникают только по отправке данных, данные отправлены, буфер пуст. Где, что посмотреть, проверить почему нет прерываний?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Oct 8 2013, 09:14
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



мак адрес в емаке есть? задали? правильный?
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Oct 8 2013, 11:14
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(Golikov A. @ Oct 8 2013, 13:14) *
мак адрес в емаке есть? задали? правильный?

А что значит правильный? Он у меня из примера остался.
В приложении скриншоты с WireShark
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
сарматъ
сообщение Oct 8 2013, 13:12
Сообщение #4


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

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



а айпи адреса правильно обрабатываются?маска сети какая?

Сообщение отредактировал сарматъ - Oct 8 2013, 13:12
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Oct 9 2013, 05:09
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Маска 255.255.0.0. Попробывал другие варианты прерываний нет.
Go to the top of the page
 
+Quote Post
сарматъ
сообщение Oct 9 2013, 05:29
Сообщение #6


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

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



для начала можно попробывать разрешить прием всех пакетов не зависимо от мак адреса и посмотреть вообще что то приходит или нет
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Oct 9 2013, 06:43
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(сарматъ @ Oct 9 2013, 09:29) *
для начала можно попробывать разрешить прием всех пакетов не зависимо от мак адреса и посмотреть вообще что то приходит или нет

А я не запрещал. Где разрешить/запретить прописывается?
Я сейчас без библиотеки работаю, всё сам делаю, и пакеты генерю и на выход их посылаю.
Go to the top of the page
 
+Quote Post
сарматъ
сообщение Oct 9 2013, 07:05
Сообщение #8


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

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



для каждого процессора периферия настраивается по своему думаю в мануале по процессору должен быть описан порядок работы с мак-контроллером в частности правила фильтрации пакетов

ну и конечно сами прерывания должны быть разрешены явно а не просто "не запрещены"

еще такой момент вы подсоединяете плату чрез маршрутизатор? хорошо было бы убедиться что маршрутизатор отправляет пакеты на соотв порт

Сообщение отредактировал сарматъ - Oct 9 2013, 07:10
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Oct 9 2013, 07:53
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(сарматъ @ Oct 9 2013, 11:05) *
для каждого процессора периферия настраивается по своему думаю в мануале по процессору должен быть описан порядок работы с мак-контроллером в частности правила фильтрации пакетов

ну и конечно сами прерывания должны быть разрешены явно а не просто "не запрещены"

еще такой момент вы подсоединяете плату чрез маршрутизатор? хорошо было бы убедиться что маршрутизатор отправляет пакеты на соотв порт

Нет, соединение точка-точка. Провода целые, не рваные, проверял.
По первым двум советам проверю.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Oct 9 2013, 11:40
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Проблема банальна. При формировании запроса у меня один порядок байтов в MAC адресе был, а при инициализации MAC в PHY обратный.

Тогда другой вопрос. В PC одно направление байтов в SUN и в ARM другое. Как определяется из какой системы пришёл пакет?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Oct 9 2013, 12:12
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(Oleg_IT @ Oct 9 2013, 15:40) *
Проблема банальна. При формировании запроса у меня один порядок байтов в MAC адресе был, а при инициализации MAC в PHY обратный.

Тогда другой вопрос. В PC одно направление байтов в SUN и в ARM другое. Как определяется из какой системы пришёл пакет?


езернет весь BIG Endian, что РС, что Юникс, что Макинтош...
а ARMы разные бывают, обычно Little Endian
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Oct 11 2013, 04:14
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



При компиляции можно определить какая система BIG или Little Endian?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Oct 11 2013, 07:47
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



скорее всего на этапе создания проекта. У некоторых сред и армов можно выбрать в свойствах проекта. В "софтварных" плисовых процессорах можно выбрать на уровне создания проца.

Только я бы не стал менять Little Endian процессор на Big, ибо для процессора удобнее и быстрее быть Little
Go to the top of the page
 
+Quote Post
сарматъ
сообщение Oct 11 2013, 07:48
Сообщение #14


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

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



Цитата(Golikov A. @ Oct 11 2013, 11:47) *
для процессора удобнее и быстрее быть Little

а почему так?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Oct 11 2013, 09:07
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



потому для чего этот формат придумали

к примеру
Код
logn int BigData = 128.
void *p = (void *)&BigData;


это все сработает правильно
Код
char ch_data = *p;
short int m_data = *p;
int mm_data = *p;
long int l_data = *p;


потому что в адресах памяти самый младший байт лежим первым, и взяв его в чаровский указатель вы получите верное 8 битное число.
Запихав в 16 бит, вы опять же получите верное 16 битное число и так далее...

То есть такой формат позволяет легко преобразовывать длинный тип в короткие, и обратно при некоторой сноровке

Код
short int Data = 232443;
void *p = (void *)&Data;

long int b_data = *p;
b_data &= 0x0000FFFF;


в формате Big Endian младшая часть числа всегда лежит на разном расстоянии от начала в зависимости от размерности числа, и чтобы получить правильное число из памяти надо знать и учитывать размерность числа записанного и приемника, это несколько осложняет процесс....

Go to the top of the page
 
+Quote Post

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

 


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


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