Azure NetX Duo предоставляет драйвер только для физических физических устройств Ethernet, совместимых с LAN8742. Как я могу управлять другими физическими уровнями Ethernet?

Я разрабатываю приложение для STM32F4 с Azure RTOS Netx Duo. В частности, я пытаюсь адаптировать пример приложения Nx_TCP_Echo_Server для своей платы, где присутствует Ethernet Phy ADIN1200 производства Analog Devices.

Примечание о примереNx_TCP_Echo_Server

Пример приложения Nx_TCP_Echo_Server был создан для демонстрационной платы STM32F429ZI-NUCLEO ( код Nx_TCP_Echo_Server на github).
В демонстрационной плате STM32F429ZI-NUCLEO Ethernet Phy совместим с драйвером lan8742 (см. на GitHub). К сожалению, Ethernet PHY ADIN1200, установленный на моей плате, несовместим с этим драйвером.

Я заметил, что шестым параметром функции является функция указателяnx_stm32_eth_driver. Эта функция-указатель указывает на драйвер lan8742 .
Ниже я показываю вызов функцииnx_ip_create()присутствует в файлеapp_netxduo.c(код app_netxduo.c) примера приложения Nx_TCP_Echo_Server:

      /* Create the main NX_IP instance */
  ret = nx_ip_create(&IpInstance, "Main Ip instance", NULL_ADDRESS, NULL_ADDRESS, &AppPool, nx_stm32_eth_driver,
                     pointer, 2 * DEFAULT_MEMORY_SIZE, DEFAULT_PRIORITY);

Документация NetX Duo сообщает следующую информацию:

Структура NX_IP содержит все для управления одним экземпляром IP. Это включает в себя общую информацию о протоколе TCP/IP, а также процедуру ввода драйвера физической сети для конкретного приложения. Процедура ввода драйвера определяется во время службы nx_ip_create. Дополнительные устройства могут быть добавлены к экземпляру IP через сервис nx_ip_interface_attach.

Моя среда разработки

Моя среда разработки состоит из:

  • STM32CubeMX версии 6.7.0
  • В STM32CubeMX я установил пакет STM32F4 версии 1.27.1.
  • Для использования ThreadX я добавил в CubeMX программный пакет X-CUBE-AZRTOS-F4 версии 1.1.0.

По предыдущей среде могу найти только драйвер для LAN8742.

Мой вопрос

Как найти другие драйверы Ethernet PHY для NetX Duo , кроме драйвера для lan8742?


РЕДАКТИРОВАТЬ

Я нашел , но он очень далек от драйвераlan8742.cпредоставленный моим инструментом разработки (см. код драйвера lan8742код lan8742 ).
На самом деле API двух драйверов очень разные; например NetX Duo (а до него:LwIP) нужна такая функция, какLAN8742_RegisterBusIO()(присутствует в драйвере LAN8742) для инициализации структуры с функциями указателя, полезными для записи и чтения регистров Ethernet PHY, но в этот драйвер для ADIN1200этом драйвере эта функция и ее структуры данных отсутствуют.

0 ответов

Другие вопросы по тегам