嵌入式技术
内核版本头文件
#include < linux/module.h >
#include < linux/kernel.h >
#include < linux/init.h >
MODULE_LICENSE("GPL");
MODULE_AUTHOR("CurryCoder");
MODULE_DESCRIPTION("hello module");
MODULE_VERSION("V1");
static int __init hello_start(void)
{
printk(KERN_INFO "loading hello modulen");
printk(KERN_INFO "hello worldn");
return 0;
}
static void __exit hello_end(void)
{
printk(KERN_INFO "exit module");
}
// 模块加载时使用的钩子函数
module_init(hello_start);
// 模块卸载时使用的钩子函数
module_exit(hello_end);
.PHONY: all clean
obj-m=hello.o
all:
make -C /lib/modules/${shell uname -r}/build/ M=${shell pwd} modules
clean:
make -C /lib/modules/${shell uname -r}/build/ M=${shell pwd} clean
# -C参数表示进入到/lib/modules/${shell uname -r}/build/目录下并找到此目录下的Makefile文件
# -M参数表示构建模块的位置
modprobe命令加载/卸载模块
hello驱动模块插入与卸载
全部0条评论
快来发表一下你的评论吧 !