Explorar o código

Merge pull request #4901 from mysterywolf/eth

[stm32][eth] beautify codes
Bernard Xiong %!s(int64=3) %!d(string=hai) anos
pai
achega
b8a75f8f28

+ 16 - 8
bsp/stm32/libraries/HAL_Drivers/drv_eth.c

@@ -41,9 +41,9 @@ struct rt_stm32_eth
     /* interface address info, hw address */
     rt_uint8_t  dev_addr[MAX_ADDR_LEN];
     /* ETH_Speed */
-    uint32_t    ETH_Speed;
+    rt_uint32_t    ETH_Speed;
     /* ETH_Duplex_Mode */
-    uint32_t    ETH_Mode;
+    rt_uint32_t    ETH_Mode;
 };
 
 static ETH_DMADescTypeDef *DMARxDscrTab, *DMATxDscrTab;
@@ -167,8 +167,14 @@ static rt_err_t rt_stm32_eth_control(rt_device_t dev, int cmd, void *args)
     {
     case NIOCTL_GADDR:
         /* get mac address */
-        if (args) rt_memcpy(args, stm32_eth_device.dev_addr, 6);
-        else return -RT_ERROR;
+        if (args)
+        {
+            SMEMCPY(args, stm32_eth_device.dev_addr, 6);
+        }
+        else
+        {
+            return -RT_ERROR;
+        }
         break;
 
     default :
@@ -214,7 +220,7 @@ rt_err_t rt_stm32_eth_tx(rt_device_t dev, struct pbuf *p)
         while ((byteslefttocopy + bufferoffset) > ETH_TX_BUF_SIZE)
         {
             /* Copy data to Tx buffer*/
-            memcpy((uint8_t *)((uint8_t *)buffer + bufferoffset), (uint8_t *)((uint8_t *)q->payload + payloadoffset), (ETH_TX_BUF_SIZE - bufferoffset));
+            SMEMCPY((uint8_t *)((uint8_t *)buffer + bufferoffset), (uint8_t *)((uint8_t *)q->payload + payloadoffset), (ETH_TX_BUF_SIZE - bufferoffset));
 
             /* Point to next descriptor */
             DmaTxDesc = (ETH_DMADescTypeDef *)(DmaTxDesc->Buffer2NextDescAddr);
@@ -236,7 +242,7 @@ rt_err_t rt_stm32_eth_tx(rt_device_t dev, struct pbuf *p)
         }
 
         /* Copy the remaining bytes */
-        memcpy((uint8_t *)((uint8_t *)buffer + bufferoffset), (uint8_t *)((uint8_t *)q->payload + payloadoffset), byteslefttocopy);
+        SMEMCPY((uint8_t *)((uint8_t *)buffer + bufferoffset), (uint8_t *)((uint8_t *)q->payload + payloadoffset), byteslefttocopy);
         bufferoffset = bufferoffset + byteslefttocopy;
         framelength = framelength + byteslefttocopy;
     }
@@ -327,7 +333,7 @@ struct pbuf *rt_stm32_eth_rx(rt_device_t dev)
             while ((byteslefttocopy + bufferoffset) > ETH_RX_BUF_SIZE)
             {
                 /* Copy data to pbuf */
-                memcpy((uint8_t *)((uint8_t *)q->payload + payloadoffset), (uint8_t *)((uint8_t *)buffer + bufferoffset), (ETH_RX_BUF_SIZE - bufferoffset));
+                SMEMCPY((uint8_t *)((uint8_t *)q->payload + payloadoffset), (uint8_t *)((uint8_t *)buffer + bufferoffset), (ETH_RX_BUF_SIZE - bufferoffset));
 
                 /* Point to next descriptor */
                 dmarxdesc = (ETH_DMADescTypeDef *)(dmarxdesc->Buffer2NextDescAddr);
@@ -338,7 +344,7 @@ struct pbuf *rt_stm32_eth_rx(rt_device_t dev)
                 bufferoffset = 0;
             }
             /* Copy remaining data in pbuf */
