我很想知道,因为它似乎有所不同(例如WFI和WFE是单独的指令),但我无法确切地指出这一点。
答案 0 :(得分:5)
几年后,我发现这个问题很受欢迎,同时我也从经验中理解了答案。
事件被实现为进入MCU ARM内核的线路,以及内存总线(实际上内核也可以生成事件,线路是单向的,点对点专用,这不是总线),因此外围设备或其他即使MCU中没有总线仲裁器(我猜它们的总线频率也是时钟),核心也可以提升这些线路,以便在任何内存总线管理或指令执行之外将内容实时告诉核心。
这些事件然后由核心处理,并且通过翻转来提高事件进入程序世界的一种方法(更确切地说,将线路插入NVIC,可以将其解释为中断),通过翻转通过重新启动核心时钟,可以将其中一个核心寄存器中的一个位置,或者可以将它们插入DMA外设以启动或停止传输。整个逻辑部分专门用于核心中的事件管理,掩盖它们,将它们用作异常源或DMA动作源。
事件列表由MCU实施者决定,他们可以决定使用NVIC,DMA或将它们连接到PLD逻辑(某些cypress MCU可以触发来自PLD部分的DMA或中断)。
处理事件的绝对最常见的方法是忽略它,第二种最常见的方法是发送异常来执行某些代码。
答案 1 :(得分:3)