OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5411|回复: 2

LWIP+UCOSIII发送大量数据时卡死

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2021-9-2
在线时间
9 小时
发表于 2021-11-27 14:29:12 | 显示全部楼层 |阅读模式
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(); 吗?

谢谢!



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

385

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1023
金钱
1023
注册时间
2019-9-21
在线时间
269 小时
发表于 2021-11-27 15:14:53 | 显示全部楼层
回复 支持 反对

使用道具 举报

5

主题

179

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
8194
金钱
8194
注册时间
2016-9-7
在线时间
1113 小时
发表于 2021-11-28 18:57:13 | 显示全部楼层
合格的二楼啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 16:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表