-            memcpy((uint8_t *)((uint8_t *)q->payload + payloadoffset), (uint8_t *)((uint8_t *)buffer + bufferoffset), byteslefttocopy);
+            SMEMCPY((uint8_t *)((uint8_t *)q->payload + payloadoffset), (uint8_t *)((uint8_t *)buffer + bufferoffset), byteslefttocopy);
             bufferoffset = bufferoffset + byteslefttocopy;
         }
     }
@@ -385,7 +391,9 @@ void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth)
     rt_err_t result;
     result = eth_device_ready(&(stm32_eth_device.parent));
     if (result != RT_EOK)
+    {
         LOG_I("RxCpltCallback err = %d", result);
+    }
 }
 
 void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth)

+ 4 - 8
bsp/stm32/libraries/HAL_Drivers/drv_eth.h

@@ -28,13 +28,12 @@
 
 /* The PHY ID one register */
 #define PHY_ID1_REG                 0x02U
-
 /* The PHY ID two register */
 #define PHY_ID2_REG                 0x03U
-
 /* The PHY auto-negotiate advertise register */
 #define PHY_AUTONEG_ADVERTISE_REG   0x04U
 
+
 #ifdef PHY_USING_LAN8720A
 /*  The PHY interrupt source flag register. */
 #define PHY_INTERRUPT_FLAG_REG      0x1DU
@@ -51,9 +50,8 @@
 #define PHY_Status_SPEED_10M(sr)    ((sr) & PHY_10M_MASK)
 #define PHY_Status_SPEED_100M(sr)   ((sr) & PHY_100M_MASK)
 #define PHY_Status_FULL_DUPLEX(sr)  ((sr) & PHY_FULL_DUPLEX_MASK)
-#endif /* PHY_USING_LAN8720A */
 
-#ifdef PHY_USING_DM9161CEP
+#elif defined(PHY_USING_DM9161CEP)
 #define PHY_Status_REG              0x11U
 #define PHY_10M_MASK                ((1<<12) || (1<<13))
 #define PHY_100M_MASK               ((1<<14) || (1<<15))
@@ -69,9 +67,7 @@
 #define PHY_LINK_CHANGE_MASK        (1<<9)
 #define PHY_INT_MASK                0
 
-#endif /* PHY_USING_DM9161CEP */
-
-#ifdef PHY_USING_DP83848C
+#elif defined(PHY_USING_DP83848C)
 #define PHY_Status_REG              0x10U
 #define PHY_10M_MASK                (1<<1)
 #define PHY_FULL_DUPLEX_MASK        (1<<2)
@@ -87,6 +83,6 @@
 /*  The PHY interrupt mask register. */
 #define PHY_INTERRUPT_MASK_REG      0x12U
 #define PHY_INT_MASK                (1<<5)
-#endif /* PHY_USING_DP83848C */
+#endif
 
 #endif /* __DRV_ETH_H__ */

+ 7 - 0
components/net/lwip-1.4.1/src/lwipopts.h

@@ -222,6 +222,13 @@
 #define LWIP_DBG_TYPES_ON           (LWIP_DBG_ON|LWIP_DBG_TRACE|LWIP_DBG_STATE|LWIP_DBG_FRESH|LWIP_DBG_HALT)
 
 /* ---------- Memory options ---------- */
+#ifdef RT_USING_ASM_MEMCPY
+#define MEMCPY(dst,src,len)             rt_memcpy(dst,src,len)
+#else
+#define MEMCPY(dst,src,len)             memcpy(dst,src,len)
+#endif /* RT_USING_ASM_MEMCPY */
+#define SMEMCPY(dst,src,len)            MEMCPY(dst,src,len)
+
 #define MEM_ALIGNMENT               4
 
 #define MEM_LIBC_MALLOC             1

+ 4 - 4
components/net/lwip-1.4.1/src/netif/ethernetif.c

@@ -201,14 +201,14 @@ int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
     {
         return -RT_ERROR;
     }
