打印
[STM32F4]

Lwip+freertos+gd32f407

[复制链接]
1414|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaohuihuiya|  楼主 | 2024-8-16 18:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.联网间隔500ms上传数据到服务器上,未上产品时上传是正常的,连续跑了24小时都是正常的。接入产品上,就会出现发送数据失败,无法获取dma权限。
2.出现问题时,删除上传任务,想着复位网口芯片,并且重新初始化网口外设,然后再进行创建上传任务,但是会出现卡死现象或者freertos不在调用改任务。

使用特权

评论回复
沙发
工程师犹饿死| | 2024-8-28 19:01 | 只看该作者
在FreeRTOS环境下,多个任务可能会请求DMA资源。

使用特权

评论回复
板凳
bbstr1| | 2024-8-28 19:22 | 只看该作者
”接入产品上” 是什么意思?

使用特权

评论回复
地板
公羊子丹| | 2025-3-16 07:50 | 只看该作者
这个问题可能是DMA资源被占用导致的,检查一下是否有其他任务或者中断在争夺DMA权限?

使用特权

评论回复
5
周半梅| | 2025-3-16 07:51 | 只看该作者
你用的网口芯片是哪款?有些芯片在高负载下可能会出现资源死锁的情况,需要特殊处理。

使用特权

评论回复
6
帛灿灿| | 2025-3-16 07:54 | 只看该作者
试试在出问题时打印 DMA_SxCR 和 DMA_LISR/HISR 寄存器的值,看是否有错误标志或者通道被占用。

使用特权

评论回复
7
童雨竹| | 2025-3-16 07:55 | 只看该作者
你在复位网口芯片和重新初始化时,有没有确保相关任务和中断都已经停掉?否则可能会导致冲突。

使用特权

评论回复
8
万图| | 2025-3-16 07:56 | 只看该作者
运行 FreeRTOS 的 uxTaskGetSystemState() 或 vTaskList() 看看任务状态,有没有出现异常的任务挂起或者进入 Blocked 状态?

使用特权

评论回复
9
Wordsworth| | 2025-3-16 07:57 | 只看该作者
试着增加上传间隔,比如改成 1s 或 2s,看看是否是因为 500ms 过短导致资源无法及时释放。

使用特权

评论回复
10
Bblythe| | 2025-3-16 07:58 | 只看该作者
你有使用 LWIP_NETCONN_SEM_PER_THREAD 选项吗?如果网络栈中的信号量管理不当,可能会导致任务卡死。

使用特权

评论回复
11
Pulitzer| | 2025-3-16 07:59 | 只看该作者
在产品环境下数据量是不是比测试时大?检查下 lwIP 的 TCP/IP 任务优先级是否太低,导致数据无法及时处理。

使用特权

评论回复
12
Uriah| | 2025-3-16 08:00 | 只看该作者
复位网口芯片的时候,建议先完全释放 lwIP 资源,比如调用 netif_remove(),然后重新 netif_add(),这样可以避免部分资源未释放导致的死锁。

使用特权

评论回复
13
Clyde011| | 2025-3-16 08:01 | 只看该作者
试试打开 LWIP_DEBUG 和 FREERTOS_TRACE,看看死锁或者卡死点是在哪个具体函数上发生的,可能会有更明确的线索。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