使用esp32模块开发一个传感安防产品,基于esp-idf-3.0.1-rc sdk。
经过大量测试,目前稳定复现一个问题,问题比较复杂,描述如下,烦请仔细阅读:
在程序主函数app_main中,读取nvs区保存的标记,判断应工作在softap还是sta模式,伪代码如下:
app_main()
{
..... //初始化
mode = get_mode_from_flash();
if(mode)
{
wifi_init_softap();
}
else
{
wifi_init_sta();
...... //应用线程//
}
}
若为softap模式,启动softap后,等待移动设备(手机)连接wifi。
若为sta模式,启动sta连接路由器wifi,然后执行一系列创建任务线程的代码。
现在的情况是:
1. sta模式工作正常;
2. softap模式,启动后,部分手机可以搜索到esp32热点但连接不成功,连接过程中没有任何日志打印。
如果将sta模式启动后的代码注释掉或封装成一个函数,则这些手机可以正常连接并获取到ip。
但这些代码在softap模式下其实根本不会运行(已经过日志验证,只执行if分支,不执行else分支),理论上不可能影响到softap模式的稳定性,况且只影响部分手机,例:华为荣耀畅玩5X
以上现象100%复现,超出我能理解的范畴,希望得到一些帮助。
esp32 softap模式兼容性问题
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: esp32 softap模式兼容性问题
当前 v3.0 最新的 bugfix 版本为 v3.0.7,https://github.com/espressif/esp-idf/re ... tag/v3.0.7,请用最新版本做下测试,看问题是否还存在。如果仍旧存在,请提供复现问题的最精简工程,包含 sdkconfig 文件;也同时提供你测试时的 log。
谢谢
谢谢
Re: esp32 softap模式兼容性问题
Hi,
感谢回复,在测试之前我想有几个关于版本的疑问。
v3.1.x和v3.0.x有个区别是esp_ping,这个是指tcp/ip中的ping命令吗?我没有调用该模块是否可以直接迁移到v3.1.x上?
目前的最新发布版本是什么,github 上好像是v3.1.2, 版本后面有rc和没有rc分别代表什么?
再次感谢。
感谢回复,在测试之前我想有几个关于版本的疑问。
v3.1.x和v3.0.x有个区别是esp_ping,这个是指tcp/ip中的ping命令吗?我没有调用该模块是否可以直接迁移到v3.1.x上?
目前的最新发布版本是什么,github 上好像是v3.1.2, 版本后面有rc和没有rc分别代表什么?
再次感谢。
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: esp32 softap模式兼容性问题
esp_ping 是实现 ping 功能的模块,3.1 相较于 3.0 有些许变动,如果你未用到,是可以直接迁移。
当前最新版本为 3.1.2,rc 是 release candidate,是在正式 release 前发布的版本,不属于正式版本,如果是用作正式产品开发,建议使用 release 版本。
当前最新版本为 3.1.2,rc 是 release candidate,是在正式 release 前发布的版本,不属于正式版本,如果是用作正式产品开发,建议使用 release 版本。
Re: esp32 softap模式兼容性问题
你好,
我直接迁移到最新的v3.1.2版本上,这个问题似乎得以解决了,无论我在else分支中添加什么代码,不会影响到if分支中softap模式的兼容性,之前不能正常连接的手机现在可以连接了,接下来将进一步测试。
如果可以麻烦告知是哪一项bug fix解决了这个问题。
再次表示感谢。
我直接迁移到最新的v3.1.2版本上,这个问题似乎得以解决了,无论我在else分支中添加什么代码,不会影响到if分支中softap模式的兼容性,之前不能正常连接的手机现在可以连接了,接下来将进一步测试。
如果可以麻烦告知是哪一项bug fix解决了这个问题。
再次表示感谢。
Re: esp32 softap模式兼容性问题
这个问题似乎依然存在,只是换了一种表现形式。
现在修改main函数里的代码并不会影响到softap的兼容性,但如果在menuconfig中配置编译优化为release,则会再次出现部分手机无法连接的现象,而配置为debug则工作正常,同样100%复现。
有充分的理由怀疑编译器有问题。
我们的代码量不小,使用debug编译固件太大,需要自己重写flash分区表,而且也比较浪费,希望能得以解决。
现在修改main函数里的代码并不会影响到softap的兼容性,但如果在menuconfig中配置编译优化为release,则会再次出现部分手机无法连接的现象,而配置为debug则工作正常,同样100%复现。
有充分的理由怀疑编译器有问题。
我们的代码量不小,使用debug编译固件太大,需要自己重写flash分区表,而且也比较浪费,希望能得以解决。
Re: esp32 softap模式兼容性问题
请问连接不上的手机型号是什么?用 example/wifi/getting_started/softAP/ 可以复现该问题吗?
Re: esp32 softap模式兼容性问题
这个问题比较奇怪,可以做以下排查
1. 是否使用SPIRAM?是否使用双核?
2. 最好有稳定复现的小代码,如果没有,可以先提供 bin 文件和 log,进行排查。
3. 提供出问题的设备型号。
4. 实在没有办法就只能现场排查了。
1. 是否使用SPIRAM?是否使用双核?
2. 最好有稳定复现的小代码,如果没有,可以先提供 bin 文件和 log,进行排查。
3. 提供出问题的设备型号。
4. 实在没有办法就只能现场排查了。
Who is online
Users browsing this forum: No registered users and 27 guests