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

 
 
> Нет прерываний от модуля 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
 
Start new topic
Ответов
Golikov A.
сообщение Oct 20 2013, 11:40
Сообщение #2


Гуру
******

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



ну как минимум вам мешают 2 вещи
1. это htonl/ntohl
2. это что нет стандартного типа данных 3 или 13 бит. А все остальные битовые поля компиляторо-зависимые. Проблем наживет, памяти не выиграете. Поставив поля 3 и 13 бит скорее всего будет 2 поля 8 + 16 бит, с вырезкой не пойми какой, ИМХО больше памяти пойдет чем на одно 16 битное поле.

Кстати как раз все кручение с биг и литл идет именно в заголовках. Так как в данных они лежат как послали. Компьютеры тоже Litle Endian, так что данные трогать не надо.

У вас есть некоторое непонимание происходящего, мне кажется. Если вы кладете 8 бит в 5 ячейку памяти, она так по езернету и пойдет, эти 8 бит так и останутся в 5 ячейе, никто их не переложит. Положите 16 бит, они так и будут там лежать, никто их не возьмет и не повернет.

Проблемы связаны с тем что если у вас есть 16 битное число 0xAABB в нулевой ячейке памяти, то в памяти оно ляжет в нулевую 0xBB, а в первую 0xAA, а в езернете наоборот. Соответственно когда по езернету к вам идет число 0xAABB, оно лежит в нулевой ячейке 0xAA, а в первой 0xBB, а процессор забирая его из памяти перевернет данные и вы получите 0xBBAA, потому их и надо свапануть, но это верно только если вы данные в память кладете и берете из нее словами.

