簡體   English   中英

在內核中添加中斷服務程序

[英]Adding Interrupt service routine in kernel

我正在嘗試添加一個開關/ GPIO中斷。 我想將其編寫為內核源代碼樹的一部分。 構建內核映像並部署到我的自定義板后,它必須以proc / interrupts的形式出現。 我已經寫了模塊,如果執行insmod,它就可以正常工作。 與其單獨編譯,我不希望它成為內核樹的一部分。 將irq添加到內核源代碼的步驟是什么。

實際上,如果您已在內核樹中編寫了模塊,則非常簡單:

可以說您將源代碼放置在drivers目錄中,因此層次結構如下所示:drivers / hello Kconfig Makefile hello.c

在驅動程序/ Makefile中,應添加以下內容:

obj-$(CONFIG-HELLO) += hello/

在drivers / Kconfig中,應添加以下內容:

source "drivers/hello/Kconfig"

驅動程序/ hello / Kconfig的示例代碼:

config HELLO
tristate "Hello world module"
default n
help
   Enable Hello world module support

驅動程序/ hello / Makefile的示例代碼:

obj-$(CONFIG_HELLO) += hello.o

drivers / hello.c的示例代碼:

#include <linux/module.h>
#include <linux/moduleparam.h>

...
...

static int __init hello_init(void)
{
   ...
}

static void __exit hello_exit(void)
{
   ...
}

module_init(hello_init);
module_exit(hello_exit);

MODULE_AUTHOR("Obi One Kenoby");
MODULE_DESCRIPTION("Hello Driver");
MODULE_LICENSE("GPL");
MODULE_VERSION("1.0");

現在,您應該可以在make menuconfig中看到hello模塊-為模塊選擇“ m”,為內置選擇“ *”。module_init / module_exit宏可同時使用這兩個選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM