Миландр

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

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2 Все
Автор Сообщение
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2016-сен-05 14:56 
Не в сети
Аватара пользователя

Зарегистрирован: 2014-дек-09 15:26
Сообщения: 65
R Max Спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2018-дек-18 15:44 
Не в сети

Зарегистрирован: 2018-сен-14 15:48
Сообщения: 35
R Max писал(а):
....


Думаю, имеет смысл поправить функцию ethernetif_check_link, иначе будет некорректно определяться наличие подключения.
void ethernetif_check_link (struct netif *netif)
{
struct ethernetif *eth = netif->state;
static volatile bool link;
static volatile uint8_t link_flag;

if (!eth->phy_ok)
return;

if (MDR_ETHERNET1->PHY_Status & ETH_PHY_STATUS_LED1)
{
link = false;
link_flag = 0;
}
else
{
link = true;
link_flag = NETIF_FLAG_LINK_UP;
}


if ((link != eth->link) || (link_flag != (netif->flags & NETIF_FLAG_LINK_UP)))
{
eth->link = link;

if (eth->link == true)
{
EthOn();
netif_set_link_up(netif);
}
else
{
EthOff();
netif_set_link_down(netif);
}
}
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2018-дек-18 16:45 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1284
Откуда: Тула
Dmitry_S писал(а):
void ethernetif_check_link (struct netif *netif)
{
struct ethernetif *eth = netif->state;
static volatile bool link;
static volatile uint8_t link_flag;
...
}

volatile там в обоих случаях лишний, да и link_flag логичнее сделать типа bool или типа int/unsigned/uint32_t.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2018-дек-19 03:30 
Не в сети

Зарегистрирован: 2018-сен-14 15:48
Сообщения: 35
prostoRoman писал(а):
Dmitry_S писал(а):
void ethernetif_check_link (struct netif *netif)
{
struct ethernetif *eth = netif->state;
static volatile bool link;
static volatile uint8_t link_flag;
...
}

volatile там в обоих случаях лишний, да и link_flag логичнее сделать типа bool или типа int/unsigned/uint32_t.


Volatile лишний, издержки копипасты.
Зачем, если он сравнивается с netif->flags, который тоже uint8_t?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2018-дек-19 09:10 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1284
Откуда: Тула
Dmitry_S писал(а):
Зачем, если он сравнивается с netif->flags, который тоже uint8_t?

В этом Вы конечно правы и это скорее вопрос "чувства прекрасного", но я стараюсь использовать для флагов переменные, шириной в слово целевой платформы, т.е. int/unsigned. А ещё, иногда типы (и константы, но реже) меняются, и типа минимального размера в последующем может не хватить. Тут совсем круто было бы объявить некий typedef uint_least8_t flag_t; или, того круче
Код:
typedef union {
flag_t flags;
struct {
  flag_t flag1:n;
  flag_t flag2:m;
...
}; } netif_flags_t;

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2019-мар-04 16:48 
Не в сети

Зарегистрирован: 2017-дек-13 07:58
Сообщения: 4
R_Max, спасибо за порт LwIP.
Меня мучает вопрос, почему для работы LwIP используется TIMER4, а не SysTick? Оба же могут делать тики по 1мс, но Timer4 жалко.
Алсо, есть более свежие адаптации LwIP на этом форуме? Гугл эту ссылку выдает первой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2019-мар-04 17:02 
Не в сети

Зарегистрирован: 2009-сен-21 12:39
Сообщения: 503
Цитата:
Меня мучает вопрос, почему для работы LwIP используется TIMER4, а не SysTick? Оба же могут делать тики по 1мс, но Timer4 жалко.

1986BE1 Series Errata Notice: "0011 Ошибка системного таймера"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2019-мар-04 19:59 
Не в сети

Зарегистрирован: 2018-фев-11 17:46
Сообщения: 2
ЧумА писал(а):
Цитата:
Меня мучает вопрос, почему для работы LwIP используется TIMER4, а не SysTick? Оба же могут делать тики по 1мс, но Timer4 жалко.

1986BE1 Series Errata Notice: "0011 Ошибка системного таймера"


таки он от "Ядра",ядро с ошибкой армовцы продали. :shock:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2019-апр-09 09:35 
Не в сети

Зарегистрирован: 2019-мар-25 21:12
Сообщения: 12
Добрый день!

Скажите пожалуйста если ли пример реализации стека LwIP для отладочной платы на базе 1986ВЕ91Т/94T и Ethernet контроллера 5600ВГ1У.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2019-апр-18 13:06 
Не в сети

Зарегистрирован: 2018-сен-14 15:48
Сообщения: 35
Vorobiev_Denis писал(а):
Добрый день!

Скажите пожалуйста если ли пример реализации стека LwIP для отладочной платы на базе 1986ВЕ91Т/94T и Ethernet контроллера 5600ВГ1У.

Например
viewtopic.php?f=33&t=226&p=19123&hilit=lwip#p19123


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2019-апр-18 13:48 
Не в сети

Зарегистрирован: 2019-мар-25 21:12
Сообщения: 12
Dmitry_S писал(а):
Vorobiev_Denis писал(а):
Добрый день!

Скажите пожалуйста если ли пример реализации стека LwIP для отладочной платы на базе 1986ВЕ91Т/94T и Ethernet контроллера 5600ВГ1У.

Например
viewtopic.php?f=33&t=226&p=19123&hilit=lwip#p19123


Спасибо!

Ping не работает.
Через отладчик наблюдаю что поступают данные в буфер ПРМ и мегает LED1, приэтом в таблице дескрипторов ПРМ
вижу следующее CTRL = 0x8000; LEN = 0; ADDR = 0;
Скажите пожалуйста параметры LEN, ADDR, и бит RDY выставляет сам Ethernet контроллер или их нужно как то настроить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2019-апр-19 12:56 
Не в сети

Зарегистрирован: 2018-сен-14 15:48
Сообщения: 35
Vorobiev_Denis писал(а):
Dmitry_S писал(а):
Vorobiev_Denis писал(а):
Добрый день!

Скажите пожалуйста если ли пример реализации стека LwIP для отладочной платы на базе 1986ВЕ91Т/94T и Ethernet контроллера 5600ВГ1У.

Например
viewtopic.php?f=33&t=226&p=19123&hilit=lwip#p19123


Спасибо!

Ping не работает.
Через отладчик наблюдаю что поступают данные в буфер ПРМ и мегает LED1, приэтом в таблице дескрипторов ПРМ
вижу следующее CTRL = 0x8000; LEN = 0; ADDR = 0;
Скажите пожалуйста параметры LEN, ADDR, и бит RDY выставляет сам Ethernet контроллер или их нужно как то настроить?


Честно - понятия не имею. Сам с ВЕ9х и 5600ВГ1У не работал


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: lwIp 1986BE1T
СообщениеДобавлено: 2019-апр-19 16:12 
Не в сети

Зарегистрирован: 2018-дек-17 15:20
Сообщения: 39
Цитата:
Ping не работает.
Через отладчик наблюдаю что поступают данные в буфер ПРМ и мегает LED1, приэтом в таблице дескрипторов ПРМ
вижу следующее CTRL = 0x8000; LEN = 0; ADDR = 0;


Как говорится это все, что нужно знать о "скачайте готовый код вот по той ссылке".


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2 Все

Часовой пояс: UTC + 3 часа


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

Сейчас этот форум просматривают: Bing [Bot] и гости: 3


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

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB