Я опираясь на проект LRNDIS на STM32F103 собрал и скомпилировал RNDIS для STM32f105RC6. У меня в диспетчере устройств появилась моя STM и я указав ей что это устройство является сетевым адаптером установил в соответствии с вашей статьей драйвер для Windows. Появилось в диспетчере задач устройство RNDIS (драйвер "работает нормально"). Уточняю LwIP нет в проекте. ПК добавляет новое сетевое подключение, но подключение всегда находится в отключенном состоянии. Я это понял, что это из-за отсутствия поддержки уровня TCP/IP.
На этом этапе я решил проверить насколько моя STM с поддержкой rndis способна принимать пакеты (любые).
Для этого я в основном цикле main.c добавил функцию polling следующего вида:
void usb_polling(void)
{
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_9);
HAL_Delay(75);
if (!rndis_rx_data())
return;
while (1)
{
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_8);
HAL_Delay(75);
}
}
И ожидаю в результате принятия любых данных от ПК мигающий светодиод сменится.
Но тут опять же я не знаю чем и как отправить запрос на STM, ведь поддержки TCP/IP нет. А убедиться в работоспособности этого уровня хотелось бы.
Не могли бы Вы дать свои комментарии по этому поводу?! Как я могу проверить "голый" драйвер rndis на своей STM-ки? Если это вообще возможно. Или нужно только совместно с TCP/IP проверять?