先看下Cortex-M3权威指南上面的说法:
如果在总线接口上还有未完成的(outstanding)数据传送,例如有一个带缓冲的写 操作未完成,处理器也只能等待此传送完成。这是迫不得以的——只有这样,才能保证在发 生了总线fault时,其服务例程能够安全地抢占其它程序。
也即:如果当ARM在访问总线数据时,比如访问FSMC这种外设总线,即使在访问的过程中发生了中断,处理器也不会立即去处理中断数据,而是等待总线数据传输完成后再去执行中断数据。
这点很有用,比如我们在用ARM去读取FPGA数据时,如果高优先级的中断来了,高优先级中断也需要读取FPGA的数据,那么如果没有上述的机制,就会导致读取的数据错乱。