# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
obj-m := edmaDrv.o
edmaDrv-objs := edma3_drv.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
# KERNELDIR ?= /lib/modules/$(shell uname -r)/build
COMPILE_PREFIX=/opt/DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/bin/arm-arago-linux-gnueabi-
KERNELDIR ?= /home/zhaochenhui/DVRRDK_04.00.00.03/ti_tools/linux_lsp/kernel/linux-dvr-rdk
PWD := $(shell pwd)
EXTRA_CFLAGS += -DUSE_UDEV
MAKE_ENV = ARCH=arm CROSS_COMPILE=$(COMPILE_PREFIX)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) $(MAKE_ENV) \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" modules
endif
.PHONA : clean
clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
obj-m := edmaDrv.o
edmaDrv-objs := edma3_drv.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
# KERNELDIR ?= /lib/modules/$(shell uname -r)/build
COMPILE_PREFIX=/opt/DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/bin/arm-arago-linux-gnueabi-
KERNELDIR ?= /home/zhaochenhui/DVRRDK_04.00.00.03/ti_tools/linux_lsp/kernel/linux-dvr-rdk
PWD := $(shell pwd)
EXTRA_CFLAGS += -DUSE_UDEV
MAKE_ENV = ARCH=arm CROSS_COMPILE=$(COMPILE_PREFIX)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) $(MAKE_ENV) \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" modules
endif
.PHONA : clean
clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
本文介绍了一种针对特定嵌入式Linux环境的驱动构建方法。该方法通过判断内核版本来选择不同的构建策略,使用Makefile文件进行模块化管理,并能够通过调用内核自身的构建系统来进行模块构建。此外,还提供了直接从命令行调用的构建选项。

被折叠的 条评论
为什么被折叠?



