This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3301:WLAN_SET_MacAddress 无效

Guru**** 2943400 points

Other Parts Discussed in Thread: CC3301

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1654498/cc3301-wlan_set_macaddress-has-no-effect

器件型号: CC3301

尊敬的 TI 团队:

我们在 STA 模式下通过 MCU 上的 SDIO 使用 CC3301、并 运行 RTOS。 我们正在尝试在 运行时使用 Wlan_Set (WLAN_SET_MACAddress、...) 覆盖 STA MAC 地址。

我们观察到的--

在 Wlan_Role Up () 之后调用 Wlan_Set (WLAN_set_MacAddress):
- Wlan_Get (WLAN_GET_MacAddress) 返回自定义 MAC→主机端 g_fuse_mac_addr 已正确更新。
-但 AP(Wi-Fi 热点) 在关联请求中仍然可以看到 OTP/Fused 硬件 MAC(例如 58:D1:5a:36:77:A2)。
- DHCP 失败,因为帧中的以太网源 MAC 与 DHCP 请求中的 Chaddr 不同。

在 Wlan_Role Up() 之前调用 Wlan_Set (WLAN_set_MacAddress):
-固件似乎进入了错误的传输状态。
-后续命令(例如 ifdown 期间的 Wlan_Disconnect )永远不会收到响应,并且驱动程序被卡住。

问题--

 在 STA 模式下、CC3301 是否支持 WLAN_SET_MACAddress?
   如果是、正确的呼叫顺序是什么
   (在 Wlan_Start 之前/之后、在 Wlan_Role Up 之前/之后)?

 2.如果不支持 WLAN_SET_MacAddress、是否有替代 API
   在关联之前覆盖 STA MAC 地址?

 3. init_device 期间打印的 FW MAC 地址为:
    0x58 0xD1 0x5A 0x36 0x77 0xa2 (STA)
    0x5A 0xD1 0x5A 0x36 0x77 0xa2
    0x5A 0xD1 0x5A 0x36 0x77 0xa3
    0x58 0xD1 0x5A 0x36 0x77 0xa3
   它们是烧录在 OTP 中且不可更改、还是可以覆盖?

环境--

- IC:CC3301
- SDK:cc33xx_RTOS_MCU_PACKAGE_R8.1
-角色:仅限 STA

非常感谢
Austin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Austin:

    您能否附上一些对讲机固件日志(请参阅 dev.ti.com/.../logger_user_guide.html   

    执行这两个序列并记录日志、这应该会告诉我们对讲机子系统上发生了什么情况。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    请按照 Andres 的说明获取日志。 这适用于在角色启动后调用 WLAN_SET()。 对我来说、它不会崩溃。

    至于正确的方式、您需要设置 MAC 地址、然后才能在工作站中进行角色扮演。

    其原因是在工作站角色启动期间、LwIP 会被初始化并需要 MAC 地址。 它将 MAC 地址读取到 LwIP 中、以便从此时开始在每个网络帧上使用。 这就是为什么它使用电子保险丝 MAC 地址,如果你第一次担任工作站的角色。

    顺便说一下、在 WLAN_START () 之前调用和 API 没有意义、因为固件尚未初始化。

    此致、

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    谢谢你。 我们使用在 Wlan_Role () 之前调用的 Wlan_Set (WLAN_set_MacAddress) 进行了重新测试—它现在可以正常工作。
    之前的挂起是由我们的驱动程序(适配层)中的一个不相关的错误引起 的、我们已经修复了这个错误。

    感谢你的帮助。