OpenEdv-开源电子网

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

stm32H7+freertos+lwip调试时大量收发数据会卡死的问题

[复制链接]

2

主题

2

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-8-5
在线时间
10 小时
发表于 2021-10-20 14:00:51 | 显示全部楼层 |阅读模式
5金钱
在调试freertos+lwip时我通过网线直接连接电脑与开发板(stm32做服务端,电脑上的软件作为客户端),ping通后能够收发数据,但是我在测试大量的数据收发时发现,程序会卡在freertos的list.c文件中void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem )函数下的
                for( pxIterator = ( ListItem_t * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext )
                {
                        /* There is nothing to do here, just iterating to the wanted
                        insertion position. */
                }

这个for循环中。
起初我是从以下几个方面来调试的
1、我怀疑堆栈空间给的太小
recv_data = (char *)pvPortMalloc(Server_RX_BUFSZ);//从configTOTAL_HEAP_SIZE中申请内存
然后我将Server_RX_BUFSZ增加到1024,这个问题并没有解决。
2、网上说可能是中断优先级的问题,网络中断优先级不受freertos管理了,所以我将中断优先级分组设置为分组四
HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
将系统滴答定时器优先级设置为15,然后调整网络中断的优先级,从高到低都试了一遍也没有解决
3、还有的说可能是任务堆栈的问题,我打印了系统任务信息,看堆栈和优先级信息:
任务名称 运行状态 优先级 剩余堆栈 任务序号
==============================================
Remote_Access_t        X        8        238        12
Key_Scan_Task          R        5        225        8
TCP/IP                         R        5        892        9
Main_Control_Ta           R        1        179        1
vTASK_MBMasterP        R        1        180        3
IDLE                           R        0        105        6
User_GUI_Task          B        1        87        2
vTASK_MBMasterP        B        5        486        7
PHY_LINK                       B        5        201        11
vTask_Net_Confi          B        1        369        4
Loacl_User_Inte         B        1        454        5
mod_bus_process        B        8        153        13
EthIf                          B        6        1358        10
               
==============================================
B:阻塞,R:就绪,D:删除,S:暂停
任务名称        运行计数        使用率
==========================
Remote_Access_t        962                <1%
vTASK_MBMasterP        153                <1%
TCP/IP                         45                <1%
Key_Scan_Task          18043          5%
Loacl_User_Inte                5323                  1%
User_GUI_Task          56712          18%
vTASK_MBMasterP        3                <1%
Main_Control_Ta                152                <1%
IDLE                           206556          67%
vTask_Net_Confi                16193          5%
PHY_LINK                       563                <1%
EthIf                          25                <1%
mod_bus_process        56                <1%
==========================


在网上搜了也没有明确的答案,已经困扰好几天了,希望有大神能指点一下,谢谢!!



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

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1477
金钱
1477
注册时间
2020-8-19
在线时间
335 小时
发表于 2021-10-20 14:53:30 | 显示全部楼层
回复

使用道具 举报

0

主题

668

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1926
金钱
1926
注册时间
2021-8-13
在线时间
262 小时
发表于 2021-10-20 14:54:54 | 显示全部楼层
帮顶   
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 19:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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