Linux驱动模块Makefile编写


一、序言

Linux驱动在从内核源码分离出来之后,在以模块单独编译时,需要单独的Makefile,而且PC上需要存在对应的Linux内核源码,以便Makefile指定路径供模块调用。

二、Makefile源码

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-obj-m := xxx.o
KDIR ?=/home/eurphan/learn/imx6ul/kernel/linux-2.6-imx-rel_imx_4.1.15_1.2.0_ga
PWD := $(shell pwd)all:make -C $(KDIR) M=$(PWD) modulesclean:rm -rf *.o *~core .depend *.cmd *.ko *.mod.c *.order *.symvers

三、源码分析

前2行为环境变量设置,指定平台和交叉编译器,我们的平台为arm,交叉编译器前缀为arm-linux-gnueabihf-,如若要使用gcc编译器,则实际使用的为arm-linux-gnueabihf-gcc;第3行为设置obj-m变量,第4行设置内核路径,我们的内核存放路径为:/home/eurphan/learn/imx6ul/kernel/linux-2.6-imx-rel_imx_4.1.15_1.2.0_ga,第5行设置当前路径变量,第6/7行为编译模块时执行的命令,当输入命令make或make all时,会执行命令make -C /home/eurphan/learn/imx6ul/kernel/linux-2.6-imx-rel_imx_4.1.15_1.2.0_ga M=$(shell pwd) modules,第8/9行为清除目标和中间文件时执行的命令。

Linux驱动模块Makefile编写相关推荐

  1. Linux下Makefile编写语法

    原创 Linux下Makefile编写语法 2016-07-29 08:31:53 Datrilla 阅读数 1386更多 分类专栏: Linux Makefile 版权声明:本文为博主原创文章,遵循 ...

  2. 驱动模块Makefile 编写【原创】

    为了省去每次编译内核的麻烦,于是采用模块的方式进行编写,这样会省很多时间. makefile: # # gpio_keys # PWD :=$(shell pwd) KERNELDIR := /hom ...

  3. linux 建立伪目标过程,linux之Makefile 编写、规则、伪目标、变量

    什么是Makefile?首先,make是一个工具程序(Utility software),是一种控制编译或者重复编译软件的工具:make可以自动管理软件编译的内容.方式和时机从而使程序员能够把精力集中 ...

  4. Linux基础——makefile编写

    Makefile基本原则和原理 makefile中的三要素:目标.依赖.命令 目标:要生成的目标文件(在Makefile中会把第一个目标作为终极目标,一切以生成终极目标为最终目的) 依赖:生成目标文件 ...

  5. linux下MaKefile编写

    Linux下编写 makefile 详细教程 近期在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是goo ...

  6. 【linux】Makefile编写

    1.在linux环境下使用GNU的make工具能够比较容易构建一个属于自己的工程 ,整个工程的编译只需要一个命令就可以完成编译.链接.这依赖于Makefile 文件. 2.Makefile的用途    ...

  7. 【开发工具】之linux下makefile编写

    序 在实际工程中,我们通常使用makefile来构建目标文件,本文旨在示例一个简单的makefile,可根据实际需要更改. 1. 配置相关的宏在config.mk中 新建config,mk #检测系统 ...

  8. linux驱动模块makefile,linux驱动makefile求解

    下面是一个网卡驱动的makefile,有很多地方不懂,拿出来和大家一起分析一下: CURRENT= $(shell uname -r) TARGET= asix OBJS= asix.o MDIR=  ...

  9. Linux下面makefile编写

    源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器.   下面我们以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(hello.c或者 ...

  10. linux 生成和使用动态链接库和静态链接库的Makefile编写

    引用 Jesse Rei 的 linux 生成和使用动态链接库和静态链接库的Makefile编写 生成和使用动态链接库和静态链接库的Makefile编写 1. 概述 介绍linux下生成和使用动态链接 ...

最新文章

  1. 使用php需要网络吗,使用php获取网络文件
  2. 曾几何时,我们炼的不是丹,是特征
  3. for-forEach-stream.forEach三种遍历方法
  4. 学习笔记(56):Python实战编程-Menu
  5. windows 下cmd命令行的替换工具cmder
  6. 吴恩达《机器学习》学习笔记一——初识机器学习
  7. PLSQL用DBMS_JOB建立作业
  8. python数据存储系列教程——python(pandas)读写csv文件
  9. Unity UGUI 屏幕适配
  10. 地面波天线怎样能多收台_教你怎样挑选DTMB地面波天线
  11. Aladdin and the Flying Carpet (唯一分解定理)
  12. sap字段及描述底表_SAP财务科目表字段列表说明
  13. 基于网页版微信实现的微信SDK(Kotlin版,兼容Java)
  14. win10未启动对远程服务器启动,win10系统连接远程提示未启用对服务器的远程访问的操作技巧...
  15. hdmi接口有什么用_VGA、DVI、HDMI三种视频信号接口有什么区别呢
  16. WORD中插入VISIO图形,打印乱码解决
  17. python上传大文件s3_使用Python boto3上传Windows EC2实例中的文件至S3存储桶中
  18. Java - char型变量中能不能存贮一个中文汉字,为什么?
  19. JAVA三角形边长定义_Java编译:定义三角形的三条边长a=4,b=8.54,c=4.44;求三角形的周长d...
  20. java 邮箱地址生成器_关于java:生成随机电子邮件

热门文章

  1. 机器学习基石 作业0
  2. 小红书用户画像分析_小红书报告
  3. 国家信息安全等级保护三级认证(三级等保设置以及注意点)
  4. jQuery API中文手册详解
  5. Win10下安装GrADS
  6. 行业发展 | 雷达信号处理领域面临的重大问题
  7. 详解Photoshop中标尺工具和参考线的使用方法
  8. (休息几天)读曼昆之微观经济学——供给需求和政府政策
  9. cad立体图怎么旋转看图_教大家CAD迷你看图如何旋转图纸
  10. gRPC框架学习:6、Java+gRPC+maven+idea实例测试并打jar包