Riot: auto_init 函数的顺序

创建于 2020-03-03  ·  5评论  ·  资料来源: RIOT-OS/RIOT

描述

我正在为我正在开发的电路板使用与 cryptoauthlib 兼容的芯片。 它具有用户可编程的配置区域,其中包含设备的 EUI-64。

我想使用它作为luid_base() ,将 EUI-64 带到附加的网络接口。

我开始通过即时从加密芯片中获取 EUI-64 来实现luid_base() 。 但是这样做之后,RIOT 无法启动。

问题是luid_base()在执行 cryptoauthlib auto_init 函数之前被调用,导致启动失败。

我能够通过重新排序 auto_init 来解决这个问题。 旧秩序:

  • 随机的
  • 定时器
  • 密码验证

新秩序:

  • 定时器
  • 密码验证(需要 xtimer)
  • 随机(在我的情况下需要 luid_base,因此需要 cryptoauthlib)

有没有其他人遇到类似的困难? 还是我错误地使用了 RIOT?

sys bug enhancement

最有用的评论

是的,但是如果@jue89想要重新订购某些东西,他可能应该先等待这个 PR 完成,否则

所有5条评论

我想你真正想要的是#12641
不幸的是,当涉及到处理多个 netifs 和多个 EUI 的正确方法时,这被卡住了……

我有一个分支,在那里我开始为 netifs 分配唯一的(升序)ID,以便board_get_eui64()可以使用这些 ID - 我应该完成它。

好的! 这将解决我的冲突。 唯一剩下的问题是 netif auto_init 函数在 cryptoauthlib auto_init 函数之前被调用。 重新排序 auto_init 函数是一个可以接受的解决方案吗?

订单可能需要清理 - 现在已经有一个正在进行的:#13542

订单可能需要清理 - 现在已经有一个正在进行的:#13542

那个_不_重新排序函数调用(并且由于它已经很大并且不太容易跟踪,我更愿意在单独的 PR 中重新排序)。

是的,但是如果@jue89想要重新订购某些东西,他可能应该先等待这个 PR 完成,否则

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

nikosft picture nikosft  ·  6评论

jcarrano picture jcarrano  ·  7评论

l3nko picture l3nko  ·  7评论

jia200x picture jia200x  ·  5评论

kaspar030 picture kaspar030  ·  3评论