1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在努力在 nonos sdk V2.1.0 中使用混杂模式 api,并且我*有时*在注册回调后立即崩溃。从转储中可以看出,这似乎位于 sdk 的深处,并且它正在尝试找到 128 字节缓冲区中的一个来将接收的数据包放入其中。但是,没有缓冲区,系统陷阱。
奇怪的是,当系统重新启动时,它通常会在下一次工作。 我正在使用 Nodemcu LUA 固件(我是贡献者之一),因此没有简单的复制。设置混杂模式的特定代码是 wifi_station_set_auto_connect(0); os_delay_us(1000); wifi_set_opmode_current(1); os_delay_us(1000); wifi_promiscuous_enable(0); os_delay_us(1000); wifi_station_disconnect(); os_delay_us(1000); wifi_set_promiscuous_rx_cb(wifi_rx_cb); wifi_set_channel(1); wifi_promiscuous_enable(1); 我添加了os_delay_us电话,以防万一,但它似乎没有任何区别。 两个问题: 1)有没有人看到过这种失败? 2) 以上看起来是进入混杂监视模式的合理顺序吗? |
|
相关推荐
1个回答
|
|
从您的描述来看,这个问题可能是由于内存不足或者缓冲区管理不当导致的。以下是一些建议来解决这个问题:
1. **检查内存使用情况**:首先,检查您的程序在运行时的内存使用情况。如果内存不足,可能会导致缓冲区分配失败。您可以使用一些内存分析工具来帮助您找到内存泄漏或者不必要的内存占用。 2. **增加缓冲区大小**:尝试增加缓冲区的大小,看看是否能够解决崩溃问题。这可能需要修改 Nonos SDK 的源代码,以便为接收数据包分配更多的内存。 3. **优化缓冲区管理**:检查您的程序中是否有不必要的缓冲区分配和释放操作。确保在不需要缓冲区时及时释放它们,以避免内存泄漏。 4. **使用错误处理**:在您的代码中添加错误处理逻辑,以便在遇到问题时能够及时发现并采取相应的措施。例如,当缓冲区分配失败时,您可以记录错误信息并尝试重新分配缓冲区。 5. **更新 NodeMCU LUA 固件**:您提到您是 NodeMCU LUA 固件的贡献者,可以考虑更新固件以修复可能存在的问题。同时,确保您的固件与 Nonos SDK V2.1.0 兼容。 6. **联系 Nonos SDK 开发者**:如果问题仍然存在,您可以尝试联系 Nonos SDK 的开发者,向他们报告这个问题,并提供详细的错误信息和您的代码。他们可能会提供一些解决方案或者修复这个问题。 7. **尝试其他版本**:如果可能的话,您可以尝试使用 Nonos SDK 的其他版本,看看问题是否仍然存在。有时候,问题可能是由于特定版本的 bug 导致的。 8. **使用其他库或工具**:如果问题仍然无法解决,您可以考虑使用其他库或工具来实现混杂模式的功能,或者寻找替代方案。 希望这些建议能帮助您解决问题。祝您好运! |
|
|
|
只有小组成员才能发言,加入小组>>
1153 浏览 1 评论
583浏览 6评论
480浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
465浏览 5评论
466浏览 4评论
441浏览 4评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 10:23 , Processed in 0.816755 second(s), Total 79, Slave 63 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号