【发布时间】:2017-02-14 21:01:01
【问题描述】:
stmfd 指令是否被视为一条指令,这是否意味着它将在处理 IRQ 之前完全执行? 还是看成多条指令,是不是意味着我们要处理IRQ,然后完成stmfd指令?
【问题讨论】:
-
取决于内核,必须分别查看每个内核和/或您拥有的特定内核。
-
您通常不应该关心中断了什么指令。你唯一关心的是这是否与一个(设计不良的)外围设备进行通信,该外围设备对写入起作用,以某种方式,如果一些写入发生然后停止,然后其中一些再次发生(在它们的相同地址)或者它在中断的地方继续,外设的行为与它们在某个时间范围内按顺序发生的情况不同(一个 stm 无论如何都不能确保远端在任何确定的时间范围内得到事情,即使没有被中断)。
-
出于延迟原因,人们可能会关心(或至少认为这很重要)。这取决于核心。一些 CORE 具有控制行为的配置。即,原子的或可重新启动的。较旧的内核总是原子的。通常,这仅与 FIQ 相关。除非您的内存非常慢,否则屏蔽 IRQ 和嵌套的其他地方通常会更长。
标签: arm