<![endif]--> <![endif]-->
WINCE 平台DSPLINK 例子程序ReadWrite 编译及运行
1. 实验平台介绍
移植平台: ICETEK-OMAP3530-MINI ( ICETEK 不提供 WINCE 支持,介意使用 DEVKIT8000 或者 TI_EVM )
BSP 包来源: TI 官方申请( http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bsp/latest/index_FDS.html )
实验意义:通过该实验了解 WINCE 平台下 OMAP3530 ARM 核与 DSP 核程序的协作运行。
2. 实验过程
2.1 ARM 端应用程序编译过程
2.1.1 命令编译 ARM 端应用程序
l 启动 VS2005 打开 WINCE 工程,在 Solution Explorer 的 Subproject 项下右键点击 DSPLink 工程。
图 1 :打开命令编译窗口
l 切换目录到 %DSPLINK% etc/host/scripts/msdos 目录下并执行该目录下的脚本文件 dsplinkcfg.bat 。( %DSPLINK% 为 DSPLink 的安装目录,该脚本文件功能为设置命令编译所需要的环境变量)。
图 2 : CMD 窗口执行命令
l 继续在该 CMD 窗口下执行命令: dsplinkcfg.bat --platform=OMAP3530 --nodsp=1 --dspcfg_0=OMAP3530SHMEM --dspos_0=DSPBIOS5XX --gppos=WINCE --comps=poslm ( 注意: --comps 的功能是确定 DSPLINK 功能所需要的组件,参数根据应用程序的需要进行设置。具体参数的意义参考: %DSPLINK% config/bin 目录下 dsplinkcfg.pl 文件 )
图 3 : CMD 窗口执行配置命令
l 编译 DSPLINK 组件(主要生成 DSPLINKK.DLL 等动态链接库及调用的 LIB )
l 切换目录到 %DSPLINK%gpp/src 。
l 执行命令 gmake clean 清空之前编译的文件。(如果没有找到命令 gmake ,则将 gmake 所有文件的路径添加到环境变量中)。
图 4 : CMD 窗口执行 gmake clean 命令
l gmake release 或者 gmake debug (根据 WINCE 工程选用的是 RELEASE 编译还是 DEBUG 编译而定)。
图 5 : CMD 窗口执行 gmake release 命令
l 切换目录到 %DSPLINK%gpp/src/sample/readwrite 并执行命令 gmake release 生成 readwritegpp.exe 文件。
图 6 : CMD 窗口执行命令生成 readwritegpp.exe
2.1.2 IDE 编译 ARM 端应用程序 (VS2005)
l 设置 IDE 编译 DSPLINK 所需要的环境,右键单击工程,选择 properties 选项。
l 选择添加新的环境变量,添加环境变量 CFG_DSPLINK_STR ,变量值为: --platform=OMAP3530 --nodsp=1 --dspcfg_0=OMAP3530SHMEM --dspos_0=DSPBIOS5XX --gppos=WINCE --comps=poslm (该环境变量将自动传递给 dsplinkcfg.bat 文件)。
l (可选择步骤)添加其它环境变量 dsplink ,其值为 dsplink 安装所在的目录;环境变量 dvsdk_install_str ,其值为 dvsdk 安装所在的目录。(如果不定义该环境变量,可能编译不正确) 。
l 选择编译子工程,将自动生成 dsplinkk.dll 等文件。(但是应用程序编译推荐使用命令进行编译)。
2.2 DSP 端readwrite.out 文件编译过程
2.2.1 命令编译 DSP 端程序
l 紧接着命令编译 readwritegpp.out 文件之后,切换目录至 DVSDK 的安装目录之下,执行脚本文件 setpath.bat 。(主要作用是设置编译 DSP 端程序的环境变量)
图 7 :执行脚本 setpath.bat
l 切换目录至: %DSPLINK%dsp/src ,并执行命令 gmake clean 清除先前编译的文件。
图 8 执行命令 gmake clean
l 执行命令 gmake release 或者 gmake debug 生成 DSP 端的动态链接库文件。
图 9 执行命令 gmake release 生成 DSP 端动态链接库
l 切换目录至: %DSPLINK%dsp/src/sample/readwrite ,并执行命令 gmake release 或 gmake debug 生成 readwrite.out 文件。
图 10 执行命令 gmake release 生成 readwrite.out
2.2.2 IDE 编译 readwrite.out 文件( CCS 3.3 )
l 启动 CCS Setup 选择处理器类型为 OMAP3530 XDS510 Emulator 。(如果没有该选项,则选择其它的 DSP 64+ CPU 代替)。
l 启动 CCS ,右键单击 C6400PLUS_0 ,选择打开设备选项,启动 CCS 编译器界面。
l 新建 DSP 工程 TestReadWrite 。
l 将 ReadWrite 源文件目录下的 readwrite.tci 文件及 ReadWrite/DSPBios/OMAP3530 目录下的 readwrite.tcf 文件拷贝到工程 TestReadWrite 目录下,并向工程中添加文件。(注意设置工程的编译属性为 RELEASE 或者为 DEBUG )
l 双击 readwrite.tcf 文件,由于找不到 dsplink-omap3530-base.tci 将产生如下错误。
l 解决方法为:
n 在 DSP/BIOS 安装目录下寻找 dsplink-omap3530-base.tci 文件并拷贝该文件到工程目录。(个人认为该方法较好,因为可以修改该文件而不影响全局的使用)
n 设置编译属性,添加查找 tci 文件的目录。
l 再次双击 readwrite.tcf 文件,打开工程 DSP/BIOS 的配置界面。(如果仍然出现错误,则可能是 DSP/BIOS 选择的版本出现问题,需要进行 DSP/BIOS 版本的设置,具体设置参考注意事项),注意图中的 cache 映射没有进行设置正确 。
l 向工程中添加源文件及头文件。
l 设置其它编译选项。
n 设置编译 CPU 的型号。
n 设置头文件的搜索路径。( .;%DSPLINK%/dsp/inc;%DSPLINK%/dsp/inc/DspBios;%DSPLINK%/dsp/inc/DspBios/5.XX;%DSPLINK%/dsp/inc/DspBios/5.XX/OMAP3530/;%DSPLINK%/dsp/inc/C64XX;%DSPLINK%/dsp/export/INCLUDE/DspBios/OMAP3530;%DSPLINK%/dsp/src/base/hal;%DSPLINK%/dsp/src/base/hal/DspBios/OMAP3530 )
n 设置预编译宏。 DOS_WINCE;MAX_DSPS=1;MAX_PROCESSORS=2;ID_GPP=1;OMAP3530;PROC_COMPONENT;POOL_COMPONENT;NOTIFY_COMPONENT;MPCS_COMPONENT;RINGIO_COMPONENT;MPLIST_COMPONENT;MSGQ_COMPONENT;MSGQ_ZCPY_LINK;CHNL_COMPONENT;CHNL_ZCPY_LINK;OMAP3530_PHYINTERFACE=SHMEM_INTERFACE;ZCPY_LINK (预编译宏的定义具体可以参考由命令编译生成的 readwrite_defines.txt )
n 设置链接的搜索路径。 %DSPLINK%/dsp/export/BIN/DspBios/OMAP3530/OMAP3530_0/RELEASE;D:/TexasInstrument/CCStudio_v3.3/c6400/dsplib/lib;D:/TexasInstrument/CCStudio_v3.3/c6400/imglib/lib;D:/TexasInstrument/CCStudio_v3.3/C6000/cgtools/lib
n 设置链接的链接文件。 dsplink.lib;dsplinkpool.lib;dsplinkmpcs.lib;dsplinkmplist.lib;dsplinkmsg.lib;dsp64x.lib; ( 以上的动态链接文件采用命令的方式编译生成 )
l 重新编译工程,由于工程没有 cmd 文件,将会产生很多的错误,而编译工程后,将自动生成 cmd 文件。
l 添加 cmd 文件到工程中,重新编译该工程,生成 TestReadWrite.out 文件。
3. 程序运行测试及运行结果
拷贝编译生成的文件 readwritegpp.exe 和 readwrite.out 文件到 WINCE 平台,运行命令: readwritegpp readwrite.out 2280587264 1024 10000 。
如果发生运行错误,参见: http://processors.wiki.ti.com/index.php/Troubleshooting_DSPLink_configuration_issues
4. 注意事项
如果 DSP/BIOS 的版本和程序配置的版本不匹配,将会产生错误,这需要设置 DSP/BIOS 的版本。
l 启动 CCS 组件管理程序。
l 重新设置 DSP/BIOS 的版本号。
5. 参考文献
1. EVM3530 BSP User Guide.pdf (很重要)
2. http://elinux.org/DevKit8000_FAQ#.E5.85.B3.E9.97.AD.E8.A7.A6.E6.91.B8.E5.B1.8F.E6.A0.A1.E5.87.86 (有很多问题都提供了解决方案)
3. http://code.google.com/p/omapminiboard/ ( WINCE 支持不是很好)
4. http://processors.wiki.ti.com/index.php?title=Category:OMAP35x ( OMAP 维基百科)
5. http://code.google.com/p/beagleboard/ (beagleboard 开发板 GOOGLE PROJECT )
6. http://beagleboard.org/ ( beagleboard 开发板 官方)
7. http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bsp/latest/index_FDS.html (TI bsp 申请地址 )
8. http://processors.wiki.ti.com/index.php/Building_The_OMAP-L1_SDK