编写嵌入式的Makefile有几个地方需要注意的:
一般我们在x86下编译驱动
1.首先编写一个Makefile,内容如下
//
obj-m :=drv.o
drv.objs +=file1.o file2.o
/
2.再执行
make -C /内核源码路径/ M=/驱动所在的目录/ modules
这是编写x86驱动一种简单的方法
与此同理编写arm的驱动只需要把Makefile需改一下就可以了。Makefile 应该包含有下面的内容
//
ARCH=arm //这一句很重要丢掉会出现很多问题
CC :=arm-linux-gcc
LD :=arm-linux-ld
obj-m :=drv.o
drv.objs +=file1.o file2.o
/
我们也可以把命令都写到一个Makefile文件里
简单形式如下
x86平台下
/
ifneq ($(KERNELRELEASE),)
obj-m :=drv.o
drv.objs +=file1.o file2.o
else
KERNELDIR ?= /内核源码路径
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
clean:
rm -rf *.o *.ko
//
arm平台下
/
ifneq ($(KERNELRELEASE),)
ARCH=arm //这一句很重要丢掉会出现很多问题
CC :=arm-linux-gcc
LD :=arm-linux-ld
obj-m :=drv.o
drv.objs +=file1.o file2.o
else
KERNELDIR ?= /内核源码路径
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
clean:
rm -rf *.o *.ko
//