私はRW610 をSDK バージョン 25.9 で使用しています。
電力を観察していると、Wi-Fi の初期化が非常に遅いことに気づきました。
これが当社側の実装の問題ではないことを確認するために、wifi_wpa_supplicant に切り替えて、そこで起動を検査しました。
「wlan_init」と「wlan_start」の合計時間はどちらも約5秒です。これは正常でしょうか?
非同期オプションも使用しましたが、同じ時間がかかり、アプリケーションですぐに WLAN が必要になるため、起動時間の短縮には役立ちませんでした。
コードを少し調べてみたところ、2.5~3秒あたりに最初の「遅い部分」が見つかりました。
関数内: sb3_fw_download_impl
// Wait for fw activation for 1s. Return fail if wait_count is used up.
while (wait_count != 0)
{
if (IMU_SYNC_MAGIC_PATTERN != *((volatile uint32_t *)magic_pattern_addr))
{
// 5 ms delay
sb3_DelayUs(1000 * 5);
wait_count--;
if (wait_count == 0)
{
status = kStatus_Fail;
}
}
else
{
status = kStatus_Success;
break;
}
}このコード部分は10:57:33:146に入力されたことに気付きました。
10:57:36:340に帰還しました
3秒以上ですか?上記のコメントでは 1 秒以上待機すべきではないと述べられているため、これは異常な動作であると強く想定しています。
待機時間を 1 秒に短縮すると、コードは失敗します。デバッグしてその前に待機すると、これも即座に実行されるSO、私の結論は、「fw アクティベーション」は機能しているが、示されているよりもはるかに遅いということです。
WLAN の初期化を高速化するにはどのようなオプションがありますか?