CubeMX配置freemodbus(使用FreeRTOS)问题笔记

使用CUBEMX配置Freertos+LWIP工程,移植了freemodbus,正常运行一段时间后崩溃出现下面两个报错:

Assertion "pcb->snd_queuelen >= pbuf_clen(next->p)" failed at line 1111 in../Middlewares/Third_Party/LwIP/src/core/tcp_in.c
Assertion "pbuf_free: p->ref > 0" failed at line 753 in ../Middlewares/Third_Party/LwIP/src/core/pbuf.c

原因是lwip内核任务tcpip_thread和modbus任务优先级设置问题修改后运行正常,目前没有出现掉线崩溃的现象。使用Modebus Poll发送超300000+次暂未出现崩溃(以前发送700+就会崩溃!)

修改方法

#define TCPIP_THREAD_PRIO osPriorityAboveNormal

typedef enum  {
  osPriorityIdle          = -3,          ///< priority: idle (lowest)
  osPriorityLow           = -2,          ///< priority: low
  osPriorityBelowNormal   = -1,          ///< priority: below normal
  osPriorityNormal        =  0,          ///< priority: normal (default)
  osPriorityAboveNormal   = +1,          ///< priority: above normal
  osPriorityHigh          = +2,          ///< priority: high
  osPriorityRealtime      = +3,          ///< priority: realtime (highest)
  osPriorityError         =  0x84        ///< system cannot determine priority or thread has illegal priority
} osPriority;

工程文件附上,供大家参考!

F407ZET7-ETH+LWIP+freemodbus+FreeRTOS+SPI+DMA+IWDG测试通过(带软件)icon-default.png?t=N7T8https://download.csdn.net/download/qq_33288274/88849886

解压后直接打开有时会报错,建议解压后把工程文件放在不带有中文的目录下再打开!

(本人首次使用freemodbus,本文的解决办法也是一遍遍试出来的,可能还有问题,还请各位大佬指出!!一周的努力,希望对大家有所帮助,还请点赞收藏支持一下!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值