summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2024-06-27 22:36:33 +0800
committersakumisu <[email protected]>2024-06-28 16:33:45 +0800
commit35807fb9d90923892dba990f2b0788590ad93bcd (patch)
treef87db67584d5398f69370fba88c90383c1aa0dad
parent6e7502ec07b296919c882162519eb62b2fd3358d (diff)
fix(demo/cdc_ecm_template): device tcp/ip stack mac can't same as host
-rw-r--r--demo/cdc_ecm_template.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/demo/cdc_ecm_template.c b/demo/cdc_ecm_template.c
index eca74bc6..fd58a299 100644
--- a/demo/cdc_ecm_template.c
+++ b/demo/cdc_ecm_template.c
@@ -215,6 +215,7 @@ void cdc_ecm_lwip_init(void)
netif->hwaddr_len = 6;
memcpy(netif->hwaddr, mac, 6);
+ netif->hwaddr[5] = ~netif->hwaddr[5]; /* device mac can't same as host. */
netif = netif_add(netif, &ipaddr, &netmask, &gateway, NULL, cdc_ecm_if_init, netif_input);
netif_set_default(netif);
@@ -264,14 +265,14 @@ struct usbd_interface intf0;
struct usbd_interface intf1;
/* ecm only supports in linux, and you should input the following command
- *
+ *
* sudo ifconfig enxaabbccddeeff up
* sudo dhcpclient enxaabbccddeeff
*/
void cdc_ecm_init(uint8_t busid, uint32_t reg_base)
{
cdc_ecm_lwip_init();
-
+
usbd_desc_register(busid, cdc_ecm_descriptor);
usbd_add_interface(busid, usbd_cdc_ecm_init_intf(&intf0, CDC_INT_EP, CDC_OUT_EP, CDC_IN_EP));
usbd_add_interface(busid, usbd_cdc_ecm_init_intf(&intf1, CDC_INT_EP, CDC_OUT_EP, CDC_IN_EP));