完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我正在使用 STM32cubeMX 在 nucleo F767ZI 板上创建项目
我将 FreeRTOS 和 LWIP 用于简单的 UDP 发送器。 我可以从 DHCP 和 ping 工作中获取 IP 地址,如果目的地是广播地址,数据包可以毫无问题地发送出去,如果我将它设置为某台计算机的地址,程序将挂起,我尝试在之后放置一个 LED GPIO发送函数调用,似乎不是从该函数返回。在线调试显示它最终陷入内存访问未对齐的硬故障。 我也尝试指定 IP 地址而不是使用 DHCP,但仍然只适用于广播。该程序还将因未对齐的内存访问而陷入硬故障。 在调试过程中,我发现了一个很奇怪的问题,DHCP 工作,ping 和 DHCP 服务器都显示开发板已成功获取 ip 地址。 如果目标是广播,在调试期间,我可以找到“struct netif *netif_default;” 和“struct netif *netif_list;” 在 netif.c 中指向具有正确 IP 地址、网络掩码和网关的正确接口。 然而,当 UDP 发送目的地设置为特定的 ip 地址时,甚至在调用 udp 发送之前,“struct netif *netif_default;” 和“struct netif *netif_list;” netif.c中显示ipaddress为0,导致找不到路由。并挂起不应该发生的系统。它假设返回无法找到主机而不是挂起的错误。 这是代码: void StartDefaultTask(void const * 参数) { uint8_t pui8Text[19] = "这是测试 1。n"; 易失性 err_t tErr; 结构 netconn* ptUDP; 结构 netbuf* ptNetBuf; ptUDP = netconn_new(NETCONN_UDP); tErr = netconn_bind(ptUDP, IP_ADDR_ANY, 5555); // IP4_ADDR(&tDest, 192, 168, 001, 160); // 不行 IP4_ADDR(&tDest, 192, 168, 001, 255); // 有效 // IP4_ADDR(&tDest, 255, 255, 255, 255); // 有效 // tDest.addr = 0xa001a8c0; // 不行 // tDest.addr = 0xffffffff; // 有效 ptNetBuf = netbuf_new(); netbuf_alloc(ptNetBuf, 18); netbuf_ref(ptNetBuf, pui8Text, 18); vTaskDelay(pdMS_TO_TICKS(1000)); 为了(;;) { tErr = netconn_sendto(ptUDP, ptNetBuf, &tDest, 5555); vTaskDelay(pdMS_TO_TICKS(100)); } } > 如果目的地是广播地址,数据包可以毫无问题地发送出去 单播使用 ARP。广播没有。猜测 ARP 正在倾斜堆栈大小。 如果 LWIP_TCPIP_CORE_LOCKING 非零,它将是 StartDefaultTask 的堆栈大小。 否则它将是 tcpip_thread 的堆栈大小,TCPIP_THREAD_STACKSIZE。 通过将必需的堆栈大小增加 0x200 个字(其中字 = 32 位)并重新测试来确认。 如果确实是原因,则更仔细地调整堆栈大小。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2720 浏览 1 评论
3236 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1807 浏览 1 评论
3645 浏览 6 评论
6033 浏览 21 评论
1334浏览 4评论
209浏览 3评论
196浏览 3评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
350浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
442浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 10:49 , Processed in 1.024044 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号