Riot: auto_init関数の順序

作成日 2020年03月03日  ·  5コメント  ·  ソース: RIOT-OS/RIOT

説明

作業中のボードにcryptoauthlib互換チップを使用しています。 これは、デバイスのEUI-64を保持するユーザープログラム可能な構成ゾーンを備えています。

これをluid_base()のソースとして使用して、EUI-64を接続されたネットワークインターフェイスに接続します。

オンザフライで暗号チップからEUI-64をフェッチすることでluid_base()実装を開始しました。 しかし、そうすると、RIOTは起動できなくなります。

問題は、cryptoauthlib auto_init関数が実行される前にluid_base()が呼び出され、起動に失敗することです。

auto_initを並べ替えることで、この問題を解決できました。 古い注文:

  • ランダム
  • xtimer
  • cryptoauth

新しい注文:

  • xtimer
  • cryptoauth(xtimerが必要)
  • ランダム(luid_baseが必要であり、したがって、私の場合はcryptoauthlibが必要です)

他の誰かが同様の問題を経験していますか? それとも、RIOTを間違って使用していますか?

sys bug enhancement

最も参考になるコメント

はい。ただし、 @ jue89が何かを並べ完了するのを待つ必要があります。そうしないと、厄介なマージの競合が保証されます。

全てのコメント5件

本当に欲しいのは#12641だと思います
残念ながら、複数のnetifと複数のEUIを処理する正しい方法になると、これは行き詰まりました…

board_get_eui64()で使用できるように一意の(昇順)IDをnetifに割り当て始めたブランチがあります-おそらくそれを終了する必要があります。

良い! これは私の対立を解決するでしょう。 残っている唯一の問題は、netifauto_init関数がcryptoauthlibauto_init関数の前に呼び出されることです。 auto_init関数を並べ替えることは許容できる解決策でしょうか?

注文にはおそらくクリーンアップが必要です-現在進行中の1つがあります:#13542

注文にはおそらくクリーンアップが必要です-現在進行中の1つがあります:#13542

それは関数呼び出しを並べ替えません(そして、それはすでにかなり大きく、追跡するのが非常に簡単ではないので、私は別のPRで並べ替えをしたいと思います)。

はい。ただし、 @ jue89が何かを並べ完了するのを待つ必要があります。そうしないと、厄介なマージの競合が保証されます。

このページは役に立ちましたか?
0 / 5 - 0 評価