Hello World驱动程序
1.头文件(必选) |
2.模块参数(可选) |
3.模块功能函数(可选) |
4.其他(可选) |
5.模块加载函数(必选) |
6.模块卸载函数(必选) |
7.模块许可声明(必选) |
1. 头文件(必选)
#include <linux/module.h>
#include <linux/init.h>
2. 模块参数(可选)
3. 模块加载函数(必选)
模块加载时,需要执行的函数
4. 模块卸载函数(必选)
模块卸载时,需要执行的函数
5. 模块许可声明(必选)
MODULE_LICENSE(“GPL”);
/*任一版本的GNU公共许可权*/
MODULE_LICENSE(“GPL v2”);
MODULE_LICENSE(“GPL and additional rights”);
MODULE_LICENSE(“Dual
BSD/GPL”);
/*BSD/GPL双重许可权*/
MODULE_LICENSE(“Dual MPL/GPL”);
MODULE_LICENSE(“Proprietary”);
/*专有许可权*/
Hello.c 代码:
#include<linux/init.h>
#include<linux/module.h>
staticint hello_init(void)
{
printk(KERN_ALERT "Hello, World\n");
return 0;
}
staticvoid hello_exit(void)
{
printk(KERN_ALERT "Goodbye,World\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("DualBSD/GPL");
MODULE_AUTHOR("Chaos.tong");
Makefile文件:
KERNELDIR=
/opt/FriendlyARM/mini2440/linux-2.6.32.2
PWD
:=$(shell pwd)
INSTALLDIR=/lib/modules/2.6.32.2-FriendlyARM
CROSS_COMPILE= arm-linux-
CC=$(CROSS_COMPILE)gcc
obj-m
:=hello.o
.PHONY:modulesmodules_install clean
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD)
modules
modules_install:
cp hello.ko $(INSTALLDIR)
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko*.mod.c
.tmp_versions
执行make 命令,
生成的hello.ko 放进U盘,传到板子上。