完善资料让更多小伙伴认识你,还能领取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的选项
2617 浏览 1 评论
3203 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1776 浏览 1 评论
3602 浏览 6 评论
5981 浏览 21 评论
931浏览 4评论
1308浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
576浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1296浏览 3评论
1350浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 12:16 , Processed in 1.042620 second(s), Total 46, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号