-    rt_memcpy(&h, &res->ai_addr, sizeof(struct sockaddr_in *));
-    rt_memcpy(&ina, &h->sin_addr, sizeof(ina));
+    SMEMCPY(&h, &res->ai_addr, sizeof(struct sockaddr_in *));
+    SMEMCPY(&ina, &h->sin_addr, sizeof(ina));
     lwip_freeaddrinfo(res);
     if (inet_aton(inet_ntoa(ina), &target_addr) == 0)
     {
         return -RT_ERROR;
     }
-    rt_memcpy(&(ping_resp->ip_addr), &target_addr, sizeof(ip_addr_t));
+    SMEMCPY(&(ping_resp->ip_addr), &target_addr, sizeof(ip_addr_t));
 
     /* new a socket */
     if ((s = lwip_socket(AF_INET, SOCK_RAW, IP_PROTO_ICMP)) < 0)
@@ -331,7 +331,7 @@ static int netdev_add(struct netif *lwip_netif)
     netdev->mtu = lwip_netif->mtu;
     netdev->ops = &lwip_netdev_ops;
     netdev->hwaddr_len =  lwip_netif->hwaddr_len;
-    rt_memcpy(netdev->hwaddr, lwip_netif->hwaddr, lwip_netif->hwaddr_len);
+    SMEMCPY(netdev->hwaddr, lwip_netif->hwaddr, lwip_netif->hwaddr_len);
     netdev->ip_addr = lwip_netif->ip_addr;
     netdev->gw = lwip_netif->gw;
     netdev->netmask = lwip_netif->netmask;

+ 9 - 2
components/net/lwip-2.0.2/src/lwipopts.h

@@ -230,14 +230,21 @@
 #define LWIP_DBG_TYPES_ON           (LWIP_DBG_ON|LWIP_DBG_TRACE|LWIP_DBG_STATE|LWIP_DBG_FRESH|LWIP_DBG_HALT)
 
 /* ---------- Memory options ---------- */
+#ifdef RT_USING_ASM_MEMCPY
+#define MEMCPY(dst,src,len)             rt_memcpy(dst,src,len)
+#else
+#define MEMCPY(dst,src,len)             memcpy(dst,src,len)
+#endif /* RT_USING_ASM_MEMCPY */
+#define SMEMCPY(dst,src,len)            MEMCPY(dst,src,len)
+
 #ifdef RT_LWIP_MEM_ALIGNMENT
 #define MEM_ALIGNMENT RT_LWIP_MEM_ALIGNMENT
 #else
 #define MEM_ALIGNMENT               4
 #endif
 
-#define MEMP_OVERFLOW_CHECK         1 ////
-#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1 ////
+#define MEMP_OVERFLOW_CHECK         1
+#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1
 //#define MEM_LIBC_MALLOC             1
 //#define MEM_USE_POOLS               1
 //#define MEMP_USE_CUSTOM_POOLS       1

+ 4 - 4
components/net/lwip-2.0.2/src/netif/ethernetif.c

@@ -210,14 +210,14 @@ int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
     {
         return -RT_ERROR;
     }
-    rt_memcpy(&h, &res->ai_addr, sizeof(struct sockaddr_in *));
-    rt_memcpy(&ina, &h->sin_addr, sizeof(ina));
+    SMEMCPY(&h, &res->ai_addr, sizeof(struct sockaddr_in *));
+    SMEMCPY(&ina, &h->sin_addr, sizeof(ina));
     lwip_freeaddrinfo(res);
     if (inet_aton(inet_ntoa(ina), &target_addr) == 0)
     {
         return -RT_ERROR;
     }
-    rt_memcpy(&(ping_resp->ip_addr), &target_addr, sizeof(ip_addr_t));
+    SMEMCPY(&(ping_resp->ip_addr), &target_addr, sizeof(ip_addr_t));
 
     /* new a socket */
     if ((s = lwip_socket(AF_INET, SOCK_RAW, IP_PROTO_ICMP)) < 0)
