一、核心概念比喻
想象一下工廠里的一個報警系統:
?中斷 (Interrupt)??:就像火警警報器響了。它的目的是通知管理員(CPU)??:“著火了!”。管理員聽到后,會停下手中的工作(保存現場)?,跑去執行一系列的救火操作(中斷服務程序)?,完成后再回到原來的工作。
- ?核心:CPU參與,執行程序。??
?事件 (Event)??:就像報警器直接連動了自動噴淋系統。報警信號產生后,?并不需要通知管理員,而是直接觸發一個硬件動作——噴水。整個過程由硬件自動完成,CPU甚至可以在一旁睡大覺,完全不知情。
- ?核心:硬件自動完成,無需CPU參與。?
二、路徑
中斷 (Interrupt) 路徑
- ?信號產生?:某個外設(如定時器溢出、串口收到數據)產生一個信號。
- ?通往CPU?:這個信號被發送到NVIC(嵌套向量中斷控制器)?。
- ?CPU響應?:NVIC通知CPU內核,CPU會暫停當前正在執行的主程序,?跳轉到預先寫好的中斷服務程序(ISR)?。
- ?軟件執行?:在ISR中,?通過軟件代碼完成所需操作,例如讀取數據、清除標志位、翻轉LED等。
- ?返回?:ISR執行完畢后,CPU返回主程序繼續執行。
?關鍵?:?全程需要CPU參與,占用CPU資源。
事件 (Event) 路徑
- ?信號產生?:同樣的,某個外設產生一個信號。
- ?硬件直連?:這個信號不通往NVIC和CPU,而是通過芯片內部一個叫做 ??“事件線”?? 的專用硬件路徑,?直接觸發另一個外設的某個動作。
- ?硬件自動執行?:目標外設自動地、由硬件完成特定操作。
- 經典例子:用一個定時器的更新事件(Update Event)去觸發ADC的采樣開始。整個過程由硬件聯動,無需任何代碼參與,CPU可以休眠以節省功耗。
?關鍵?:?全程硬件自動完成,不占用CPU資源,速度極快。