[英]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.