2013-05-03 107 views

回答

3

這兩條指令均用於電源管理/保存。雖然WFI應該暫停核心直到發生中斷或異常,但WFE也將等待「事件」,該事件可由SEV指令發送。

它是執行定義指令實現的級別,它們可能只是NOP。因此,例如,您不能相信在WFE返回時確實發生了中斷或「事件」。

+1

@nraynaud:然而,答案包含你的問題的答案。事件不是中斷,而是中斷事件。 – unixsmurf 2013-05-03 09:18:11

2

幾年後,我看到這個問題很受歡迎,同時我通過經驗瞭解了答案。

事件實現爲進入MCU ARM內核的線路,以及內存總線(實際上內核也可以生成事件,線路是單向和點對點專用,這不是總線),因此外設或即使MCU中沒有總線仲裁器(我猜他們是在總線頻率上進行計時,tho),其他內核也可以將這些線路實時地提供給內核總線管理或指令執行外的內核。

然後這些事件由核心處理,並且通過引發中斷(更確切地說,將線路插入NVIC,可以將其解釋爲中斷),使事件進入程序世界,通過重新啓動核心時鐘或者將它們插入DMA外設來啓動或停止轉移,可以在其中一個內核寄存器中翻轉一點。整個邏輯部分專門用於核心中的事件管理,以掩蓋它們,將它們用作異常源或作爲DMA操作的來源。事件列表由MCU實施者決定,他們可以決定使用NVIC,DMA或將它們連接到PLD邏輯(一些cypress MCU可以觸發DMA或從PLD部分中斷)。

處理事件的絕對最常見的方式是忽略它,第二個最常見的方法是發送異常來執行某些代碼。

相關問題