英飞凌
直播中

李晨灵

8年用户 1530经验值
私信 关注

Aurix TC375Lite套件UDP以太网连接错误的原因?

我正在为一家公司做一个项目,需要用 Lwip 实现以太网和 UDP。我注意到没有关于这个特定主题的示例。我只找到了 TCP echo 的示例。尽管如此,我还是尝试编写自己的代码来实现 UDP 服务器(代码如下所示)。然后,我 在 main_cpu0 程序 中实现了函数 (udpServer_Init)  。当我尝试运行程序时,我可以 ping 到微控制器,但当我尝试通过 Putty 终端连接时,却显示"connection refused。" 我在想,我是否遗漏了 lwipopts.h 中的某些设置 , 或者是否忽略了其他什么。如果有人能提供一些 Aurix 微控制器上 UDP 的示例或就这一问题提供任何帮助,我将不胜感激。我还在附件中提供了重要的程序文件。
void udp_receive_callback(void*参数 结构 结构体*uPCB、 结构 pbuf*p, 结构ip_addr_t *addr、 u16_tport)
{
/* 连接远程客户端 */
udp_connect(upcb, addr, port);
udp_send(upcb, p);
pbuf_free(p);
udp_remove(upcb);
}




void udpServer_Init(void)
{
结构 udp_pcb*upcb;

/* 1. 创建一个新的 UDP 控制块 */
upcb = udp_new();
udp_bind(upcb, IP_ADDR_ANY, 8);
udp_recv(upcb, udp_receive_callback, NULL);
}

lwipopts.h:

#ifndef __LWIPOPTS_H__
#define __LWIPOPTS_H__
/*********************************************************************************************************************/
/*------------------------------------------------------Macros-------------------------------------------------------*/
/*********************************************************************************************************************/
#define LWIP_UDP 1
#define MEMP_NUM_UDP_PCB 4
#define NO_SYS 1 /* 在没有操作系统的情况下使用 LwIP(无线程、无 Semaphores 等) */
#define LWIP_NETIF_HOSTNAME 0 /* 在 DHCP 中启用主机名选项 */
#define BOARDNAME"AURIXLK2TC375TP" /* 板名,也用作主机名 */
#define MEM_ALIGNMENT 4 /* 将内存对齐方式设置为 4 字节(32 位机位机器) */
#define MEM_SIZE (25 * 1024) /* 堆大小 */
#define LWIP_DHCP 0 /* 启用 DHCP 协议 */
#define LWIP_NETCONN 0 /* 禁用 Netconn API */
#define LWIP_SOCKET 0 /* 禁用 Socket API */
#define SYS_LIGHTWEIGHT_PROT 0 /* 禁用任务间保护 */任务间保护 */

#define ETH_PAD_SIZE 2 /* 在以太网头之前增加 2 个字节,以确保有效载荷对齐 */
#define __LWIP_DEBUG__ /* 通过 UART 接口启用调试 */
#define LWIP_NETIF_EXT_STATUS_CALLBACK 1 /* 为 netif 启用扩展回调函数 */
#ifdef __LWIP_DEBUG__
#define LWIP_DEBUG /* 启用 LwIP 调试 */
#endif
#ifndef IFX_LWIP_DEBUG
#define IFX_LWIP_DEBUG LWIP_DBG_OFF /* IFX LwIP 调试级别设置为 OFF */
#endif
#define DHCP_DEBUG LWIP_DBG_OFF /* 启用 DHCP调试 */
#define NETIF_DEBUG LWIP_DBG_ON /* 启用 NETIF 调试 */
#define LWIP_DBG_TYPES_ON LWIP_DBG_STATE /* 只启用模块状态调试信息 */
#endif /* __LWIPOPTS_H__ */


回帖(1)

刘勇

2024-6-3 14:13:30
根据您提供的信息,我将尝试分析可能导致 Aurix TC375Lite 套件 UDP 以太网连接错误的原因。以下是一些可能的原因和建议:

1. **检查 lwipopts.h 配置**:确保您已经在 lwipopts.h 文件中启用了 UDP 功能。在 lwipopts.h 文件中,找到以下宏定义并确保它们被正确设置:

   ```
   #define LWIP_UDP                1
   #define LWIP_UDPLITE            1
   ```

2. **检查网络配置**:确保您的网络配置正确,包括 IP 地址、子网掩码和默认网关。检查您的网络接口是否已正确初始化。

3. **检查 UDP 服务器实现**:仔细检查您的 UDP 服务器实现,确保您正确地创建了 UDP 套接字,绑定了端口,并正确地接收和发送数据。

4. **检查防火墙设置**:确保您的防火墙设置没有阻止 UDP 数据包。您可以尝试暂时禁用防火墙,看看是否可以解决问题。

5. **检查 Putty 终端设置**:确保您在 Putty 终端中使用了正确的端口号。默认情况下,UDP 通信通常使用端口 5000。

6. **检查错误处理**:确保您的代码中有适当的错误处理机制,以便在出现问题时能够识别并解决问题。

7. **调试和日志记录**:在您的代码中添加调试和日志记录功能,以便更好地了解程序在运行过程中的行为。这将有助于您识别问题所在。

8. **参考文档和示例**:尽管您提到没有找到关于 Aurix 微控制器上 UDP 的示例,但您可以尝试查找其他类似平台的示例,以便了解如何正确实现 UDP 服务器。

希望这些建议能帮助您解决问题。如果您能提供更多关于您的实现和配置的详细信息,我将更好地帮助您找到问题所在。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分