linux驱动模板

kehuadong / 2023-07-29 / 原文

  1.  最基本
#include <linux/module.h>    // 需要测试是否还需要其他头文件

static int __init led_init(void) {
}


static void __exit led_exit(void) {
}

module_init(led_init);            // 驱动初始化
module_exit(led_exit);            // 驱动退出
MODULE_LICENSE("GPL");            // 协议
MODULE_AUTHOR("zuozhongkai");     // 作者

Maefile脚本

KERNELDIR := /home/khd/linux/IMX6ULL/linux/alientek_linux    # 内核源码目录
CURRENT_PATH := $(shell pwd)                                 # 当前目录

obj-m := gpioled.o   # 驱动用到的目标文件

build: kernel_modules

kernel_modules:
	$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules

clean:
	$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean

2. 两种设备