我想編寫Raspberry pi 2上按鈕中斷的代碼。此板使用QUAD Core Broadcom BCM2836 CPU(ARM架構)。這意味着,該主板上只有一個CPU(Raspberry pi 2)。但我不知道如何在多核系統中斷。我想知道中斷線是連接到每個核心還是一個CPU。所以,我通過谷歌找到了這一段。中斷在多核系統中如何工作?
多核系統上的中斷 在多核系統上,每個中斷都指向一個(且只有一個)CPU,但哪個並不重要。這種情況如何發生在電路板上的可編程中斷控制器芯片的控制之下。當您在系統啓動時初始化PIC時,您可以對它們進行編程,以便將中斷傳遞給您想要的任何CPU;在一些PIC上,你甚至可以在每次CPU關閉時在CPU之間進行輪詢。
這是否意味着每個CPU都會發生中斷?我無法理解上面的信息。如果每個內核發生中斷,我必須考慮關鍵按鈕的每個中斷服務例程上共享數據的關鍵部分。
如果中斷髮生在每個CPU上,我不必考慮共享數據的關鍵部分。什麼是正確的?
總結一下,我想知道在多核系統中如何中斷?中斷線是否連接到每個核心或CPU?那麼,我是否應該考慮同一中斷的關鍵部分?
你檢查了嗎? http://stackoverflow.com/questions/11811276/how-do-interrupts-work-on-multicore-arm-cpu?rq=1 – HRgiger
總之; 「取決於中斷控制器的能力,以及如何設置」。 IIRC 2836上的中斷控制器有點「特殊」。 – Notlikethat
[使用GIC的SMP ARM系統上的中斷處理]的可能重複(http://stackoverflow.com/questions/23107876/interrupt-handling-on-an-smp-arm-system-with-gic);這個問題專門針對Linux,但答案並不依賴於此。 –