Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2021-окт-22 22:52

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 50 сообщений ]  На страницу « 1 2 3 4
Автор Сообщение
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2017-мар-29 11:17 
Не в сети

Зарегистрирован: 2015-ноя-05 10:50
Сообщения: 21
Подскажите, кто использует данный стек. Где задается значение порта?


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2017-апр-19 20:00 
Не в сети

Зарегистрирован: 2012-апр-23 12:55
Сообщения: 47
ВНИМАНИЕ! Кто будет использовать данный пример, обратите внимание, что функция SendViaUDP(), которая работает с буфером контроллера Ethernet, не защищена от прерываний. А в прерывании от контроллера Ethernet тоже осуществляется доступ к буферу контроллера Ethernet. Сами понимаете, к чему это приведет рано или поздно. В примере функция SendViaUDP() вызывается из обработчика прерывания, а не в основном цикле программы, так что ничего страшного не происходит.
Для исправления ошибки в начале функции SendViaUDP() напишите:
uint32_t imr = ETHERNET->IMR;
ETHERNET->IMR = 0xFFFF; // маскируем прерывания от контроллера Ethernet.
а в конце:
ETHERNET->IMR = imr; // снова разрешаем прерывания


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2018-июн-27 14:34 
Не в сети

Зарегистрирован: 2014-ноя-05 07:19
Сообщения: 7
Сергей86 писал(а):
ВНИМАНИЕ! Кто будет использовать данный пример, обратите внимание, что функция SendViaUDP(), которая работает с буфером контроллера Ethernet, не защищена от прерываний. А в прерывании от контроллера Ethernet тоже осуществляется доступ к буферу контроллера Ethernet. Сами понимаете, к чему это приведет рано или поздно. В примере функция SendViaUDP() вызывается из обработчика прерывания, а не в основном цикле программы, так что ничего страшного не происходит.
Для исправления ошибки в начале функции SendViaUDP() напишите:
uint32_t imr = ETHERNET->IMR;
ETHERNET->IMR = 0xFFFF; // маскируем прерывания от контроллера Ethernet.
а в конце:
ETHERNET->IMR = imr; // снова разрешаем прерывания
НО

Все прерывания маскируемые. 1 в бите регистра маски прерываний (IMR) разрешает
соответствующее прерывание, 0 – запрещает соответствующее прерывание. (из даташита)


поэтому ETHERNET->IMR = 0x0000;


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2021-сен-18 18:47 
Не в сети

Зарегистрирован: 2021-сен-18 18:43
Сообщения: 2
Организация: Завод "Красное знамя"
actclekcz писал(а): *
Обошли эту проблему путем выбора мак адреса по-моему в функции OnEthernetReceive, в ней сохраняем мак в отдельную переменную и используем его для ответа, смогу выложить на следующей неделе.
Здравствуйте! Понимаю, что тема уже старая, но не остался ли у вас исправленный проект. Столкнулась с проблемой, что в первый момент работы по сети микрокотроллер не отвечает на arp запрос. Либо отвечает, но не так, как надо. Не вижу этого. В общем, надеюсь, что Вы мне поможете, отправив самую последнюю актуальную версию проекта


Вернуться к началу
 Заголовок сообщения: Re: Протокол UDP для 1986ВЕ1Т
СообщениеДобавлено: 2021-сен-18 21:21 
Не в сети

Зарегистрирован: 2021-сен-18 18:43
Сообщения: 2
Организация: Завод "Красное знамя"
noob писал(а): *
Ну, может быть Вы и правы, я же не спорю :) Просто хотелось бы понять, какой тип данных было лучше поставить, и почему. Был бы очень Вам признателен, если бы объяснили )
Надеюсь, что у Вас ещё сохранилась последняя версия проекта. Проблема с arp ответом. Помогает reset, но тоже не всегда. Пожалуйста, если Вам не трудно, отправьте актуальную версию проекта.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 50 сообщений ]  На страницу « 1 2 3 4

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей


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

Перейти: 

cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB