v851s驱动外部编译的Makefile

v851s驱动外部编译的Makefile

# 设置交叉编译器
# 若没有将交叉编译器添加到环境变量中需要将补全路径,xx/xx/xx/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/arm-openwrt-linux- 
# xx/xx/xx/:表示自己的路径
# 例如:/home/linux/tina-v853-open/tina-v853-open/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/arm-openwrt-linux-
CROSS_COMPILE:=arm-openwrt-linux-

# 设置内核源码路径
# 一样是xx/xx/xx/kernel/linux-4.9
KERNELDIR:=/home/linux/tina-v853-open/tina-v853-open/kernel/linux-4.9

# 设置模块名
# 模块名要和自己的.c文件名一致
MODULE_NAME := hello_drv

# 模块需要的源文件列表
obj-m := $(MODULE_NAME).o

all:
	make ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) modules
	# make -C $(KERNELDIR)
    # 切换路径到$(KERNELDIR)目录下,然后读取这个目录下的Makefile文件
    #在内核顶层的目录下执行 make M=$(PWD) modules
    # make M=./ modules 表示要编译模块,内核目录下的模块。(M是Makefile中的一个变量,代表的是编译的路径)
    # make M=$(PWD) modules 编译PWD变量指定的路径下的模块
    # ARCH\CROSS_COMPILE 是环境变量

# 清理编译结果
clean:
	make -C $(KERNELDIR) M=$(PWD) clean

有了这个Makefile就可以将驱动文件放在任意文件夹下,然后通过执行make将驱动模块话编译,将生成的.ko文件拷贝到开发板中,通过insmod命令将安装驱动,rmmod命令卸载驱动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值