网站首页 > linux / 正文
创建一个最简单的驱动代码文件demo.c:
#include <linux/init.h>
#include <linux/module.h>
int __init demo_init(void)
{
printk("%s, %s, %d \r\n", __FILE__, __FUNC__, __LINE__);
return 0;
}
void __exit demo_exit(void)
{
printk("%s, %s, %d \r\n", __FILE__, __FUNC__, __LINE__);
}
module_init(demo_init);
module_exit(demo_exit);
MODULE_LICENSE("GPL");
- MODULE_LICENSE("GPL") 如果不声明开源协议,编译会报内核污染的警告,因此必须声明,才能使用内核全部功能
创建Makefile (ps:M需要大写):
KERNEL_DIR := /lib/modules/$(shell uname -r)/build
MODULE_DIR := $(shell pwd)
obj-m:=demo.o
all:
make -C $(KERNEL_DIR) M=$(MODULE_DIR) modules
clean:
make -C $(KERNEL_DIR) M=$(MODULE_DIR) clean
- obj-m:编译目标为驱动模块module
- shell uname -r:可取出当前系统kernel的文件夹名
- KERNEL_DIR :用于编译模块的内核路径,这里必须是经过编译的内核,如果是用于嵌入式硬件的驱动,这里应该为嵌入式硬件搭载系统版本的经过编译的内核路径
- MODULE_DIR:当前驱动文件所在路径
ps:本demo可直接用于linux主机测试
make生成目标文件dmeo.ko
Tags:linux设备驱动开发
- 上一篇:总线设备驱动模型
- 下一篇:Linux驱动字符编程LED驱动开发举例
猜你喜欢
- 2024-11-26 Intel开发人员用AMD代码优化Linux驱动:部分游戏帧率提升10%
- 2024-11-26 Linux 网络设备驱动开发《网络分层结构》
- 2024-11-26 「正点原子Linux连载」第五十五章设备树下的platform驱动编写
- 2024-11-26 linux驱动开发-1.概念了解
- 2024-11-26 基于Linux的tty架构及UART驱动详解
- 2024-11-26 Linux中的块设备驱动
- 2024-11-26 linux驱动开发-2.驱动框架
- 2024-11-26 linux 内核之驱动开发需要掌握的知识
- 2024-11-26 英伟达开源Linux图形驱动实测,性能媲美专有驱动
- 2024-11-26 从串口驱动到Linux驱动模型,想转Linux的必会