编译驱动模块和编译内核其实大同小异,因为其都是Makefile类型的工程。首先创建一个Makefile类型的项目,并指向源码所在的位置,本文使用dvsdk中带的cmemk。
在dvsdk中cmemk的Makefile引用了其顶层目录的Makefile,由于我们并不希望和庞大的DVSDK扯上关系,因此修改Makefile:
#We conditionally include $(ROOTDIR)/Rules.make because when the
#kernel make system invokes us, it won't be found... but that's okay.
#-include$(ROOTDIR)/Rules.make
去掉对Rules.make的引用。
由于在Rules.make文件中定义了一些环境变量,在去除此文件后,我们需要在CCS7的环境中定义这些变量:
再定义上make命令行所必须的ARCH和CROSS_COMPILE变量:
就可以很轻松地编译Linux的模块驱动了。