继上一篇DM6467T开发领航――开发环境安装
按照我们上一篇DM6467T开发领航――开发环境安装的安装方法,最主要要修改的文件就是/home/dm6467t/dvsdk_3_10_00_19目录下的Rules.make文件和Makefile文件啦
下面我们一起来看看Rules.make文件吧
在修改之前,请把文件设置为可写
root@ubuntu:/home/dm6467t/dvsdk_3_10_00_19#chmod -777 Rules.make
这个是平台的定义,不用改
# Define target platform.
PLATFORM=dm6467
这个是DVSDK目录的指定,没有问题,不用改
# The installation directory of the DVSDK.
DVSDK_INSTALL_DIR=/home/dm6467t/dvsdk_3_10_00_19
# For backwards compatibility
DVEVM_INSTALL_DIR=$(DVSDK_INSTALL_DIR)
下面都是些安装的目录,没有问题
# Where DSP/BIOS is installed.
BIOS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/bios_5_41_00_06
# Where the DSPBIOS Utils package isinstalled.
BIOSUTILS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/biosutils_1_02_02
# Where the Codec Engine package isinstalled.
CE_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/codec_engine_2_25_05_16
# Where the DSP Link package is installed.
LINK_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dsplink_linux_1_64
ifeq ($(PLATFORM),dm355)
# Where the DM355 codecs are installed.
CODEC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dm355_codecs_03_10_00_02
endif
ifeq ($(PLATFORM),dm365)
# Where the DM365 codecs are installed.
CODEC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dm365_codecs_03_10_00_07
endif
# Where the DM365MM module is installed.
DM365MMAP_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dm365mm_01_00_03
ifeq ($(PLATFORM),dm6467)
# Where the cs2dm6467 codec server packageis installed.
CODEC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/cs2dm6467_1_00_00_10
endif
# Where DMAI package is installed.
DMAI_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dmai_2_10_00_12
# Where the DVSDK demos are installed
DEMO_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dvsdk_demos_3_10_00_16
# Where the DVTB package is installed.
DVTB_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dvtb_4_20_10
# Where the EDMA3 LLD package is installed.
EDMA3_LLD_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/edma3_lld_01_11_00_03
# Where the Framework Components package isinstalled.
FC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/framework_components_2_25_02_06
# Where the MFC Linux Utils package isinstalled.
LINUXUTILS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/linuxutils_2_25_04_10
CMEM_INSTALL_DIR=$(LINUXUTILS_INSTALL_DIR)
# Where the XDAIS package is installed.
XDAIS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/xdais_6_25_02_11
# Where the RTSC tools package isinstalled.
XDC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/xdctools_3_16_01_27
以上这些目录都没有问题,可以根据文件和自己的目录仔细的对一遍
这里的目录不对,需要修改
# Where the Code Gen is installed.
#CODEGEN_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/cgt6x_6_1_12
CODEGEN_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/C6000CGT7.4.2
下面这个是内核目录,我们也需要修改
# The directory that points to your kernelsource directory.
#LINUXKERNEL_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/../git
这个是内核目录,我们修改过
LINUXKERNEL_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/../git-kernel
# Where temporary Linux headers and libsare installed.
#LINUXLIBS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/../linuxlibs-2009.11-armv5te
LINUXLIBS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/linuxlibs-2009.11-armv5te
# Where Linux examples are installed.
#LINUXEXAMPLES_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/../examples-r37
LINUXEXAMPLES_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/examples-r37
# The prefix to be added before the GNUcompiler tools (optionally including # path), i.e. "arm_v5t_le-" or"/opt/bin/arm_v5t_le-".
#CSTOOL_DIR=/opt/arm-2009q1
这个是编译器目录
CSTOOL_DIR=/home/dm6467t/arm-2009q1
CSTOOL_PREFIX=$(CSTOOL_DIR)/bin/arm-none-linux-gnueabi-
MVTOOL_DIR=$(CSTOOL_DIR)
MVTOOL_PREFIX=$(CSTOOL_PREFIX)
# Where to copy the resulting executables
#EXEC_DIR=$(HOME)/install/$(PLATFORM)
这个是编译好的文件放的目录
EXEC_DIR=/home/dm6467t/install/$(PLATFORM)
这样Rules.make文件就修改完成了,其实没有想像中的那么难,不要被Davianci吓坏了。只要你认真的对照文件和自己的目录,目录设置对了基本上都不会有问题。如果有漏掉的,也不用担心,在你编译的时候肯定会报错的,什么找不到文件啦,找不到路径啦,之类的错误基本上是配置文件的问题。
下面我们来看看makefile文件
对于很多linux初学者,往往对makefile文件一头雾水,甚至有点怕的感觉。其实没什么好怕的。网上关于makefile的文章大把大把的,你先学习个大概,再使用的过程中,不懂的再查查,基本上都能解决问题。至于怎么读懂makefile,我不打算在这里讲,我们就一起看看怎么修改这个makefilek吧
先把makefile改为可写吧
root@ubuntu:/home/dm6467t/dvsdk_3_10_00_19#chmod 777 Makefile
看看makefile
重点看看216行~227行
include Rules.make
COMPONENTS:=$(DMAI_INSTALL_DIR) $(XDAIS_INSTALL_DIR)$(LINUXUTILS_INSTALL_DIR) $(EDMA3_LLD_INSTALL_DIR) $(FC_INSTALL_DIR)$(CE_INSTALL_DIR) $(XDC_INSTALL_DIR) $(BIOS_INSTALL_DIR) $(CODEC_INSTALL_DIR)
.PHONY: allclean everything clobber help cmem cmem_clean dmai dmai_clean dmai_install demosdemos_clean dvtb dvtb_clean dmammapk dmammapk_clean dsplink dsplink_armdsplink_dsp dsplink_samples dsplink_clean codecs codecs_clean linux linux_cleanpsp_examples psp_examples_clean psp_examples_install info check install
#==============================================================================
# Set up platform dependent variables.
#==============================================================================
ifeq ($(PLATFORM),dm6446)
COMPONENTS+=$(BIOSUTILS_INSTALL_DIR)$(LINK_INSTALL_DIR)
CHECKLIST:=$(CODEGEN_INSTALL_DIR)/bin/cl6x
REPOSITORIES:=$(DVTB_INSTALL_DIR)/packages
LINUXKERNEL_CONFIG=davinci_dm644x_defconfig
LINUXSAMPLES_PLATFORM=dm644x
DSPLINK_CONFIG=--platform=DAVINCI --nodsp=1--dspcfg_0=DM6446GEMSHMEM --dspos_0=DSPBIOS5XX --gppos=MVL5G --comps=ponslrm
DSPLINK_MODULE=$(LINK_INSTALL_DIR)/dsplink/gpp/export/BIN/Linux/DAVINCI/RELEASE/dsplinkk.ko
HAS_SERVER=true
HAS_DSPLINK=true
HAS_IRQK=false
HAS_EDMAK=false
DMAI_PLATFORM=dm6446_al
else
ifeq ($(PLATFORM),dm6467)
COMPONENTS+=$(BIOSUTILS_INSTALL_DIR)$(LINK_INSTALL_DIR)
CHECKLIST:=$(CODEGEN_INSTALL_DIR)/bin/cl6x
REPOSITORIES:=$(DVTB_INSTALL_DIR)/packages
LINUXKERNEL_CONFIG=davinci_dm646x_1ghz_defconfig
LINUXSAMPLES_PLATFORM=dm646x
DSPLINK_CONFIG=--platform=DAVINCIHD--nodsp=1 --dspcfg_0=DM6467GEMSHMEM --dspos_0=DSPBIOS5XX --gppos=DM6467LSP--comps=ponslrm
DSPLINK_MODULE=$(LINK_INSTALL_DIR)/dsplink/gpp/export/BIN/Linux/DAVINCIHD/RELEASE/dsplinkk.ko
HAS_SERVER=true
HAS_DSPLINK=true
HAS_IRQK=false
HAS_EDMAK=false
DMAI_PLATFORM=dm6467_al
else
ifeq ($(PLATFORM),dm355)
REPOSITORIES:=$(DVTB_INSTALL_DIR)/packages
LINUXKERNEL_CONFIG=davinci_dm355_defconfig
LINUXSAMPLES_PLATFORM=dm355
HAS_SERVER=false
HAS_DSPLINK=false
HAS_IRQK=true
HAS_EDMAK=true
DMAMMAP_INSTALL_DIR=$(CODEC_INSTALL_DIR)/dm355mm/module
DMAI_PLATFORM=dm355_al
else
ifeq ($(PLATFORM),dm365)
REPOSITORIES:=$(DVTB_INSTALL_DIR)
LINUXKERNEL_CONFIG=davinci_dm365_defconfig
LINUXSAMPLES_PLATFORM=dm365
HAS_SERVER=false
HAS_DSPLINK=false
HAS_IRQK=true
HAS_EDMAK=true
DMAMMAP_INSTALL_DIR=$(DM365MMAP_INSTALL_DIR)/module
DMAI_PLATFORM=dm365_al
else
$(errorPLATFORM not set correctly: $(PLATFORM))
endif
endif
endif
endif
REPOSITORIES+=$(addsuffix /packages,$(filter-out $(LINK_INSTALL_DIR),$(COMPONENTS)))
CHECKLIST+=$(REPOSITORIES) $(MVTOOL_PREFIX)gcc$(LINUXKERNEL_INSTALL_DIR)/Documentation $(DEMO_INSTALL_DIR)/$(PLATFORM)
#==============================================================================
# The default build target.
#==============================================================================
all: checkcmem dmammapk edmak irqk dmai demos
#==============================================================================
# Clean up the targets built by 'make all'.
#==============================================================================
clean: cmem_cleandmammapk_clean edmak_clean irqk_clean dmai_clean demos_clean
#==============================================================================
# Build everything rebuildable.
#==============================================================================
everything: check linux dsplink codecs allce_examples dvtb
#==============================================================================
# Clean up all targets.
#==============================================================================
clobber: clean dsplink_clean linux_clean codecs_clean ce_examples_cleandvtb_clean
#==============================================================================
# A help message target.
#==============================================================================
help:
@echo
@echo"Available build targets are:"
@echo
@echo" check : Make sure Rules.make is set upproperly"
@echo" info : List versions of DVSDKcomponents"
@echo
@echo" all : Build the components below"
@echo" clean : Remove files generated by the'all' target"
@echo
@echo" cmem : Build the CMEM kernel module for$(PLATFORM)"
@echo" cmem_clean : Remove generated cmem files."
@echo
@echo" dmai : Build DMAI for$(PLATFORM)_al"
@echo" dmai_clean : Remove generated DMAI files."
@echo
@echo" demos : Build the DVSDK demos for$(PLATFORM)"
@echo" demos_clean : Remove generated DVSDK demo files."
@echo
@echo" dvtb : Build DVTB for $(PLATFORM)"
@echo" dvtb_clean : Remove generated DVTB files"
ifneq ($(DMAMMAP_INSTALL_DIR),)
@echo
@echo" dmammapk : Build the DMA MMAP kernelmodule"
@echo" dmammapk_clean : Remove generated DMA MMAP files"
endif
ifeq ($(HAS_EDMAK),true)
@echo
@echo" edmak : Build the EDMA kernel module"
@echo" edmak_clean : Remove generated EDMA files"
endif
ifeq ($(HAS_IRQK),true)
@echo
@echo" irqk : Build the IRQ kernel module"
@echo" irqk_clean : Remove generated IRQ files"
endif
@echo
@echo"The following targets have to be explicitly built and cleaned:"
@echo
@echo" everything : Rebuild everything including below targets"
ifeq ($(HAS_DSPLINK),true)
@echo" Note: C6000 code gen tools arerequired"
endif
@echo" clobber : Remove all generated files"
ifeq ($(HAS_DSPLINK),true)
@echo" Note: C6000 code gen tools arerequired"
endif
ifeq ($(HAS_DSPLINK),true)
@echo
@echo" dsplink : Configure and build DSP Link for$(PLATFORM) ARM and DSP"
@echo" Note: C6000 code gen tools arerequired"
@echo" dsplink_arm : Configure and build DSP Link for$(PLATFORM) ARM"
@echo" dsplink_dsp : Configure and build DSP Link for$(PLATFORM) DSP"
@echo" Note: C6000 code gen tools arerequired"
@echo" dsplink_samples : Build DSPLink ARM and DSP sample applications for $(PLATFORM)"
@echo" Note: C6000 code gen tools arerequired"
@echo" dsplink_clean : Remove generated DSP Link files"
@echo" Note: C6000 code gen tools arerequired"
endif
ifeq ($(HAS_SERVER),true)
@echo
@echo" codecs : Build codec servers for$(PLATFORM)"
@echo" codecs_clean : Remove generated codec server files"
endif
@echo
@echo" linux : Build Linux kernel uImage for$(PLATFORM)"
@echo" Note:With 'MENUCONFIG=true' opens menuconfig"
@echo" linux_clean : Remove generated Linux kernelfiles"
@echo
@echo" install : Install binaries to$(EXEC_DIR)"
@echo" dmai_install : Install DMAI binaries to $(EXEC_DIR)"
@echo
@echo" ce_examples : Build Codec Engine Examples for$(PLATFORM)"
ifeq ($(HAS_SERVER),true)
@echo" Note: C6000 code gen tools arerequired"
endif
@echo" ce_examples_clean:Remove CodecEngine Examples"
ifeq ($(HAS_SERVER),true)
@echo" Note: C6000 code gen tools arerequired"
endif
@echo" psp_examples : Build Linux PSP Examples for$(PLATFORM)"
@echo" psp_examples_clean : Clean Linux PSP Examples for$(PLATFORM)"
@echo" psp_examples_install: InstallLinux PSP Examples to $(EXEC_DIR)"
@echo
#==============================================================================
# Target for listing information about theDVSDK components.
#==============================================================================
info: check
@LINUXKERNEL_INSTALL_DIR="$(LINUXKERNEL_INSTALL_DIR)"CODEGEN_INSTALL_DIR="$(CODEGEN_INSTALL_DIR)"GCC_PREFIX="$(MVTOOL_PREFIX)"XDC_INSTALL_DIR="$(XDC_INSTALL_DIR)"REPOSITORIES="$(REPOSITORIES)" $(DVSDK_INSTALL_DIR)/bin/info.sh
#==============================================================================
# Target for checking that the Rules.makefile is set up properly.
#==============================================================================
check:
@CHECKLIST="$(CHECKLIST)"$(DVSDK_INSTALL_DIR)/bin/check.sh
#==============================================================================
# Build the dvsdk demos for the configuredplatform. Also, an explicit cleanup
# target is defined.
#==============================================================================
demos:
$(MAKE)-C $(DEMO_INSTALL_DIR) $(PLATFORM) DVSDK_INSTALL_DIR=$(DVSDK_INSTALL_DIR)XDC_INSTALL_DIR=$(XDC_INSTALL_DIR) CE_INSTALL_DIR=$(CE_INSTALL_DIR)FC_INSTALL_DIR=$(FC_INSTALL_DIR) CMEM_INSTALL_DIR=$(CMEM_INSTALL_DIR)CODEC_INSTALL_DIR=$(CODEC_INSTALL_DIR) XDAIS_INSTALL_DIR=$(XDAIS_INSTALL_DIR)LINK_INSTALL_DIR=$(LINK_INSTALL_DIR) DMAI_INSTALL_DIR=$(DMAI_INSTALL_DIR)MVTOOL_DIR=$(MVTOOL_DIR) CC=$(CSTOOL_PREFIX)gcc AR=$(CSTOOL_PREFIX)arCROSS_COMPILE=$(MVTOOL_PREFIX) LINUXLIBS_INSTALL_DIR=$(LINUXLIBS_INSTALL_DIR)PLATFORM=$(PLATFORM)
demos_clean:
$(MAKE)-C $(DEMO_INSTALL_DIR) clean DVSDK_INSTALL_DIR=$(DVSDK_INSTALL_DIR)XDC_INSTALL_DIR=$(XDC_INSTALL_DIR) CE_INSTALL_DIR=$(CE_INSTALL_DIR)FC_INSTALL_DIR=$(FC_INSTALL_DIR) CMEM_INSTALL_DIR=$(CMEM_INSTALL_DIR)CODEC_INSTALL_DIR=$(CODEC_INSTALL_DIR) XDAIS_INSTALL_DIR=$(XDAIS_INSTALL_DIR)LINK_INSTALL_DIR=$(LINK_INSTALL_DIR) DMAI_INSTALL_DIR=$(DMAI_INSTALL_DIR)MVTOOL_DIR=$(MVTOOL_DIR) CC=$(CSTOOL_PREFIX)gcc CROSS_COMPILE=$(MVTOOL_PREFIX)LINUXLIBS_INSTALL_DIR=$(LINUXLIBS_INSTALL_DIR) PLATFORM=$(PLATFORM)
#==============================================================================
# Build the Digital Video Test Bench forthe configured platform. Also, an
# explicit cleanup target is defined.
#==============================================================================
dvtb:
$(MAKE)-C $(DVTB_INSTALL_DIR) $(PLATFORM) CODECS=TSPA
@echo
@echo"dvtb can be found under $(DVTB_INSTALL_DIR)/packages/ti/sdo/dvtb/$(PLATFORM)/bin"
dvtb_clean:
$(MAKE)-C $(DVTB_INSTALL_DIR) clean
dvtb_install:
@cp-f $(DVTB_INSTALL_DIR)/packages/ti/sdo/dvtb/$(PLATFORM)/bin/dvtb-{r,d}$(EXEC_DIR)
#==============================================================================
# Build the Linux kernel. Also, an explicitcleanup target is defined.
#==============================================================================
#$(LINUXKERNEL_INSTALL_DIR)/.config:
config:
$(MAKE)-C $(LINUXKERNEL_INSTALL_DIR) CROSS_COMPILE=$(MVTOOL_PREFIX)$(LINUXKERNEL_CONFIG)
#linux: $(LINUXKERNEL_INSTALL_DIR)/.config
#ifeq ($(MENUCONFIG),true)
menuconfig:
$(MAKE)-C $(LINUXKERNEL_INSTALL_DIR) CROSS_COMPILE=$(MVTOOL_PREFIX) menuconfig
#endif
linux:
$(MAKE)-C $(LINUXKERNEL_INSTALL_DIR) CROSS_COMPILE=$(MVTOOL_PREFIX) uImage
@echo
@echo"Your kernel image can be found at$(LINUXKERNEL_INSTALL_DIR)/arch/arm/boot/uImage"
linux_clean:
$(MAKE)-C $(LINUXKERNEL_INSTALL_DIR) mrproper
#==============================================================================
# Build the CE examples. Also, an explicitcleanup target is defined.
#==============================================================================
ce_examples:
ifeq ($(HAS_SERVER),true)
$(MAKE)-C $(CE_INSTALL_DIR)/examples/ti/sdo/ce/examples/servers DEVICES=$(subst6467,6467T,$(subst dm,DM,$(PLATFORM)))CE_EXAMPLES_INSTALL_DIR=$(CE_INSTALL_DIR)/examples/ti/sdo/ce/examplesGPPOS=LINUX_GCC CE_INSTALL_DIR=$(CE_INSTALL_DIR)BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) XDC_INSTALL_DIR=$(XDC_INSTALL_DIR)CGTOOLS_V5T=$(MVTOOL_DIR) DSPLINK_INSTALL_DIR=$(LINK_INSTALL_DIR)CGTOOLS_C64P=$(CODEGEN_INSTALL_DIR)BIOSUTILS_INSTALL_DIR=$(BIOSUTILS_INSTALL_DIR)BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR)
endif
$(MAKE)-C $(CE_INSTALL_DIR)/examples/ti/sdo/ce/examples/apps DEVICES=$(subst6467,6467T,$(subst dm,DM,$(PLATFORM)))CE_EXAMPLES_INSTALL_DIR=$(CE_INSTALL_DIR)/examples/ti/sdo/ce/examplesGPPOS=LINUX_GCC CE_INSTALL_DIR=$(CE_INSTALL_DIR)BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) XDC_INSTALL_DIR=$(XDC_INSTALL_DIR)CGTOOLS_V5T=$(MVTOOL_DIR) DSPLINK_INSTALL_DIR=$(LINK_INSTALL_DIR)CGTOOLS_C64P=$(CODEGEN_INSTALL_DIR)BIOSUTILS_INSTALL_DIR=$(BIOSUTILS_INSTALL_DIR)BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR)
@echo
@echo"CE examples can be found under $(CE_INSTALL_DIR)/examples/ti/sdo/ce/examples"
ce_examples_clean:
ifeq ($(HAS_SERVER),true)
$(MAKE)-C $(CE_INSTALL_DIR)/examples/ti/sdo/ce/examples/servers DEVICES=$(subst6467,6467T,$(subst dm,DM,$(PLATFORM)))CE_EXAMPLES_INSTALL_DIR=$(CE_INSTALL_DIR)/examples/ti/sdo/ce/examplesGPPOS=LINUX_GCC CE_INSTALL_DIR=$(CE_INSTALL_DIR)BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) XDC_INSTALL_DIR=$(XDC_INSTALL_DIR)CGTOOLS_V5T=$(MVTOOL_DIR) DSPLINK_INSTALL_DIR=$(LINK_INSTALL_DIR)CGTOOLS_C64P=$(CODEGEN_INSTALL_DIR) BIOSUTILS_INSTALL_DIR=$(BIOSUTILS_INSTALL_DIR)BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) clean
endif
$(MAKE)-C $(CE_INSTALL_DIR)/examples/ti/sdo/ce/examples/apps DEVICES=$(subst6467,6467T,$(subst dm,DM,$(PLATFORM)))CE_EXAMPLES_INSTALL_DIR=$(CE_INSTALL_DIR)/examples/ti/sdo/ce/examplesCROSS_COMPILE=$(MVTOOL_PREFIX) GPPOS=LINUX_GCC CE_INSTALL_DIR=$(CE_INSTALL_DIR)BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) XDC_INSTALL_DIR=$(XDC_INSTALL_DIR) CGTOOLS_V5T=$(MVTOOL_DIR) DSPLINK_INSTALL_DIR=$(LINK_INSTALL_DIR)CGTOOLS_C64P=$(CODEGEN_INSTALL_DIR)BIOSUTILS_INSTALL_DIR=$(BIOSUTILS_INSTALL_DIR)BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) clean
#==============================================================================
# Build the CMEM kernel module for theconfigured platform, and make sure the
# kernel_binaries directory is kept insync. Also, an explicit cleanup target
# is defined.
#==============================================================================
cmem:
$(MAKE)-C $(LINUXUTILS_INSTALL_DIR)/packages/ti/sdo/linuxutils/cmem/src/interface../../lib/cmem.a470MV RULES_MAKE=$(DVSDK_INSTALL_DIR)/Rules.make
$(MAKE)-C $(LINUXUTILS_INSTALL_DIR)/packages/ti/sdo/linuxutils/cmem/src/moduleRULES_MAKE=$(DVSDK_INSTALL_DIR)/Rules.make
@mkdir-p $(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)
@cp$(LINUXUTILS_INSTALL_DIR)/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.ko$(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)/
@echo
@echo"cmemk.ko kernel module can be found under$(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)"
cmem_clean:
$(MAKE)-C $(LINUXUTILS_INSTALL_DIR)/packages/ti/sdo/linuxutils/cmem/src/module cleanRULES_MAKE=$(DVSDK_INSTALL_DIR)/Rules.make
$(MAKE)-C $(LINUXUTILS_INSTALL_DIR)/packages/ti/sdo/linuxutils/cmem/src/interfaceclean RULES_MAKE=$(DVSDK_INSTALL_DIR)/Rules.make
#==============================================================================
# Build the *production* codec servers forthe configured platform. Also, an
# explicit cleanup target is defined.
# Please note the following.
# 1. Before executing make codecs, execute make codecs_clean
# 2. Build DSPLINK for arm and dsp before building the codecs
# 3. Buld the Linux kernel before building the dsplink
#==============================================================================
codecs:
ifeq ($(HAS_SERVER),true)
$(MAKE)-C $(CODEC_INSTALL_DIR) DVSDK_INSTALL_DIR=$(DVSDK_INSTALL_DIR)BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) XDC_INSTALL_DIR=$(XDC_INSTALL_DIR)CE_INSTALL_DIR=$(CE_INSTALL_DIR) FC_INSTALL_DIR=$(FC_INSTALL_DIR) CMEM_INSTALL_DIR=$(LINUXUTILS_INSTALL_DIR)CODEC_INSTALL_DIR=$(CODEC_INSTALL_DIR)BIOSUTILS_INSTALL_DIR=$(BIOSUTILS_INSTALL_DIR)XDAIS_INSTALL_DIR=$(XDAIS_INSTALL_DIR)EDMA3_LLD_INSTALL_DIR=$(EDMA3_LLD_INSTALL_DIR)CODEGEN_INSTALL_DIR=$(CODEGEN_INSTALL_DIR) LINK_INSTALL_DIR=$(LINK_INSTALL_DIR)XDCARGS=\"prod\"
endif
codecs_clean:
ifeq ($(HAS_SERVER),true)
$(MAKE)-C $(CODEC_INSTALL_DIR) DVSDK_INSTALL_DIR=$(DVSDK_INSTALL_DIR)BIOS_INSTALL_DIR=$(BIOS_INSTALL_DIR) XDC_INSTALL_DIR=$(XDC_INSTALL_DIR)CE_INSTALL_DIR=$(CE_INSTALL_DIR) FC_INSTALL_DIR=$(FC_INSTALL_DIR)CMEM_INSTALL_DIR=$(LINUXUTILS_INSTALL_DIR)CODEC_INSTALL_DIR=$(CODEC_INSTALL_DIR)BIOSUTILS_INSTALL_DIR=$(BIOSUTILS_INSTALL_DIR)XDAIS_INSTALL_DIR=$(XDAIS_INSTALL_DIR) LINK_INSTALL_DIR=$(LINK_INSTALL_DIR)XDCARGS=\"prod\" clean
endif
#==============================================================================
# Build the dmammapk kernel module (if theconfigured for the platform). Also,
# an explicit cleanup target is defined.
#==============================================================================
dmammapk:
ifneq ($(DMAMMAP_INSTALL_DIR),)
$(MAKE)-C $(DMAMMAP_INSTALL_DIR) KERNEL_DIR=$(LINUXKERNEL_INSTALL_DIR)
@mkdir-p $(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)
@cp$(DMAMMAP_INSTALL_DIR)/*.ko $(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)/
@echo
@echo"dmammapk kernel module can be found under$(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)"
endif
dmammapk_clean:
ifneq ($(DMAMMAP_INSTALL_DIR),)
$(MAKE)-C $(DMAMMAP_INSTALL_DIR) KERNEL_DIR=$(LINUXKERNEL_INSTALL_DIR) clean
endif
#==============================================================================
# Build the edma kernel module (if theconfigured platform is dm365). Also,
# an explicit cleanup target is defined.
#==============================================================================
edmak:
ifeq ($(HAS_EDMAK),true)
$(MAKE)-C $(LINUXUTILS_INSTALL_DIR)/packages/ti/sdo/linuxutils/edma/src/moduleKERNEL_DIR=$(LINUXKERNEL_INSTALL_DIR)
@mkdir-p $(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)
@cp$(LINUXUTILS_INSTALL_DIR)/packages/ti/sdo/linuxutils/edma/src/module/edmak.ko$(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)/
@echo
@echo"edmak.ko kernel module can be found under$(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)"
endif
edmak_clean:
ifeq ($(HAS_EDMAK),true)
$(MAKE)-C $(LINUXUTILS_INSTALL_DIR)/packages/ti/sdo/linuxutils/edma/src/moduleKERNEL_DIR=$(LINUXKERNEL_INSTALL_DIR) clean
endif
#==============================================================================
# Build the irq kernel module (if theconfigured platform is dm365). Also,
# an explicit cleanup target is defined.
#==============================================================================
irqk:
ifeq ($(HAS_IRQK),true)
$(MAKE)-C $(LINUXUTILS_INSTALL_DIR)/packages/ti/sdo/linuxutils/irq/src/moduleKERNEL_DIR=$(LINUXKERNEL_INSTALL_DIR)
@mkdir-p $(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)
@cp$(LINUXUTILS_INSTALL_DIR)/packages/ti/sdo/linuxutils/irq/src/module/irqk.ko$(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)/
@echo
@echo"irqk.ko kernel module can be found under$(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)"
endif
irqk_clean:
ifeq ($(HAS_IRQK),true)
$(MAKE)-C $(LINUXUTILS_INSTALL_DIR)/packages/ti/sdo/linuxutils/irq/src/module KERNEL_DIR=$(LINUXKERNEL_INSTALL_DIR)clean
endif
#==============================================================================
# Build the Davinci Multimedia ApplicationInterface for the configured
# platform. Also, an explicit cleanuptarget is defined.
#==============================================================================
dmai:
@$(MAKE)-C $(DMAI_INSTALL_DIR) PLATFORM=${DMAI_PLATFORM} \
CE_INSTALL_DIR_${DMAI_PLATFORM}=$(CE_INSTALL_DIR)\
CODEC_INSTALL_DIR_${DMAI_PLATFORM}=$(CODEC_INSTALL_DIR)\
LINK_INSTALL_DIR_${DMAI_PLATFORM}=$(LINK_INSTALL_DIR)\
CMEM_INSTALL_DIR_${DMAI_PLATFORM}=$(CMEM_INSTALL_DIR)\
FC_INSTALL_DIR_${DMAI_PLATFORM}=$(FC_INSTALL_DIR)\
LPM_INSTALL_DIR_${DMAI_PLATFORM}=$(LPM_INSTALL_DIR)\
XDAIS_INSTALL_DIR_${DMAI_PLATFORM}=$(XDAIS_INSTALL_DIR)\
BIOS_INSTALL_DIR_${DMAI_PLATFORM}=$(BIOS_INSTALL_DIR)\
LINUXLIBS_INSTALL_DIR_${DMAI_PLATFORM}=$(LINUXLIBS_INSTALL_DIR)\
LINUXKERNEL_INSTALL_DIR_${DMAI_PLATFORM}=$(LINUXKERNEL_INSTALL_DIR)\
CROSS_COMPILE_${DMAI_PLATFORM}=$(CSTOOL_PREFIX)\
XDC_INSTALL_DIR_${DMAI_PLATFORM}=$(XDC_INSTALL_DIR)\
EXEC_DIR_${DMAI_PLATFORM}=$(EXEC_DIR)all
@echo
@echo"DMAI applications can be found under$(DMAI_INSTALL_DIR)/packages/ti/sdo/dmai/apps"
@echo"To install them to $(EXEC_DIR)"
@echo"Execute 'make dmai_install'"
dmai_clean:
$(MAKE)-C $(DMAI_INSTALL_DIR) PLATFORM=${DMAI_PLATFORM} \
XDC_INSTALL_DIR_${DMAI_PLATFORM}=$(XDC_INSTALL_DIR)clean
dmai_install:
$(MAKE)-C $(DMAI_INSTALL_DIR) PLATFORM=${DMAI_PLATFORM} EXEC_DIR=$(EXEC_DIR) install
#==============================================================================
# Build DSP Link for the configuredplatform. Also, an explicit cleanup target
# is defined.
#==============================================================================
ifeq ($(HAS_DSPLINK),true)
dsplink: dsplink_armdsplink_dsp dsplink_samples
dsplink_dsp_genpackage:
$(XDC_INSTALL_DIR)/xdc-C $(LINK_INSTALL_DIR)/dsplink/dsp clean
$(XDC_INSTALL_DIR)/xdc-C $(LINK_INSTALL_DIR)/dsplink/dsp .interfaces
dsplink_gpp_genpackage:
$(XDC_INSTALL_DIR)/xdc-C $(LINK_INSTALL_DIR)/dsplink/gpp clean
$(XDC_INSTALL_DIR)/xdc-C $(LINK_INSTALL_DIR)/dsplink/gpp .interfaces
dsplink_cfg:
DSPLINK=$(LINK_INSTALL_DIR)/dsplinkperl $(LINK_INSTALL_DIR)/dsplink/config/bin/dsplinkcfg.pl $(DSPLINK_CONFIG)
dsplink_arm: dsplink_cfg dsplink_gpp_genpackage
DSPLINK=$(LINK_INSTALL_DIR)/dsplink$(XDC_INSTALL_DIR)/gmake -C $(LINK_INSTALL_DIR)/dsplink/gpp/srcBASE_TOOLCHAIN=$(MVTOOL_DIR) BASE_BUILDOS=$(LINUXKERNEL_INSTALL_DIR)KERNEL_DIR=${LINUXKERNEL_INSTALL_DIR} TOOL_PATH=$(CSTOOL_DIR)/bin
@mkdir-p $(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)
@cp$(DSPLINK_MODULE) $(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)/
@echo
@echo"dsplinkk.ko kernel module can be found under$(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)"
dsplink_dsp: dsplink_cfg dsplink_dsp_genpackage
DSPLINK=$(LINK_INSTALL_DIR)/dsplink$(XDC_INSTALL_DIR)/gmake -C $(LINK_INSTALL_DIR)/dsplink/dsp/srcBASE_SABIOS=$(BIOS_INSTALL_DIR) XDCTOOLS_DIR=$(XDC_INSTALL_DIR)BASE_CGTOOLS=$(CODEGEN_INSTALL_DIR)
dsplink_samples:
DSPLINK=$(LINK_INSTALL_DIR)/dsplink$(XDC_INSTALL_DIR)/gmake -C $(LINK_INSTALL_DIR)/dsplink/gpp/src/samplesBASE_TOOLCHAIN=$(MVTOOL_DIR) BASE_BUILDOS=$(LINUXKERNEL_INSTALL_DIR)
DSPLINK=$(LINK_INSTALL_DIR)/dsplink$(XDC_INSTALL_DIR)/gmake -C $(LINK_INSTALL_DIR)/dsplink/dsp/src/samplesBASE_SABIOS=$(BIOS_INSTALL_DIR) XDCTOOLS_DIR=$(XDC_INSTALL_DIR)BASE_CGTOOLS=$(CODEGEN_INSTALL_DIR)
else
dsplink:
endif
ifeq ($(HAS_DSPLINK),true)
dsplink_clean:
DSPLINK=$(LINK_INSTALL_DIR)/dsplink$(XDC_INSTALL_DIR)/gmake -C $(LINK_INSTALL_DIR)/dsplink/gpp/srcBASE_TOOLCHAIN=$(MVTOOL_DIR) BASE_BUILDOS=$(LINUXKERNEL_INSTALL_DIR) clean
DSPLINK=$(LINK_INSTALL_DIR)/dsplink$(XDC_INSTALL_DIR)/gmake -C $(LINK_INSTALL_DIR)/dsplink/dsp/srcBASE_SABIOS=$(BIOS_INSTALL_DIR) XDCTOOLS_DIR=$(XDC_INSTALL_DIR)BASE_CGTOOLS=$(CODEGEN_INSTALL_DIR) clean
DSPLINK=$(LINK_INSTALL_DIR)/dsplink$(XDC_INSTALL_DIR)/gmake -C $(LINK_INSTALL_DIR)/dsplink/gpp/src/samplesBASE_TOOLCHAIN=$(MVTOOL_DIR) BASE_BUILDOS=$(LINUXKERNEL_INSTALL_DIR) clean
DSPLINK=$(LINK_INSTALL_DIR)/dsplink$(XDC_INSTALL_DIR)/gmake -C $(LINK_INSTALL_DIR)/dsplink/dsp/src/samplesBASE_SABIOS=$(BIOS_INSTALL_DIR) XDCTOOLS_DIR=$(XDC_INSTALL_DIR)BASE_CGTOOLS=$(CODEGEN_INSTALL_DIR) clean
else
dsplink_clean:
endif
#==============================================================================
# Install the built binaries to the targetfile system.
#==============================================================================
install:
@echo
@echoCreating $(EXEC_DIR)
@mkdir-p $(EXEC_DIR)
@echoCopying kernel modules to target file system: $(EXEC_DIR)/
@install-m 666 $(DVSDK_INSTALL_DIR)/kernel_binaries/$(PLATFORM)/* $(EXEC_DIR)/
@echoInstalling DVSDK demos..
$(MAKE)-C $(DEMO_INSTALL_DIR)/$(PLATFORM) install EXEC_DIR=$(EXEC_DIR)
@echoCopying examples..
@cp-rpf examples/web $(EXEC_DIR)/
@cp-p examples/dvevmdemo $(EXEC_DIR)/
ifeq ($(PLATFORM),dm6446)
@echoCopying codec servers..
@install-m 666 $(CODEC_INSTALL_DIR)/packages/ti/sdo/servers/encode/encodeCombo.x64P$(EXEC_DIR)/
-@install-m 666 $(CODEC_INSTALL_DIR)/packages/ti/sdo/servers/encode/encodeCombo_e.x64P$(EXEC_DIR)/
@install-m 666 $(CODEC_INSTALL_DIR)/packages/ti/sdo/servers/decode/decodeCombo.x64P$(EXEC_DIR)/
-@install-m 666 $(CODEC_INSTALL_DIR)/packages/ti/sdo/servers/decode/decodeCombo_e.x64P$(EXEC_DIR)/
@install-m 666 $(CODEC_INSTALL_DIR)/packages/ti/sdo/servers/loopback/loopbackCombo.x64P$(EXEC_DIR)/
-@install-m 666$(CODEC_INSTALL_DIR)/packages/ti/sdo/servers/loopback/loopbackCombo_e.x64P$(EXEC_DIR)/
@echoCopying dsplinkk.ko
@install-m 666 $(LINK_INSTALL_DIR)/dsplink/gpp/export/BIN/Linux/DAVINCI/RELEASE/dsplinkk.ko$(EXEC_DIR)/
endif
ifeq ($(PLATFORM),dm6467)
@echoCopying codec servers..
@install-m 666 $(CODEC_INSTALL_DIR)/packages/ti/sdo/server/cs/bin/cs.x64P $(EXEC_DIR)/
@echoCopying mapdmaqhd..
@install-m 777 $(DVSDK_INSTALL_DIR)/mapdmaq-hd/mapdmaq-hd $(EXEC_DIR)/
endif
ifeq ($(PLATFORM),dm355)
@echoCopying mapdmaq..
@install-m 777 $(DVSDK_INSTALL_DIR)/mapdmaq/mapdmaq $(EXEC_DIR)/
endif
#==============================================================================
# Build the Linux examples
#==============================================================================
psp_examples:
$(MAKE)-C $(LINUXEXAMPLES_INSTALL_DIR) PLATFORM=$(PLATFORM)KERNEL_DIR=$(LINUXKERNEL_INSTALL_DIR) CROSS_COMPILE=$(MVTOOL_PREFIX)DEST=$(LINUXEXAMPLES_INSTALL_DIR) all install
@echo
@echo"PSP examples can be found under$(LINUXEXAMPLES_INSTALL_DIR)/$(PLATFORM)"
psp_examples_clean:
$(MAKE)-C $(LINUXEXAMPLES_INSTALL_DIR) PLATFORM=$(PLATFORM)KERNEL_DIR=$(LINUXKERNEL_INSTALL_DIR) CROSS_COMPILE=$(MVTOOL_PREFIX) clean
psp_examples_install:
$(MAKE)-C $(LINUXEXAMPLES_INSTALL_DIR) PLATFORM=$(PLATFORM)KERNEL_DIR=$(LINUXKERNEL_INSTALL_DIR) CROSS_COMPILE=$(MVTOOL_PREFIX)FINAL_DEST=$(EXEC_DIR) install
这两个文件修改完成了,我们的开发环境就可以说安装完成了。在接下来的工作中,我们需要编译自己的Uboot,Kennel,熟悉DVSDK,编写应用程序等开发工作,在以后的章节中进一步讲到。