@@ -340,7 +340,7 @@ static int netdev_add(struct netif *lwip_netif)
     netdev->mtu = lwip_netif->mtu;
     netdev->ops = &lwip_netdev_ops;
     netdev->hwaddr_len =  lwip_netif->hwaddr_len;
-    rt_memcpy(netdev->hwaddr, lwip_netif->hwaddr, lwip_netif->hwaddr_len);
+    SMEMCPY(netdev->hwaddr, lwip_netif->hwaddr, lwip_netif->hwaddr_len);
     netdev->ip_addr = lwip_netif->ip_addr;
     netdev->gw = lwip_netif->gw;
     netdev->netmask = lwip_netif->netmask;

+ 9 - 2
components/net/lwip-2.0.3/src/lwipopts.h

@@ -230,14 +230,21 @@
 #define LWIP_DBG_TYPES_ON           (LWIP_DBG_ON|LWIP_DBG_TRACE|LWIP_DBG_STATE|LWIP_DBG_FRESH|LWIP_DBG_HALT)
 
 /* ---------- Memory options ---------- */
+#ifdef RT_USING_ASM_MEMCPY
+#define MEMCPY(dst,src,len)             rt_memcpy(dst,src,len)
+#else
+#define MEMCPY(dst,src,len)             memcpy(dst,src,len)
+#endif /* RT_USING_ASM_MEMCPY */
+#define SMEMCPY(dst,src,len)            MEMCPY(dst,src,len)
+
 #ifdef RT_LWIP_MEM_ALIGNMENT
 #define MEM_ALIGNMENT RT_LWIP_MEM_ALIGNMENT
 #else
 #define MEM_ALIGNMENT               4
 #endif
 
-#define MEMP_OVERFLOW_CHECK         1 ////
-#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1 ////
+#define MEMP_OVERFLOW_CHECK         1
+#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1
 //#define MEM_LIBC_MALLOC             1
 //#define MEM_USE_POOLS               1
 //#define MEMP_USE_CUSTOM_POOLS       1

+ 4 - 4
components/net/lwip-2.0.3/src/netif/ethernetif.c

@@ -210,14 +210,14 @@ int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
     {
         return -RT_ERROR;
     }
-    rt_memcpy(&h, &res->ai_addr, sizeof(struct sockaddr_in *));
-    rt_memcpy(&ina, &h->sin_addr, sizeof(ina));
+    SMEMCPY(&h, &res->ai_addr, sizeof(struct sockaddr_in *));
+    SMEMCPY(&ina, &h->sin_addr, sizeof(ina));
     lwip_freeaddrinfo(res);
     if (inet_aton(inet_ntoa(ina), &target_addr) == 0)
     {
         return -RT_ERROR;
     }
-    rt_memcpy(&(ping_resp->ip_addr), &target_addr, sizeof(ip_addr_t));
+    SMEMCPY(&(ping_resp->ip_addr), &target_addr, sizeof(ip_addr_t));
 
     /* new a socket */
     if ((s = lwip_socket(AF_INET, SOCK_RAW, IP_PROTO_ICMP)) < 0)
@@ -340,7 +340,7 @@ static int netdev_add(struct netif *lwip_netif)
     netdev->mtu = lwip_netif->mtu;
     netdev->ops = &lwip_netdev_ops;
     netdev->hwaddr_len =  lwip_netif->hwaddr_len;
-    rt_memcpy(netdev->hwaddr, lwip_netif->hwaddr, lwip_netif->hwaddr_len);
+    SMEMCPY(netdev->hwaddr, lwip_netif->hwaddr, lwip_netif->hwaddr_len);
     netdev->ip_addr = lwip_netif->ip_addr;
     netdev->gw = lwip_netif->gw;
     netdev->netmask = lwip_netif->netmask;

+ 9 - 2
components/net/lwip-2.1.2/src/lwipopts.h

@@ -242,9 +242,16 @@
 #endif
 
 /* ---------- Memory options ---------- */
