J'utilise une puce compatible cryptoauthlib pour une carte sur laquelle je travaille. Il dispose d'une zone de configuration programmable par l'utilisateur, qui contient l'EUI-64 de l'appareil.
Je voudrais l'utiliser comme source pour luid_base()
pour amener l'EUI-64 aux interfaces réseau connectées.
J'ai commencé à implémenter luid_base()
en récupérant l'EUI-64 à partir de la puce cryptographique à la volée. Mais après cela, RIOT n'est pas en mesure de démarrer.
Le problème est que luid_base()
est appelé avant l'exécution de la fonction cryptoauthlib auto_init, ce qui entraîne un échec du démarrage.
J'ai pu résoudre ce problème en réorganisant le fichier auto_init. L'ancien ordre :
Le nouvel ordre:
Quelqu'un d'autre rencontre-t-il des difficultés similaires ? Ou est-ce que j'utilise RIOT à tort ?
Je pense que ce que vous voulez vraiment est #12641
Cela s'est malheureusement bloqué lorsqu'il s'agissait de la bonne façon de gérer plusieurs netifs et plusieurs EUI…
J'ai une branche où j'ai commencé à attribuer des identifiants uniques (croissants) aux netifs afin qu'ils puissent être utilisés par board_get_eui64()
- je devrais probablement terminer cela.
Agréable! Cela résoudrait mon conflit. Le seul problème restant est que les fonctions netif auto_init sont appelées avant la fonction cryptoauthlib auto_init. Serait-ce une solution acceptable de réorganiser les fonctions auto_init ?
La commande a probablement besoin d'un nettoyage - il y en a déjà une en cours : #13542
La commande a probablement besoin d'un nettoyage - il y en a déjà une en cours : #13542
Celui-là ne réorganise _pas_ les appels de fonction (et comme il est déjà assez gros et pas très facile à suivre, je préférerais faire le réordonnancement dans un PR séparé).
Oui, mais si @jue89 veut réorganiser quelque chose, il devrait probablement attendre que ce PR soit passé en premier, sinon un méchant conflit de fusion est garanti.
Commentaire le plus utile
Oui, mais si @jue89 veut réorganiser quelque chose, il devrait probablement attendre que ce PR soit passé en premier, sinon un méchant conflit de fusion est garanti.