10 柿饼M3用at_device来驱动EC200通讯时rt_free断言

发布于 2020-11-20 10:09:40

柿饼M3 SDK 添加at_device来驱动EC200S-CN在关闭socket时出现rt_free函数断言

image.png

上图是用柿饼M3模块做的一个环境控制器的板子,我把原来的WIFI模块去掉了,用于loar(433)串口模块,uart0用来接cat 1模块,还接了一个LED驱动芯片(TM1668)和PCF8574,其他和柿饼派一样。

  • cat 1是可以联网了,可以ping外网,可以使用web_get_testweb_post_test命令

image.png

  • 但是如果使用ntp_sync,就会报(z->z_magic == ZALLOC_SLAB_MAGIC) assertion failed at function:rt_free, line number:828

image.png

  • 使用wget 命令下载一个200k的文件也会报上面的错误

image.png

  • 经过跟踪在webclient_close函数中的closesocket发送了断言

image.png

  • 继续跟踪

image.png
image.png

  • 在 at_sokcet.c中free_socket函数中的下面这部分代码发送的断言

image.png

  • 继续添加打印信息 最终找到断言发送的调用位置

image.png
image.png

  • 是第二次循环调用时出的问题
  • 经过一天的略读ec200x代码并没有发现问题(可能是我的水平不够)。
  • 在 at_socket_ec200x.c中接收相关urc_recv_func只有下面的地方申请了内存

image.png

  • 我接下来把 这部分代码用f429(阿波罗)上测速(同样的系统版本,驱动代码是直接从这个板子的工程考过去的),测试OK

image.png
image.png

想请问一下各位大老这个怎么破?

还有要提一下 原本SDK的rtt版本是3.1.1我把SDK的rtt升级到了3.1.4 SDK版本是刚开始发布的1.4版本

image.png

内存管理不用SLAB 就可以解决问题 但是下载速度变慢了,我还是想搞清楚为什么SLAB会报错!

查看更多

关注者
0
被浏览
61
1 个回答
aozima
aozima 2020-11-20
拒绝白嫖,拒绝键盘侠!

请不要重复发贴 https://club.rt-thread.org/ask/question/429084.html
有更新最好在后面补充。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览