+#ifdef RT_USING_ASM_MEMCPY
+#define MEMCPY(dst,src,len)             rt_memcpy(dst,src,len)
+#else
+#define MEMCPY(dst,src,len)             memcpy(dst,src,len)
+#endif /* RT_USING_ASM_MEMCPY */
+#define SMEMCPY(dst,src,len)            MEMCPY(dst,src,len)
+
 #define MEM_ALIGNMENT               4
-#define MEMP_OVERFLOW_CHECK         1 ////
-#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1 ////
+#define MEMP_OVERFLOW_CHECK         1
+#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1
 //#define MEM_LIBC_MALLOC             1
 //#define MEM_USE_POOLS               1
 //#define MEMP_USE_CUSTOM_POOLS       1

+ 4 - 4
components/net/lwip-2.1.2/src/netif/ethernetif.c

@@ -208,14 +208,14 @@ int lwip_netdev_ping(struct netdev *netif, const char *host, size_t data_len,
     {
         return -RT_ERROR;
     }
-    rt_memcpy(&h, &res->ai_addr, sizeof(struct sockaddr_in *));
-    rt_memcpy(&ina, &h->sin_addr, sizeof(ina));
+    SMEMCPY(&h, &res->ai_addr, sizeof(struct sockaddr_in *));
+    SMEMCPY(&ina, &h->sin_addr, sizeof(ina));
     lwip_freeaddrinfo(res);
     if (inet_aton(inet_ntoa(ina), &target_addr) == 0)
     {
         return -RT_ERROR;
     }
-    rt_memcpy(&(ping_resp->ip_addr), &target_addr, sizeof(ip_addr_t));
+    SMEMCPY(&(ping_resp->ip_addr), &target_addr, sizeof(ip_addr_t));
     
     /* new a socket */
     if ((s = lwip_socket(AF_INET, SOCK_RAW, IP_PROTO_ICMP)) < 0)
@@ -338,7 +338,7 @@ static int netdev_add(struct netif *lwip_netif)
     netdev->mtu = lwip_netif->mtu;
     netdev->ops = &lwip_netdev_ops;
     netdev->hwaddr_len =  lwip_netif->hwaddr_len;
-    rt_memcpy(netdev->hwaddr, lwip_netif->hwaddr, lwip_netif->hwaddr_len);
+    SMEMCPY(netdev->hwaddr, lwip_netif->hwaddr, lwip_netif->hwaddr_len);
     netdev->ip_addr = lwip_netif->ip_addr;
     netdev->gw = lwip_netif->gw;
     netdev->netmask = lwip_netif->netmask;

+ 4 - 0
src/Kconfig

@@ -131,6 +131,10 @@ config RT_KSERVICE_USING_TINY_SIZE
     bool "Enable kservice to use tiny size"
     default n
 
+config RT_USING_ASM_MEMCPY
+    bool
+    default n
+
 endmenu
 
 menuconfig RT_DEBUG

+ 3 - 1
src/kservice.c

@@ -198,6 +198,7 @@ RT_WEAK void *rt_memset(void *s, int c, rt_ubase_t count)
 }
 RTM_EXPORT(rt_memset);
 
+#ifndef RT_USING_ASM_MEMCPY
 /**
  * This function will copy memory content from source address to destination
  * address.
@@ -208,7 +209,7 @@ RTM_EXPORT(rt_memset);
  *
  * @return the address of destination memory
  */
-RT_WEAK void *rt_memcpy(void *dst, const void *src, rt_ubase_t count)
+void *rt_memcpy(void *dst, const void *src, rt_ubase_t count)
 {
 #ifdef RT_KSERVICE_USING_TINY_SIZE
     char *tmp = (char *)dst, *s = (char *)src;
@@ -280,6 +281,7 @@ RT_WEAK void *rt_memcpy(void *dst, const void *src, rt_ubase_t count)
 #endif /* RT_KSERVICE_USING_TINY_SIZE */
 }
 RTM_EXPORT(rt_memcpy);
+#endif /* RT_USING_ASM_MEMCPY */
 
 #ifndef RT_KSERVICE_USING_STDLIB