我有一个代码,其中有:
disable_irq(irq_clk);
local_irq_save(flags);我发现disable_irq()禁用了一个特定的中断,另一方面,local_irq_save()禁用了所有的中断。
因此,我想知道上述代码的含义。
发布于 2019-11-30 19:02:12
这是有意义的,因为中断是在不同级别上禁用的。
disable_irq(irq_clk);此代码在interrupt controller中禁用(掩码)中断。如果在此级别禁用了中断,则不会将中断传递到内部中断控制器管道。它不会被排序,也不会被路由到目标CPU。
local_irq_save(flags);此代码禁用CPU IRQ接口级别上的所有中断。中断在通过中断控制器的优先级&路由管道并被断言到CPU后,被传递到CPU IRQ接口。
https://stackoverflow.com/questions/59112033
复制相似问题