使用時請注意如下兩點:
- 此檔案須放置到 驅動子產品的源代碼頂級目錄下面
- 在注釋行
下面将
#WHAT_YOU_NEED_TO_CHANGED
和
MOD_NAME
的取值根據實際情況進行修改
MOD_SRCS
- 此模闆檔案支援 使用【aarch64-linux-gnu-】交叉編譯工具鍊 進行交叉編譯到ARM64平台上,具體用法見
輸出
make help
KVERS := $(shell uname -r)
#若定義了HC_KSD變量, 則以HC_KSD的取值替換預設的linux核心代碼路徑(/lib/modules/$(KVERS)/build)
KSRCDIR = /lib/modules/$(KVERS)/build
ifdef HC_KSD
KSRCDIR := $(HC_KSD)
endif
MAKE = make #代碼預設不進行交叉編譯
#若定義了HC_CTP變量, 則使用【aarch64-linux-gnu-】交叉編譯工具鍊交叉編譯到arm64上
ifdef HC_CTP
MAKE := make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64
endif
# WHAT_YOU_NEED_TO_CHANGED
#指定驅動子產品的名字,注意:驅動子產品的名字千萬不能和本檔案夾内的任何源檔案同名!
MOD_NAME := hello
#指定驅動子產品的所有依賴源檔案
MOD_SRCS := hc_hello.c
#最終由XXX-objs連結生成$(MOD_NAME).o ,再生成$(MOD_NAME).ko
$(MOD_NAME)-objs := $(MOD_SRCS:.c=.o)
obj-m += $(MOD_NAME).o
# 子產品編譯額外FLAG, 放開後将以【完全不優化】模式編譯子產品
# EXTRA_CFLAGS = -g -O0
build: modules
modules clean:
$(MAKE) -C $(KSRCDIR) M=$(CURDIR) [email protected]
help:
@echo -e '\n[HC_KSD=/path/to/kernel/srcdir] [HC_CTP=1] make [{build|clean}]\n'