RT-Thread-packages / at_device

AT component porting or samples for different devices
Apache License 2.0
218 stars 181 forks source link

AT DEVICE调试遇到BUG? #64

Closed bevis-wong closed 5 years ago

bevis-wong commented 5 years ago

首先肯定一下最新版AT DEVICE整体上精简了很多无用的代码,整体更加工整,最近调试发现的问题,因为加入了网卡设备管理的特性,(SIM7600)第一次开机初始化完成后总会去执行CDNSGIP,然后创建UDP连接(此处占用0号链路),而且这个UDP连接的IP还是空的,i并且还CIPSEND了一些东西出去,完成后就关闭0号链路,这些操作看起来好像也没什么问题。问题1: 但是当用户再次创建TCP时,分配的链路不再是0号,尽管此时检查到链路全是空的,链路序列号依然会递增到1号链路。 问题2: 在问题1的基础上,因为第一次开机先CDNSGIP,再创建UDP连接。而此时用户在网卡驱动初始化完成后需要打开webclient, POS一个URL,并等待HTTP Read FIFO的过程中。及其容易与正在创建的UDP+发送某些东西 ,这个步骤冲突而导致用户的网络应用错乱。而最后定位在了第一次开机后总会调用这个 “sim76xx_domain_resolve”,才会触发UDP。 尝试过规避这个现象

  1. 初始化完成后,加3秒延时,让sim76xx_domain_resolve跑完,再执行我用户网络应用。但是会出现链路一直递增的问题(问题1).
  2. 把 “sim76xx_domain_resolve”函数里面实现屏蔽,相当于网卡设备执行了个空函数,也依然会触发UDP+发送一些东西上去,到头来程序触发的异常更诡异。 论坛上有详细的运行截图 https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=421622&page=1#pid464114
Lawlieta commented 5 years ago

已在贴吧中回复,建议 sim76xx 驱动使用 laster 版本软件包,有修复部分 socket 创建和关闭时存在问题