【问题标题】:wait_event_timeout equivalent in U-bootU-boot 中的 wait_event_timeout 等效项
【发布时间】:2020-03-08 12:57:04
【问题描述】:

我正在寻找 u-boot 中的 wait_event_timeout[1] 等效函数,但找不到相同的函数。

u-boot 有这样的功能吗?

[1]https://github.com/torvalds/linux/blob/master/include/linux/wait.h#L371

【问题讨论】:

    标签: c arm linux-device-driver u-boot


    【解决方案1】:

    U-Boot 以单进程和单线程运行。许多平台都没有启用中断。所以不能实现wait_event_timeout()这样的函数。

    相反,您必须创建一个循环来不断检查事件是否已发生,并在循环中执行让事件发生所需的一切。

    例如查看 efi_wait_for_event() 函数,该函数在循环中调用 efi_timer_check()。 efi_timer_check() 运行所有已注册的基于计时器的函数,例如检查网络接口是否接收到的包。

    【讨论】:

    • 感谢您的回复。我想知道 readx_poll_timeout 是否可以用来模拟与“wait_event_timeout”相同的行为?
    • @Milan,谁来维护这个事件?如果您的 UP 系统禁用了 IRQ,它就无法断言您的事件。对于这样的事情,您可能需要线程/多任务支持,并且至少启用 IRQ 并使用某些周期性中断源(这将需要编写一些调度程序)。
    猜你喜欢
    • 2018-10-31
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    相关资源
    最近更新 更多