Linux核心中斷

Tyler77發表於2024-08-29

標頭檔案

在vscode中,進行tasklet和work中斷實驗的時候,對於包含的標頭檔案如下兩個一直爆紅:

#include <linux/irq.h>
#include <linux/of_irq.h>

一路追查下來,發現是缺少標頭檔案:

#include <linux/irq.h>  
	-> #include <asm/irq.h>  
		-> #include <mach/irqs.h> (該標頭檔案無法找到)

嘗試瞭如下一些辦法:第二個辦法有效

  1. .vscode/c_cpp_properties.json中新增標頭檔案路徑。(無用,希望有大手子解答)
    追查下來發現,在核心檔案中,本人用的是i.MX6ULL開發板(路徑是./linux/arch/arm/mach-imx)中,嘗試在json檔案中包含該路徑,無果,爆紅無法消除。
  2. 直接註釋掉(有效)
    #ifndef CONFIG_SPARSE_IRQ
    //#include <mach/irqs.h>
    #else
    #define NR_IRQS NR_IRQS_LEGACY
    #endif
    

猜測:
可能是核心版本問題,看檔名發現linux/arch/arm/這個路徑下都是一些晶片的名字。mach開頭的檔名,有可能是匹配之意。推測是晶片中斷的一些匹配標頭檔案,但是使用了裝置樹,所以即使是直接註釋掉也不影響編譯透過。

相關文章