参考驱动程序misc.c头文件。
-
KERN_DIR = /home/sunxiaopeng/src/work/github/k510_buildroot/k510_crb_lp3_v1_2_defconfig/build/linux-4.17 all: make ARCH=riscv CROSS_COMPILE="/home/sunxiaopeng/src/work/github/k510_buildroot/k510_crb_lp3_v1_2_defconfig/host/bin/riscv64-linux-" -C $(KERN_DIR) M=`pwd` modules clean: make ARCH=riscv CROSS_COMPILE="/home/sunxiaopeng/src/work/github/k510_buildroot/k510_crb_lp3_v1_2_defconfig/host/bin/riscv64-linux-" -C $(KERN_DIR) M=`pwd` modules clean #make -C $(KERN_DIR) M=`pwd` modules clean rm -rf modules.order obj-m = first_drv.o
#include <linux/module.h> #include <linux/fs.h> #include <linux/errno.h> #include <linux/miscdevice.h> #include <linux/kernel.h> #include <linux/major.h> #include <linux/mutex.h> #include <linux/proc_fs.h> #include <linux/seq_file.h> #include <linux/stat.h> #include <linux/init.h> #include <linux/device.h> #include <linux/tty.h> #include <linux/kmod.h> #include <linux/gfp.h> // ???????????????? static int __init hello_init(void) { printk(KERN_ALERT "welcome, hello\n"); return 0; } // ??????????????? static void __exit hello_exit(void) { printk(KERN_ALERT "bye, hello\n"); } // ???? MODULE_LICENSE("GPL"); module_init(hello_init); module_exit(hello_exit);