码迷,mamicode.com
首页 > 其他好文 > 详细

设备驱动之HelloWorld

时间:2015-02-27 13:23:36      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

早先接触设备驱动开发,便写过一个helloworld,今回首,突然发现不会写了,太可怕,熬夜伤脑啊,赶紧记下。

基本流程:

写hello.c 和 Makefile文件  --->make ——> sudo insmod hello.ko———> dmesg | tail 查看打印的文字  —-> lsmod查看  ———> sudo rmmod hello

 插入模块后,/sys/module/下可以看到hello模块

hello.c文件:

 

#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void){

    printk(KERN_ALERT "Hello , World\n"); //内核空间里没有printf,用printk
    return 0;

}

static void hello_exit(void){
    printk(KERN_ALERT "Goodbye , World\n");
}

module_init(hello_init);
module_exit(hello_exit);

 

Makefile文件:

ifeq ($(KERNELRELEASE),)
    #KERNELDIR ?= /home/liang/driverModel/linux-3.18.4 #下载的kernel,为编译,无效
    KERNELDIR ?= /lib/modules/3.13.0-44-generic/build   #当前系统的kernel
    PWD := $(shell pwd)
modules:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules      #make -c 内核路径 M=模块路径 modules
modules_install:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
    rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions 
else
    obj-m := hello.o
endif

 

设备驱动之HelloWorld

标签:

原文地址:http://www.cnblogs.com/zhongyuan/p/4302966.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!