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

 
 
> Zynq - ошибка при передаче пакета Ethernet, Не обновляются данные в передающем буфере
Nivovod
сообщение Feb 15 2016, 15:06
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 16-06-10
Пользователь №: 57 971



Есть массив в который я пишу данные для передачи, добавляю в его начало TCP, IP заголовки, Ethernet фреймы. Затем ссылку на этот массив указываю в дескрипторе и включаю данный дескриптор на передачу. И пакет нормально уходит в сеть. Но изредка (с периодом от 1 секунды до 3-х минут) в сеть уходит пакет, содержащий первые 68 байт предыдущего пакета, а остальную часть пакета текущую. А так как в этих первых 68 байтах содержатся все заголовки TCP, IP, то TCP сессия нарушается. Не понимаю почему так происходит. Специально проверяю содержимое массива перед командой запуска на передачу. Все данные в массиве правильные! И почему все время портятся именно первые и именно 68 байт?
Может кто сталкивался? Может у кого есть безошибочный код приема/передачи по ethernet для zynq?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Nivovod
сообщение Feb 17 2016, 16:58
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 16-06-10
Пользователь №: 57 971



Проблема решилась путём запрета прерывания при приеме ethernet пакета во время формирования пакета для передачи. Не представляю как прерывание при приеме пакета, которое просто увеличивает счетчик событий, может влиять на содержимое передающего буфера, тем более на его первые 68 байт. Но факт на лицо. Всем спасибо за помощь и участие.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:26
Рейтинг@Mail.ru


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