19.04.2017, 18:32
|
|
Временная регистрация
Регистрация: 10.11.2016
Сообщений: 65
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Ethernet в STM32F407
Я пока решил проблему!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!
1 Чтобы netif)-›flags стал равен NETIF_FLAG_UP, программа должна попасть в функцию netif_set_up () (в файле netif.c).
2 Эта функция вызывается из функции LwIP_Init (в файле netconf.c), вот код
if (EthStatus == (ETH_INIT_FLAG | ETH_LINK_FLAG))
{
/* Set Ethernet link flag */
gnetif.flags |= NETIF_FLAG_LINK_UP;
/* When the netif is fully configured this function must be called */
netif_set_up(&gnetif);
EthStatus не был равен ни тому, не другому флагу
3 Значение ETH_LINK_FLAG присваивается EthStatus в функции ETH_BSP_Config(), вот код
if(ETH_ReadPHYRegister(DP83848_PHY_ADDRESS, PHY_SR) & 1)
{
EthStatus |= ETH_LINK_FLAG;
}
4 Функция ReadPHYRegister отвечает за считывание значения регистра SR микросхемы DP83848.
Но у меня-то LAN8720 и регистра по такому адресу нет (позже надо будет подправить адрес)
Я заменил EthStatus == (ETH_INIT_FLAG | ETH_LINK_FLAG) на 1, и все заработало!
|
|
|
|
19.04.2017, 18:41
|
|
Временная регистрация
Регистрация: 10.11.2016
Сообщений: 65
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Ethernet в STM32F407
Ребят для тех, кто хочет попробовать Ethernet на STM32f407, надо:
- купить кабель езернет, отладку LAN8720, отладку STm32f407discovery, благо есть в ЧИП и ДИП и терраэлектронике
- собрать установку
- установить Кейл (у меня кейл 4.7 с ключом) или подобное и ST_Link Utility
- скачать с сайта ST.com папку STM32F4x7_ETH_LwIP_V1.1.1
- открыть проект standalone/httpserver/mdk-arm/project (для кейла)
- добавить пины РВ11-РВ13, закомментить PG, закомментить MII_mode, раскомментить RMI_mode, добавить доработку, указанную выше в сообщении
- прошить контроллер и увидеть веб страницу.
Удачи!
|
|
|
|
19.04.2017, 18:42
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: Ethernet в STM32F407
Так с замены обработки для другого пирефирийного устройства и стоило начать. И таки довести это до логического конца. Может тогда исходный код без танцев с бубном заведется. А так пока нечто с неопознанными костылями. И работает пока не понятно на сколько процентов.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
19.04.2017, 19:24
|
|
Временная регистрация
Регистрация: 10.11.2016
Сообщений: 65
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Ethernet в STM32F407
Все строки в проекте раскомментированы. Основная задача примера- увидеть в браузере определенные страницы. Эти страницы я вижу, так что задача минимум решена!
|
|
|
|
19.04.2017, 20:49
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: Ethernet в STM32F407
Задача минимум тут понять как все работает, а не заставить костылями его работать. Потом появится насущная необходимость и придётся снова наступать на те же грабли. Таки адаптируйте железо под проект и добейтесь его функционирования в исходном виде. Тогда будет опыт. Пока увы костыль - игнорирование обработки железа и все остальное, вытекающее из пропуска бесполезного пока кода.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
24.04.2017, 14:50
|
|
Временная регистрация
Регистрация: 10.11.2016
Сообщений: 65
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Ethernet в STM32F407
Всем привет! При изучении пункта 33.6 "Ethernet functional description: DMA controller operation" в RM0090 наткнулся на понятие "descriptor list" (видимо список дескрипторов).
Никак не могу понять как этот список дескрипторов объявить в языке Си в Кейл до выполнения основного кода? Что это: массив, структура?
Сколько должно быть дескрипторов в этом списке?
Как я понял один дескриптор на прием (передачу) состоит из четырех 32-битных слов.
Спасибо!
|
|
|
|
24.04.2017, 17:38
|
|
Временная регистрация
Регистрация: 10.11.2016
Сообщений: 65
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Ethernet в STM32F407
как я понял из примера, скаченного с сайта st.com и оговоренного выше в сообщениях в этой теме, список дескрипторов объявляется как массив из 4 элементов.
__align(4)
ETH_DMADESCTypeDef DMARxDscrTab[ETH_RXBUFNB];/* Ethernet Rx MA Descriptor */
Элементами являются структуры, в общем состоящие из 4 слов по 32 бита (как я понял это слова RDES0-RDES3 из RM0090, но под другими именами).
Нажмите, чтобы открыть спойлер
typedef struct {
__IO uint32_t Status; /*!‹ Status */
uint32_t ControlBufferSize; /*!‹ Control and Buffer1, Buffer2 lengths */
uint32_t Buffer1Addr; /*!‹ Buffer1 address pointer */
uint32_t Buffer2NextDescAddr; /*!‹ Buffer2 or next descriptor address pointer */
/* Enhanced ETHERNET DMA PTP Descriptors */
#ifdef USE_ENHANCED_DMA_DESCRIPTORS
uint32_t ExtendedStatus; /* Extended status for PTP receive descriptor */
uint32_t Reserved1; /* Reserved */
uint32_t TimeStampLow; /* Time Stamp Low value for transmit and receive */
uint32_t TimeStampHigh; /* Time Stamp High value for transmit and receive */
#endif /* USE_ENHANCED_DMA_DESCRIPTORS */
} ETH_DMADESCTypeDef;
Не понятно по коду примера, как новые слова связаны с RDES0-RDES3?
Не понятно, как STM понимает, что слово Status - это RDES0?
Если мне нужен список из двух дескрипторов, могу ли я этот список дескрипторов объявить без применения структуры как
uint32_t RXDescList[8] ?
Как связать элементы массива с словами RDES0-RDES3?
Спасибо!
|
|
|
|
25.04.2017, 03:44
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: Ethernet в STM32F407
А поиск по коду уже не работает?
По используемым именам просмотр работы с ними по всему коду и логика работы становится понятной. Или поиск вменяемой документации на сам пример и используемые библиотеки, дальше опять анализ кода. Иначе ну никак.
Конечно никто не отменяет работу в стиле массового программирования для ардуино, но я думаю тут не тот случай.
Разобраться до оператора в работе чужого кода, наставить своих комментариев для облегчения собственной жизни и придёт понимание сути происходящего. Тогда отсеется массив текущих вопросов до минимума, да и на оставшиеся возможно тоже найдётся собственный ответ… Такие вопросы уже можно уточнить.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
25.04.2017, 05:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Ethernet в STM32F407
Сообщение от Дмитрий1987
|
Никак не могу понять как этот список дескрипторов объявить в языке Си в Кейл до выполнения основного кода? Что это: массив, структура?
|
Что то в этом роде почитать http://we.easyelectronics.ru/STM32/o...y-perevod.html
__________________
Глаза боятся,а руки делают.
|
|
|
|
25.04.2017, 15:11
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: Ethernet в STM32F407
Может немного к истокам вернуться?
Огромное количество книг по C/C++, там все разобрано.
Сначала Керниган и Ритчи "Язык программирования Си"
Потом при необходимости Страутсруп "Язык программирования C++"
Потом особенности реализации компилятора в используемой среде.
Дальше уже разбор кода на составляющие и отсутствие значительной части вопросов.
Тут увы нужны систематические и системные знания иначе понимание будет на уровне смеси из нескольких винегретов и будет только плодить множество элементарных вопросов, сильно раздражая себя и отвечающих.
И, главное, время потраченное на изучение быстро начинает окупаться за счёт понимания сути происходящего перед глазами и отсутствия элементарных вопросов.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:24.
|
|