关于omap3530的ARM核与DSP核通信的解决方案(1)
仙神 2011-09-21 04:16:24
1. 软件安装
a) 安装dsp编译工具
i. 在windows下复制 TI-C6x-CGT-v6.0.16.1.bin 到与虚拟机共享的share目录
ii. 起动虚拟机,起动控制台
iii. 输入 cd ~/workdir/ 进入workdir目录
iv. 输入 chmod +x TI-C6x-CGT-v6.0.16.1.bin 设定可执行属性
v. 输入 ./TI-C6x-CGT-v6.0.16.1.bin 安装
vi. 安装过程中选择安装路径时,输入 /home/realtimedsp/workdir/cg6x_6_0_16即可
b) 安装 xdc 编译工具
i. 在windows下复制 xdctools_setuplinux_3_15_01_59.bin 到与虚拟机共享的share目录
ii. 起动虚拟机,起动控制台
iii. 输入 cd ~/workdir/ 进入workdir目录
iv. 输入 chmod +x xdctools_setuplinux_3_15_01_59.bin 设定可执行属性
v. 输入 ./xdctools_setuplinux_3_15_01_59.bin 安装
vi. 安装过程中选择安装路径时,输入 /home/realtimedsp/workdir/xdctools_3_15_01_59即可
c) 安装 dsp/bios 编译工具
i. 在windows下复制 bios_setuplinux_5_33_06.bin 到与虚拟机共享的share目录
ii. 起动虚拟机,起动控制台
iii. 输入 cd ~/workdir/ 进入workdir目录
iv. 输入 chmod +x bios_setuplinux_5_33_06.bin 设定可执行属性
v. 输入 ./bios_setuplinux_5_33_06.bin 安装
vi. 安装过程中选择安装路径时,输入 /home/realtimedsp/workdir/bios_5_33_06即可
d) 安装 dvsdk
i. 在windows下复制 dvsdk_3_00_02_44.tar.gz 到与虚拟机共享的share目录
ii. 起动虚拟机,起动控制台
iii. 输入 cd ~/workdir/omap3530/project 进入project目录
iv. 输入 tar -xvf /mnt/windows/dvsdk_3_00_02_44.tar.gz 解压dvsdk工程到本目录下
2. 修改环境配置
a) 配置dvsdk_3_00_02_44/codec_engine_2_24/examples/xdcpaths.mak:
i. 设定xdc用到的环境变量,注意使用绝对路径
设定CE_INSTALL_DIR := /home/realtimedsp/workdir/omap3530/project/dvsdk_3_00_02_44/codec_engine_2_24
设定XDC_INSTALL_DIR := /home/realtimedsp/workdir/xdctools_3_15_01_59
设定BIOS_INSTALL_DIR := /home/realtimedsp/workdir/bios_5_33_06
设定DSPLINK_INSTALL_DIR:= /home/realtimedsp/workdir/omap3530/project/dvsdk_3_00_02_44/dsplink_1_61_03/packages
设定XDAIS_INSTALL_DIR := /home/realtimedsp/workdir/omap3530/project/dvsdk_3_00_02_44/dmai_2_00_01_04
设定FC_INSTALL_DIR := /home/realtimedsp/workdir/omap3530/project/dvsdk_3_00_02_44/framework_components_2_24
设定CMEM_INSTALL_DIR := /home/realtimedsp/workdir/omap3530/project/dvsdk_3_00_02_44/linuxutils_2_24_02
设定BIOSUTILS_INSTALL_DIR := /home/realtimedsp/workdir/omap3530/project/dvsdk_3_00_02_44/biosutils_1_01_00
设定EDMA3_LLD_INSTALL_DIR := /home/realtimedsp/workdir/omap3530/project/dvsdk_3_00_02_44/edma3_lld_01_10_00_01
设定LPM_INSTALL_DIR := /home/realtimedsp/workdir/omap3530/project/dvsdk_3_00_02_44/local_power_manager_1_24
ii. 如果某个工具不存在,又不需要则注释掉即可,同时注释掉跟这个目录相关的语句
iii. 配置arm编译器路径
设定CGTOOLS_V5T := /home/realtimedsp/workdir/arm-2009q1
iv. 配置dsp编译器的路径
设定CGTOOLS_C64P := /home/realtimedsp/workdir/cg6x_6_0_16
设定CGTOOLS_C674 := /home/realtimedsp/workdir/cg6x_6_0_16
3. Dvsdk编译环境配置
a) 输入gedit rules.make
设定DVSDK_INSTALL_DIR=${HOME}/workdir/omap3530/project/dvsdk_3_00_02_44
设定 CODEGEN_INSTALL_DIR=/home/realtimedsp/workdir/cg6x_6_0_16
设定 XDC_INSTALL_DIR=/home/realtimedsp/workdir/xdctools_3_15_01_59
设定 BIOS_INSTALL_DIR=/home/realtimedsp/tools/bios_5_33_06
设定 LINUXKERNEL_INSTALL_DIR=/home/realtimedsp/workdir/omap3530/project/linux-02.01.03.11
设定UBOOT_INSTALL_DIR=/home/realtimedsp/workdir/omap3530/projects/uboot-02.01.03.11
设定CSTOOL_DIR=/home/realtimedsp/workdir/arm-2009q1
设定EXEC_DIR=${HOME}/workdir/filesys/opt/dvsdk/$(PLATFORM)
4.DMAI 编译环境设置
DVSDK_3_00_INSTALL_DIR = $(HOME)/workdir/omap3530/projects/dvsdk_3_00_02_44
CE_INSTALL_DIR_o3530_al = \
$(DVSDK_3_00_INSTALL_DIR)/codec_engine_2_24
LINUXKERNEL_INSTALL_DIR_o3530_al = \
$(HOME)/workdir/lsp
CROSS_COMPILE_o3530_al = \
$(HOME)/workdir/arm-2009q1/bin/arm-none-linux-gnueabi-
XDC_INSTALL_DIR_o3530_al = \
$(HOME)/workdir/xdctools_3_15_01_59
EXEC_DIR_o3530_al = \
$(HOME)/workdir/filesys/opt/dvsdk/$(PLATFORM)
4. 编译 dvsdk
a) 以上设定完成后,回到 /home/realtimedsp/workdir/omap3530/project/dvsdk_3_00_02_44 目录下,先输入 make clean, 清除以前编译的临时文件,在 输入 make 对 整个的dvsdk工程编译一次。这里会编译cmem组件和lpm组件模块,为以后的算法编译做准备
b) 编译dsplink, 在当前dvsdk根目录下,输入 make dsplink_clean,先清除以前编译产生的临时文件,再输入 make dsplink 编译dsplink组件模块
5. 程序开发
a) codec程序开发
开发Ti程序最简单的方法,复制例程,然后在本例程基础上修改。以下以制作直方图统计为例,说明操作步骤如下:
i. 复制
复制dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples/codecs/目录下的videnc_copy目录, 改变本目录的安全属性,使一般用户可读写。
ii. 改目录名和文件名
首先将复制的目录名改为videnc_histogram, 然后进入目录做如下更改
videnc_copy.c 改为 videnc_histogram.c
VIDENC_COPY.xdc 改为VIDENC_HISTOGRAM.xdc (注意大写)
VIDENC_COPY.xs 改为VIDENC_HISTOGRAM.xs (注意大写)
videnc_copy_ti.h 改为videnc_histogram_ti.h
videnc_copy_ti_priv.h 改为videnc_histogram_ti_priv.h
iii. 改文件内容
1. Makefile内容不变
2. package.bld: 打开package.bld, 查找替换文件中的copy 为 histogram
3. Package.mak 是自动生成的文件,不变。
4. Package.xdc: 打开Package. xdc, 改 copy为histogram, 改COPY为 HISTOGRAM
5. Package.xs: 打开Package.xs, 查找替换文件中的copy 为 histogram, 查找替换文件中的COPY 为 HISTOGRAM
6. Videnc_histogram.c: 打开videnc_histogram.c, 查找替换文件中的copy 为 histogram,查找替换文件中的COPY 为 HISTOGRAM
7. VIDENC_HISTOGRAM.xdc: 打开VIDENC_HISTOGRAM.xdc,查找替换文件中的COPY 为 HISTOGRAM
8. VIDENC_HISTOGRAM.xs不变
9. videnc_histogram_ti.h: 打开videnc_histogram_ti.h,查找替换文件中的COPY 为 HISTOGRAM
10. videnc_histogram_ti_priv.h: 打开videnc_histogram_ti_priv.h,查找替换文件中的COPY 为 HISTOGRAM
iv. 添加算法
打开Videnc_histogram.c
想加算法的话,就用自己的算法替换第 333 行到 381 行的复制语句,不做替换是就是个简单的内存复制,我们暂不加自己的算法。
v. 编译
在命令窗口中进入本工程的根目录, 先调用make clean清过程文件,再调用用make 生成codec库, 这时在lib目录里可以生成videnc_histogram.a64P等库文件,如果没有生成这些文件,则说明之前中间哪一步做错了。
b) server程序开发
开发Ti程序最简单的方法,复制例程,然后在本全程基础上修改。以下以制作直方图统计为例,说明操作步骤如下:
i. 复制
复制dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples/servers/目录下的all_codecs目录, 改变本目录的安全属性,使一般用户可读写。
ii. 改目录名和文件名
首先将复制的目录名改为video_histogram, 然后进入目录做如下更改
改all.cfg 为video_histogram.cfg
改all.tcf 为video_histogram.tcf
iii. 改文件内容
1. link.cmd: 不变
2. main.c: 查找替换文件中的all_codecs为 video_histogram
3. package.bld: 查找替换文件中的all_codecs为 video_histogram, 替换 serverName = "all" 为 serverName = "video_histogram"
4. package.mak: 不变
5. package.xdc: 查找替换文件中的all_codecs为 histogram
6. video_histogram.cfg: 查找替换文件中的all_codecs 为 videnc_histogram, 查找替换videnc_copy为videnc_histogram,查找替换文件中的VIDENC_COPY 为 VIDENC_HISTOGRAM
iv. 编译
在命令窗口中进入本工程的根目录, 先调用make clean清过程文件,再调用用make 生成server库, 这时在工程的bin/ti_platforms_evm3530目录下可以生成video_histogram.x64P库文件,如果没有生成这个文件,则说明之前中间哪一步做错了。
c) 应用程序开发
开发Ti程序最简单的方法,复制例程,然后在本全程基础上修改。以下以制作直方图统计为例,说明操作步骤如下:
i. 复制
复制dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples/apps/目录下的video_copy目录, 改变本目录的安全属性,使一般用户可读写。
ii. 改目录名
首先将复制的目录名改为video_histogram, 然后进入目录做如下更改