Riot: Ordem das funções auto_init

Criado em 3 mar. 2020  ·  5Comentários  ·  Fonte: RIOT-OS/RIOT

Descrição

Estou usando um chip compatível com cryptoauthlib para uma placa em que estou trabalhando. Ele apresenta uma zona de configuração programável pelo usuário, que contém o EUI-64 do dispositivo.

Eu gostaria de usar isso como a fonte de luid_base() para trazer o EUI-64 para as interfaces de rede anexadas.

Comecei a implementar luid_base() obtendo o EUI-64 do chip de criptografia instantaneamente. Mas depois de fazer isso, o RIOT não consegue inicializar.

O problema é que luid_base() é chamado antes que a função cryptoauthlib auto_init tenha sido executada, resultando em uma falha na inicialização.

Consegui resolver esse problema reordenando o auto_init. A velha ordem:

  • aleatória
  • xtimer
  • criptoauth

A nova ordem:

  • xtimer
  • cryptoauth (requer xtimer)
  • aleatório (requer luid_base e, portanto, cryptoauthlib no meu caso)

Alguém mais está passando por dificuldades semelhantes? Ou estou usando RIOT incorretamente?

sys bug enhancement

Comentários muito úteis

Sim, mas se @ jue89 quiser reordenar algo, ele provavelmente deve esperar que este PR passe primeiro, caso contrário, um conflito de mesclagem desagradável é garantido.

Todos 5 comentários

Acho que o que você realmente quer é # 12641
Infelizmente, isso emperrou quando se tratou da maneira certa de lidar com vários netifs e vários EUIs ...

Eu tenho um branch onde comecei a atribuir IDs únicos (ascendentes) a netifs para que eles possam ser usados ​​por board_get_eui64() - provavelmente devo terminar isso.

Bom! Isso resolveria meu conflito. O único problema restante é que as funções netif auto_init são chamadas antes da função cryptoauthlib auto_init. Seria uma solução aceitável reordenar as funções auto_init?

O pedido provavelmente precisa de uma limpeza - já existe uma em andamento agora: # 13542

O pedido provavelmente precisa de uma limpeza - já existe uma em andamento agora: # 13542

Isso _não_ reordena as chamadas de função (e como já é muito grande e não é muito fácil de rastrear, eu preferiria fazer a reordenação em um PR separado).

Sim, mas se @ jue89 quiser reordenar algo, ele provavelmente deve esperar que este PR passe primeiro, caso contrário, um conflito de mesclagem desagradável é garantido.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

hcnhcn012 picture hcnhcn012  ·  5Comentários

sinkarharshad picture sinkarharshad  ·  7Comentários

jia200x picture jia200x  ·  7Comentários

romainvause picture romainvause  ·  3Comentários

pietrotedeschi picture pietrotedeschi  ·  4Comentários