lwip BUG ,导致 系统 死机

pcb->snd_queuelen >= pbuf_clen(next->p)

 sys_arch_assert: 1182 in ..\..\User\lwip\src\core\tcp_in.c, pcTaskGetTaskName:vPppDataReciveP.

pbuf_free: p->ref > 0

 sys_arch_assert: 747 in ..\..\User\lwip\src\core\pbuf.c, pcTaskGetTaskName:vPppDataReciveP.

mem_free: mem->used

 sys_arch_assert: 448 in ..\..\User\lwip\src\core\mem.c, pcTaskGetTaskName:vPppDataReciveP.

pcb->snd_queuelen >= pbuf_clen(next->p)

上面 是  lwip 断言 打印的信息,还不知道怎么处理

 

上面分析,是 要发送的 消息PUBF 大于  可用的  pubf。。

因此 增大 内存空间 即可解决 bug..       

 #define MEM_SIZE                (4*1024)

转载于:https://www.cnblogs.com/suozhang/p/9317770.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
lwip是一个轻量级的网络通讯协议栈,用于嵌入式系统中实现TCP/IP通讯。而IAR是一款嵌入式开发工具,用于编译和调试嵌入式系统的程序。要在没有操作系统的嵌入式系统上移植lwip,可以通过以下步骤实现: 首先,需要将lwip的源码加入到项目中,并进行必要的配置。lwip的源码通常会包括TCP/IP协议栈的实现,以及与操作系统、硬件相关的部分。因为目标系统没有操作系统,所以需要根据实际情况修改lwip的配置,包括内存管理、任务调度等相关设置。 其次,需要根据目标硬件编写lwip的底层驱动程序,以适配目标系统的网卡或者以太网控制器。这部分工作涉及到硬件接口的调试和适配,需要对目标系统的硬件结构和寄存器进行深入了解。 接着,需要在IAR开发环境中编写应用程序,包括实现网络通讯的功能,并与lwip协议栈进行集成。这部分工作包括网络套接字的编程,数据包的发送和接收等。 最后,需要进行调试和测试工作,确保lwip在目标系统上能够正常工作,实现基本的网络通讯功能。这其中可能需要借助IAR提供的调试工具,对程序进行逐步调试和性能优化。 通过以上步骤,就可以在没有操作系统的嵌入式系统上成功移植lwip,并利用IAR进行开发和调试。这样就能够在嵌入式系统中实现基于TCP/IP协议的网络通讯功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值