Procházet zdrojové kódy

消除编译警告测试

Ryan-CW před 3 roky
rodič
revize
c250caa7dc

+ 23 - 23
README.md

@@ -1,62 +1,62 @@
 # RyanW5500
 
+使用遇到问题可以提 issue / RT-Thread 社区提问,谢谢。
+
 ### 1、介绍
 
-RyanW5500 实现了部分常用BSD socket API。
+RyanW5500 实现了部分常用 BSD socket API。
 
-- BSD socket API方便上层应用移植
-- 基于wizchip socket开发,优化支持RTOS,避免死循环
-- dhcp自动续租
+- 遵循 POSIX 2017,网络标准定义
+- BSD socket API 方便上层应用移植
+- 基于 wizchip socket 开发,优化支持 RTOS,避免死循环
+- dhcp 自动续租
 - 资源占用少
-- 对接RT-Thread sal和netdev组件
+- 对接 RT-Thread sal  netdev 组件
 
 ### 2、设计
 
-暂时只支持W5500,手上只有W5500。
+暂时只支持 W5500,手上只有 W5500。
 
-实现中能用wizchip接口的全部使用wizchip接口,方便移植到wiz其余芯片平台。
+实现中能用 wizchip 接口的全部使用 wizchip 接口,方便移植到 wiz 其余芯片平台。
 
 待补充
 
 ### 3、平台接口
 
-暂时只支持RT-Thread,后期再考虑跨平台(比较麻烦)。
+暂时只支持 RT-Thread,后期再考虑跨平台(比较麻烦)。
 
 ### 4、示例
 
-使用RyanW5500软件包需要在 RT-Thread 的包管理中选中它:
+使用 RyanW5500 软件包需要在 RT-Thread 的包管理中选中它:
 
 ![image-20221228130036255](docs/assert/README.assert/image-20221228130036255.png)
 
-- **Enable RyanW5500 example**:配置启动RyanW5500示例
-- **SPI device name**:配置使用 SPI 的设备名称(用户要提前把spi设备挂载到总线上)
+- **Enable RyanW5500 example**:配置启动 RyanW5500 示例
+- **SPI device name**:配置使用 SPI 的设备名称(用户要提前把 spi 设备挂载到总线上)
 - **Reset PIN number**:配置设备连接的复位引脚号(根据实际使用引脚号修改)
 - **IRQ PIN number**:配置设备连接的中断引脚号(根据实际使用引脚号修改)
-- **Version**:软件包版本选择(正式版没发布之前,推荐使用latest,会及时的修复bug)
+- **Version**:软件包版本选择(正式版没发布之前,推荐使用 latest,会及时的修复 bug)
 
-**详细使用请参考example,提供了一些测试接口和使用范例**
+**详细使用请参考 example,提供了一些测试接口和使用范例**
 
 ![image-20221230092752108](docs/assert/README.assert/image-20221230092752108.png)
 
-下图为使用udp echo服务器和tcp echo服务器发送数据测试,
+下图为使用 udp echo 服务器和 tcp echo 服务器发送数据测试,
 
-一个udp客户端 40ms轮询发送
+一个 udp 客户端 40ms 轮询发送
 
-二个tcp客户端 40 / 30ms轮询发送
+二个 tcp 客户端 40 / 30ms 轮询发送
 
-结果还是蛮稳定的,使用f407cpu占用在20%左右,开启dma会更好点。
+结果还是蛮稳定的,使用 f407cpu 占用在 20%左右,开启 dma 会更好点。
 
 ![7acf3c006ac8787302f5a72f5a6c1b6](docs/assert/README.assert/7acf3c006ac8787302f5a72f5a6c1b6.png)
 
 ### 5、依赖
 
-- ulog组件
-- SAL组件
-- netdev组件
+- ulog 组件
+- SAL 组件
+- netdev 组件
 - spi
 - pin
 
 ### 6、声明
-
-使用遇到问题可以提issue / RT-Thread社区提问,谢谢。
-

+ 0 - 2
W5500Client/RyanW5500Socket.c

@@ -383,7 +383,6 @@ int wiz_bind(int socket, const struct sockaddr *name, socklen_t namelen)
 
     RyanW5500Socket *sock = NULL;
     uint16_t port = 0;
-    ip_addr_t ipaddr = {0};
 
     RyanW5500CheckCode(NULL != name && 0 != namelen, EAFNOSUPPORT, { return -1; }); // 非法地址
 
@@ -392,7 +391,6 @@ int wiz_bind(int socket, const struct sockaddr *name, socklen_t namelen)
 
     // PRASE IP 地址和端口
     const struct sockaddr_in *sin = (const struct sockaddr_in *)name;
-    ipaddr.addr = sin->sin_addr.s_addr;
     port = (uint16_t)htons(sin->sin_port);
 
     if (sock->port == port)

+ 4 - 6
W5500Client/RyanW5500Store.h

@@ -87,12 +87,10 @@ extern "C"
     // 定义结构体类型
     typedef struct
     {
-        char *netdevName; // netDev名称
-        uint32_t netDevFlag;
-        rt_timer_t W5500TimerHandle;
-        rt_event_t W5500EventHandle;    // 事件标志组,用于中断通知和socket状态通知
-        rt_mutex_t socketMutexHandle;   // socket锁
-        rt_thread_t w5500TaskHandle;    // W5500线程
+        uint32_t netDevFlag;          // netdev用flag
+        rt_event_t W5500EventHandle;  // 事件标志组,用于中断通知和socket状态通知
+        rt_mutex_t socketMutexHandle; // socket锁
+        rt_thread_t w5500TaskHandle;  // W5500线程
     } RyanW5500Entry_t;
 
     /* extern variables-----------------------------------------------------------*/

