作業中のボードにcryptoauthlib互換チップを使用しています。 これは、デバイスのEUI-64を保持するユーザープログラム可能な構成ゾーンを備えています。
これをluid_base()
のソースとして使用して、EUI-64を接続されたネットワークインターフェイスに接続します。
オンザフライで暗号チップからEUI-64をフェッチすることでluid_base()
実装を開始しました。 しかし、そうすると、RIOTは起動できなくなります。
問題は、cryptoauthlib auto_init関数が実行される前にluid_base()
が呼び出され、起動に失敗することです。
auto_initを並べ替えることで、この問題を解決できました。 古い注文:
新しい注文:
他の誰かが同様の問題を経験していますか? それとも、RIOTを間違って使用していますか?
本当に欲しいのは#12641だと思います
残念ながら、複数のnetifと複数のEUIを処理する正しい方法になると、これは行き詰まりました…
board_get_eui64()
で使用できるように一意の(昇順)IDをnetifに割り当て始めたブランチがあります-おそらくそれを終了する必要があります。
良い! これは私の対立を解決するでしょう。 残っている唯一の問題は、netifauto_init関数がcryptoauthlibauto_init関数の前に呼び出されることです。 auto_init関数を並べ替えることは許容できる解決策でしょうか?
注文にはおそらくクリーンアップが必要です-現在進行中の1つがあります:#13542
注文にはおそらくクリーンアップが必要です-現在進行中の1つがあります:#13542
それは関数呼び出しを並べ替えません(そして、それはすでにかなり大きく、追跡するのが非常に簡単ではないので、私は別のPRで並べ替えをしたいと思います)。
はい。ただし、 @ jue89が何かを並べ完了するのを待つ必要があります。そうしないと、厄介なマージの競合が保証されます。
最も参考になるコメント
はい。ただし、 @ jue89が何かを並べ完了するのを待つ必要があります。そうしないと、厄介なマージの競合が保証されます。