OpenEdv-开源电子网
标题:
LWIP+UCOSIII发送大量数据时卡死
[打印本页]
作者:
ExcaliburXP
时间:
2021-11-27 14:29
标题:
LWIP+UCOSIII发送大量数据时卡死
STM32F407的板子,UCOS版本3.0.3,先后尝试了LWIP1.4.1和2.1.2,结果相同。测试程序:两个主线程做TCP服务端,监听两个不同的端口,各开一个子线程用于发送数据。其中一个子线程每10ms发送一包40*1024字节的数据包到客户端。
客户端程序在电脑上。
实验现象:
在os_cfg.h中#define OS_CFG_ISR_POST_DEFERRED_EN 1u,实验多次,最长不超过10分钟,LWIP卡死在等待某信号量上。卡死后大约2秒,串口信息提示memp_pool已满。
在os_cfg.h中#define OS_CFG_ISR_POST_DEFERRED_EN 0u,实验两小时,程序运行正常,没有卡死。
在os_cfg.h中#define OS_CFG_ISR_POST_DEFERRED_EN 1u,且在ETH中断函数void ETH_IRQHandler(void)中,添加OSIntEnter();和OSIntExit(); 实验半小时,程序运行正常,没有卡死。
请问:
#define OS_CFG_ISR_POST_DEFERRED_EN 1u 开始延迟中断 功能与OSIntEnter();和OSIntExit(); 有何关联?开启延迟中断后,在有系统操作的中断函数中必须使用OSIntEnter();和OSIntExit(); 吗?
谢谢!
作者:
gjs13030247996
时间:
2021-11-27 15:14
可以参考一下这个链接看一下:
https://www.cnblogs.com/shanshuilanren/p/3669674.html
作者:
lrzxc
时间:
2021-11-28 18:57
合格的二楼啊
欢迎光临 OpenEdv-开源电子网 (http://www.openedv.com/)
Powered by Discuz! X3.4