zoukankan      html  css  js  c++  java
  • 驱动的编译方法

    Makefile

    1 obj-m += xxx.o
    2
    3 KERN_DIR = /work/system/linux-2.6.22.6
    4
    5 PWD = $(shell pwd)
    6

    7 all:
    8 make -C $(KERN_DIR) M=$(PWD) modules
    9

    10 clean:
    11 make -C $(KERN_DIR) M=$(PWD) modules clean
    12 rm -rf modules.o
    rder

        

    解析:

      obj-y += xxx.o

      该模块将会编译到zImage

       

      obj-m += xxx.o

      该模块不会编译到zImage ,但会生成一个独立的 xxx.ko 静态编译。

       

      KERN_DIR = /work/system/linux-2.6.22.6 

      这句是对 KERN_DIR 进行赋值,确定后面使用内核源码时的内核源码路径。

       

      PWD = $(shell pwd)  

      这句表示当前路径

       

      make -C $(KERN_DIR) M=$(PWD) modules

      这句是 makefile 中的规则:

    make modules 就是编译成模块的意思;

    -C 指从当前工作目录转移到你所指定的位置;

    -C $(KDIR) 指明跳转到内核源码目录下读取那里的 Makefile

    M= 指明需要编译成模块的源文件的位置;

    M=$(PWD) 指明需要编译成模块的源文件在当前目录下;

    因此程序会自动返回到当前目录中查找模块源码,将其编译,生成KO文件。

       

      make -C $(KERN_DIR) M=$(PWD) modules clean    

      这句也是 makefile 中的规则:

    make modules clean

    将已经编译-链接成的KO文件删除;

       

    rm -rf modules.order

    这句的意思就是删除编译-链接过程中生成的其他文件;

  • 相关阅读:
    组合数学+结论——cf1359E
    【模拟】分类讨论大模拟+数论——cf1358F
    【思维】前缀和——cf1358E
    Android基础—— 自定义RecyclerView内部控件的监听器
    【思维】模拟+暴力——icpc nwrrc 2019 K
    分治模板
    树上问题&图论模板整理
    数据结构模板整理
    一些计数题
    Codeforces Round #567 (Div. 2)
  • 原文地址:https://www.cnblogs.com/lilto/p/11878303.html
Copyright © 2011-2022 走看看