+ 12 - 11
example/RyanW5500Test.c

@@ -8,6 +8,7 @@
 
 #include <rtthread.h>
 #include <rtdevice.h>
+#include "drv_spi.h"
 #include <rtdbg.h>
 #include "ulog.h"
 #include "RyanW5500.h"
@@ -104,10 +105,10 @@ int w5500Start(int argc, char *argv[])
 }
 
 // TCP并发ECHO服务器
-void *deal_client_fun(void *arg)
+void deal_client_fun(void *argument)
 {
 
-    int fd = *(int *)arg; // 通过arg获得已连接套接字
+    int fd = *(int *)argument; // 通过arg获得已连接套接字
     char buf[512] = {0};
 
     // struct timeval tv = {
@@ -131,7 +132,7 @@ void *deal_client_fun(void *arg)
             }
 
             ulog_e(TAG, "遇到错误, 退出 socket: %d, len: %d", fd, len);
-            close(fd);
+            closesocket(fd);
             return;
         }
 
@@ -179,7 +180,7 @@ void tcpEchoTask(void *argument)
         }
 
         // 关闭监听套接字
-        close(sockfd);
+        closesocket(sockfd);
     }
 }
 
@@ -232,7 +233,7 @@ void udpEchoServiceTask(void *argument)
     }
 
     // 关闭套接字
-    close(sockfd);
+    closesocket(sockfd);
 }
 
 void multicastEchoServiceTask(void *argument)
@@ -291,12 +292,12 @@ void multicastEchoServiceTask(void *argument)
                                        .sin_port = from_addr.sin_port,
                                        .sin_addr.s_addr = from_addr.sin_addr.s_addr};
         sendto(sockfd2, buf, len, 0, (struct sockaddr *)&ser_addr, sizeof(ser_addr));
-        close(sockfd2); // 关闭套接字
+        closesocket(sockfd2); // 关闭套接字
 
         memset(buf, 0, len);
     }
 
-    close(sockfd);
+    closesocket(sockfd);
 }
 
 static int w5500Static(int argc, char *argv[])
@@ -357,7 +358,7 @@ static int w5500UdpClient(int argc, char *argv[])
            0, (struct sockaddr *)&ser_addr, sizeof(ser_addr));
 
     // 关闭套接字
-    close(sockfd);
+    closesocket(sockfd);
     return 0;
 }
 
@@ -449,7 +450,7 @@ static int w5500TcpClient(int argc, char *argv[])
     }
 
     // 关闭套接字
-    close(sockfd);
+    closesocket(sockfd);
     return 0;
 }
 
@@ -528,7 +529,7 @@ static int w5500Broadcast(int argc, char *argv[])
     sendto(sockfd, msg, strlen(msg), 0,
            (struct sockaddr *)&dst_addr, sizeof(dst_addr));
 
-    close(sockfd);
+    closesocket(sockfd);
 
     ulog_i(TAG, "broadcast发送成功");
     return 0;
@@ -730,7 +731,7 @@ struct RyanMqttCmdDes
 
 static int w5500Help(int argc, char *argv[]);
 
-static const struct RyanMqttCmdDes cmdTab[] = {
+static struct RyanMqttCmdDes cmdTab[] = {
     {"help", "打印帮助信息", w5500Help},
     {"start", "启动RyanW5500", w5500Start},
     {"static", "netdev设置w5500静态地址,如果触发了ip变化,会关闭所有已连接socket", w5500Static},

+ 9 - 9
ioLibrary/W5500/w5500.h

@@ -906,15 +906,15 @@ extern "C"
 /**
  * @brief For Berkeley Socket API
  */
-#ifndef SOCK_STREAM
-#define SOCK_STREAM Sn_MR_TCP
-#endif
-/**
- * @brief For Berkeley Socket API
- */
-#ifndef SOCK_DGRAM
-#define SOCK_DGRAM Sn_MR_UDP
-#endif
+// #ifndef SOCK_STREAM
+// #define SOCK_STREAM Sn_MR_TCP
+// #endif
+// /**
+//  * @brief For Berkeley Socket API
+//  */
+// #ifndef SOCK_DGRAM
+// #define SOCK_DGRAM Sn_MR_UDP
+// #endif
 
 /* Sn_CR values */
 /**

+ 2 - 2
platform/RT-Thread/platformW5500Hardware.c

@@ -17,7 +17,7 @@ static struct rt_spi_device *RyanW5500SpiDevice = NULL;
  */
 int RyanW5500SpiInit()
 {
-    RyanW5500SpiDevice = rt_device_find(RYANW5500_SPI_DEVICE);
+    RyanW5500SpiDevice = (void*)rt_device_find(RYANW5500_SPI_DEVICE);
     if (RyanW5500SpiDevice == NULL)
     {
         LOG_E("You should attach [%s] into SPI bus firstly.", RYANW5500_SPI_DEVICE);
@@ -31,7 +31,7 @@ int RyanW5500SpiInit()
     };
     rt_spi_configure(RyanW5500SpiDevice, &cfg);
 
-    if (rt_device_open(RyanW5500SpiDevice, RT_DEVICE_OFLAG_RDWR) != RT_EOK)
+    if (rt_device_open((rt_device_t)RyanW5500SpiDevice, RT_DEVICE_OFLAG_RDWR) != RT_EOK)
     {
         LOG_E("open WIZnet SPI device %s error.", RYANW5500_SPI_DEVICE);
         return RT_ERROR;