summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorrbb666 <[email protected]>2025-10-24 17:34:27 +0800
committerR b b666 <[email protected]>2025-10-27 17:31:55 +0800
commitab5afb368943e76f9f41e8d0cd75abf5b6508108 (patch)
tree54e1e43dd8a0b6a0c15cc5ed3261ec5586382b96 /components
parente5556be19fd5ac4212e20f94fdd51b828298de39 (diff)
cherryusb:Fixed the issue where the USB device in the cdc_rndis_template example could not enable DHCP.
Diffstat (limited to 'components')
-rw-r--r--components/drivers/usb/cherryusb/demo/cdc_rndis_template.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/components/drivers/usb/cherryusb/demo/cdc_rndis_template.c b/components/drivers/usb/cherryusb/demo/cdc_rndis_template.c
index ff9526413a..c7bda9316b 100644
--- a/components/drivers/usb/cherryusb/demo/cdc_rndis_template.c
+++ b/components/drivers/usb/cherryusb/demo/cdc_rndis_template.c
@@ -189,14 +189,14 @@ void usbd_rndis_data_send_done(uint32_t len)
#error rndis must enable RT_LWIP_DHCP
#endif
-#ifndef LWIP_USING_DHCPD
-#error rndis must enable LWIP_USING_DHCPD
+#ifdef LWIP_USING_DHCPD
+#include <dhcp_server.h>
#endif
#include <rtthread.h>
#include <rtdevice.h>
#include <netif/ethernetif.h>
-#include <dhcp_server.h>
+#include <netdev.h>
struct eth_device rndis_dev;
@@ -250,7 +250,14 @@ void rndis_lwip_init(void)
eth_device_init(&rndis_dev, "u0");
eth_device_linkchange(&rndis_dev, RT_TRUE);
+#ifdef LWIP_USING_DHCPD
dhcpd_start("u0");
+#else
+ struct netdev *netdev = netdev_get_by_name("u0");
+ if (netdev) {
+ netdev_dhcp_enabled(netdev, RT_TRUE);
+ }
+#endif
}
void usbd_rndis_data_recv_done(uint32_t len)