Но никто вам не мешает класть данные руками по байтам, берем например число int Temp = 0xAABB. положите в 0 ячейку ((Temp >> 8)&0xFF),а в первую (Temp & 0xFF), и всех делов, сработает в любой системе хоть биг хоть литл.
И обратно
char *Data;
Temp = ((int)Data[0]<<8)|Data[1]); Опять же верно интерпретирует пришедшие по езернет данные в любой системе.



Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Oleg_IT   Нет прерываний от модуля Ethernet.   Oct 8 2013, 08:55
- - Golikov A.   мак адрес в емаке есть? задали? правильный?   Oct 8 2013, 09:14
|- - Oleg_IT   Цитата(Golikov A. @ Oct 8 2013, 13:14) ма...   Oct 8 2013, 11:14
- - сарматъ   а айпи адреса правильно обрабатываются?маска сети ...   Oct 8 2013, 13:12
- - Oleg_IT   Маска 255.255.0.0. Попробывал другие варианты прер...   Oct 9 2013, 05:09
- - сарматъ   для начала можно попробывать разрешить прием всех ...   Oct 9 2013, 05:29
|- - Oleg_IT   Цитата(сарматъ @ Oct 9 2013, 09:29) для н...   Oct 9 2013, 06:43
- - сарматъ   для каждого процессора периферия настраивается по ...   Oct 9 2013, 07:05
|- - Oleg_IT   Цитата(сарматъ @ Oct 9 2013, 11:05) для к...   Oct 9 2013, 07:53
- - Oleg_IT   Проблема банальна. При формировании запроса у меня...   Oct 9 2013, 11:40
|- - Golikov A.   Цитата(Oleg_IT @ Oct 9 2013, 15:40) Пробл...   Oct 9 2013, 12:12
- - Oleg_IT   При компиляции можно определить какая система BIG ...   Oct 11 2013, 04:14
- - Golikov A.   скорее всего на этапе создания проекта. У некоторы...   Oct 11 2013, 07:47
|- - сарматъ   Цитата(Golikov A. @ Oct 11 2013, 11:47) д...   Oct 11 2013, 07:48
- - Golikov A.   потому для чего этот формат придумали к примеру К...   Oct 11 2013, 09:07
- - сарматъ   понял спасибо   Oct 11 2013, 09:18
- - Oleg_IT   Потому и нужны какие-то дефайны, по которым опреде...   Oct 11 2013, 09:25
|- - Golikov A.   Цитата(Oleg_IT @ Oct 11 2013, 13:25) Пото...   Oct 11 2013, 09:58
|- - Oleg_IT   Цитата(Golikov A. @ Oct 11 2013, 13:58) н...   Oct 11 2013, 10:29
|- - alx2   Цитата(Oleg_IT @ Oct 11 2013, 15:29) Зако...   Oct 12 2013, 11:05
|- - Oleg_IT   Цитата(alx2 @ Oct 12 2013, 15:05) Располо...   Oct 14 2013, 05:58
- - Golikov A.   меня немного беспокоит слово заголовка в котором л...   Oct 11 2013, 10:53
- - Oleg_IT   По количеству бит там всё правильно 4 длина+6 пуст...   Oct 11 2013, 11:11
- - Golikov A.   union { struct { uint16_t FIN ...   Oct 11 2013, 11:42
- - Golikov A.   ИМХО лучше сделать поле 16 бит, и дефайны с флага...   Oct 14 2013, 18:43
|- - Oleg_IT   Цитата(Golikov A. @ Oct 14 2013, 22:43) И...   Oct 15 2013, 04:41
- - Golikov A.   да тут вроде как мы все ходим вокруг одного и того...   Oct 15 2013, 06:24
- - Oleg_IT   Я вас сходу по флажкам не понял. Переделал, работа...   Oct 15 2013, 08:32
|- - Oleg_IT   Цитата(Oleg_IT @ Oct 15 2013, 12:32) Я ва...   Oct 16 2013, 11:12
|- - alx2   Цитата(Oleg_IT @ Oct 16 2013, 16:12) Пото...   Oct 17 2013, 07:25
|- - Oleg_IT   Цитата(alx2 @ Oct 17 2013, 11:25) Что так...   Oct 17 2013, 08:18
|- - Golikov A.   Цитата(Oleg_IT @ Oct 17 2013, 12:18) Пров...   Oct 17 2013, 17:42
- - Golikov A.   во всех системах Big Enadian не нужен во всех сист...   Oct 15 2013, 11:16
- - Oleg_IT   Самому определять это понятно, а в компиляторе так...   Oct 15 2013, 12:33
|- - mdmitry   Цитата(Oleg_IT @ Oct 15 2013, 16:33) Само...   Oct 15 2013, 13:29
|- - DmitryM   Цитата(Oleg_IT @ Oct 15 2013, 16:33) Само...   Oct 15 2013, 13:36
- - Oleg_IT   Спасибо   Oct 15 2013, 16:26
- - Dron_Gus   http://www.opennet.ru/man.shtml?topic=hton...3...   Oct 16 2013, 13:57
|- - Oleg_IT   Цитата(Dron_Gus @ Oct 16 2013, 17:57) htt...   Oct 16 2013, 18:13
- - Oleg_IT   Так ни битовые поля, ни работа с флагами задачу не...   Oct 18 2013, 05:20
|- - alx2   Цитата(Oleg_IT @ Oct 18 2013, 10:20) Так ...   Oct 18 2013, 11:40
- - Golikov A.   что - то я видать не понимаю. Я утверждаю что во ...   Oct 18 2013, 06:34
- - Oleg_IT   По факту получается не так, и порядок байт и поряд...   Oct 18 2013, 06:56
- - Golikov A.   да. порядок байт в интернете биг ендиан. порядок ...   Oct 18 2013, 10:18
- - Oleg_IT   Кажется начинаю понимать обстановку. Без дефайнов ...   Oct 18 2013, 12:42
- - Golikov A.   нет там такого поля 13 бит есть поле 16 бит, и 3 б...   Oct 18 2013, 20:50
|- - alx2   Цитата(Golikov A. @ Oct 19 2013, 01:50) а...   Oct 19 2013, 12:55
|- - Oleg_IT   Цитата(Golikov A. @ Oct 19 2013, 00:50) н...   Oct 19 2013, 18:22
|- - Golikov A.   Цитата(Oleg_IT @ Oct 19 2013, 22:22) Не п...   Oct 20 2013, 05:06
|- - Oleg_IT   Цитата(Golikov A. @ Oct 20 2013, 09:06) Д...   Oct 20 2013, 09:14


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

 


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


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