zoukankan      html  css  js  c++  java
  • driver makefile

    1、单模块单文件
    //*********************************************
    obj-m := hello.o

    KDIR := /home/akaedu/kernel/linux-2.6.35.7

    all:
        make -C $(KDIR) SUBDIRS=$(PWD) mudules

    .PHONY:clean

    clean:
        -rm -rf *.o *.ko *~ *.mod.*
    //*********************************************

    2、单模块多文件
    //*********************************************
    obj-m := myhello.o
    myhello-objs := hello.o goo.o
    KDIR := /home/akaedu/kernel/linux-2.6.35.7
    (其他同上)
    //*********************************************
    hello.c可直接调用goo.c中的函数,只需在hello.c中声明即可。

    3、多模块
    //*********************************************
    obj-m := hello.o goo.o
    KDIR := /home/akaedu/kernel/linux-2.6.35.7
    (其他同上)

    //*********************************************
    注:其中,goo.c需要导出符号表,EXPORT_SYMBOL(goo),
    供hello.c调用。

    注:在编译模块前,linux源码包(或头文件包)必须经过正确编译,可提供导出符号表。

    安装头文件包:
    sudo apt-get install linux-headers-2.6.32-21-generic
    sudo apt-get install linux-source-2.6.32

    ===================================================================

         #include <linux/init.h>
         #include <linux/module.h>
        
        MODULE_LICENSE(“Dual BSD/GPL”);
        char *who = “world”;
        
        static int hello_init ( void )
        {
            printk(KERN_ALERT “Hello, %s!
    ”, who);
            return 0;
        }
        
        static void hello_exit ( void )
        {
            printk(KERN_ALERT “Goodbye, %s!
    ”, who);
        }
        
        module_init(hello_init);
        module_exit(heool_exit);
        
    //makefile
    ifeq ($(KERNELRELEASE), )
        obj-m    :=hello.o
    else
        KERNELDIR ?= /home/mike/linux-2.6.20
        PWD := $(shell pwd)
    default:
        $(MAKE) –C $(KERNELDIR) M=$(PWD) modules
    clean:
        rm –rf *.o *~ core.depend .*.cmd *.ko *.mod.c
    endif
    
    //注意核对目标平台和交叉编译器:
    ARCH                ?=    arm
    CROSS_COMPILE    ?=    arm-linux-
  • 相关阅读:
    E230的Android历程
    Web.config
    程序集和命名空间 转载
    CSS 得到图片 为什么是负 值。
    JQUERY中 GET与POST方法的区别 Request.QueryString Request.Form区别
    JS中scrollLeft(right,top,bottom)的用法和特点
    ashx是什么文件
    自己写了个 logO图片上 显示问题则CSS样式。CSS可是真强大啊。
    jquery + ashx DropDownList 二级
    CSS与超链接<a><A>的恩怨情仇。。。
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/5572887.html
Copyright © 2011-2022 走看看