1.创建DSP Server 对达芬奇的软件来说,DSP Server也叫Codec Server。其中“codec”是一组算法。除算法之外,DSP Server还集成了其他的软件模块(如DSP/BIOS、DSP Link、Codec Engine等)。
引用文档中的定义:A Codec Server is a binary that integrates codecs, framework components and system code.When the Codec Server is on DSP,it uses DSP/BIOS as the DSP kernel.
开发的时候可以用TI提供的Codec Engine GenServer Wizard帮助生成DSP Server。
a.在Codec Engine安装目录下创建Makefile文件。
b.在Makefile文件添加
- # ======== Makefile.ce.genserver ========
- include ../Rules.make
- # Set location of xdc executable
- XDC = $(XDC_INSTALL_DIR)/xdc
- # Note that different releases will require different dependencies
- XDCPATH =
- $(CODEC_INSTALL_DIR);$(CODEC_INSTALL_DIR)/packages;$(CE_INSTALL_DIR)/packages;$(CE_INSTALL_DIR
- )/cetools/packages;$(BIOS_INSTALL_DIR)/packages;$(LINK_INSTALL_DIR)/packages
- # Conditionally, you can create verbose build output
- XDCOPTIONS=v
- export XDCOPTIONS
- export XDCPATH
-
- all: .all-packages
-
- .all-packages:
- $(XDC_INSTALL_DIR)/xs ti.sdo.ce.wizards.genserver
c.在终端中输入make启动GenServer Wizard. 根据向导进行操作,最终得到生成DSP Server所需的文件(如图1)。可能需要根据实际环境简单修改makefile才可以编译生成DSP Server可执行文件.x64P。
图1
2.文件
文件(如图1)分为三类:DSP Server源文件,xDC文件,xDC配置文件。
a.DSP Server源文件:
main.c : 初始化DSP Server及打开Trace功能。engine_open会把DSP从复位状态释放,DSP Server程序开始运行初始化等等。这个初始化就是DSP Server
main.c中的CERuntime_init()。除此之外在main.c中还可以打开Codec Engine的trace功能,读取或更改main函数的参数等。
server.tcf : 定义DSP的memory map、设置DSP的复位/中断向量表并且创建和初始化BIOS程序需要的各种数据对象。在.tcf中我们只能定义编译器默认的 sections。
link.cmd : 在link.cmd中定义自己的sections及连接DSP Server所需要的资源。(例如库文件等)
b.xDC文件:
package.xdc : 定义DSP Server名,路径,依赖关系等。
package.bld : 编译DSP Server时的。根据tcf脚本和link.cmd告诉编译器如何编译DSP Server。
c.xDC配置文件:
server.cfg : 可做以下三部分的配置:
(a) Codec配置:每一个codec都被包含在各自的线程中; 配置每一个codec线程的属性(线程优先级、堆栈大小和堆栈的memory资源)。具体请参考CE_INSTALL_DIR/xdoc/index.html。
(b) DSKT2配置: 把所有的IALG memory类型结合到可用的DSP memory;定义缺省的scratch组的memory大小。
(c) DMAN3配置:定义DMAN3可以管理的DMA通道号;定义DMAN3可以提供给算法的TCC号。
3.xDC
达芬奇的软件开发环境中,有一个DSP工程师比较陌生的工具xDC(Express DSP Component)。和gmake类似,xDC根据一套build指令build生成可执行文件。xDC同时也会build依赖文件,并且可以一次 build多个目标对象的可执行文件。xDC的源文件可以是C程序、C++程序、汇编程序和库文件等。
xDC的调用是通过执行命令 XDC完成的。在此之前需要做以下几步:
a. 在config.bld中定义平台(ARM或DSP),config.bld所在路径由xdcbuildcfg定义;
b. 在package.xdc中定义package,package.xdc在当前路径下;
c. 在package.bld中定义要build的可执行文件和库文件,package.bld在当前路径下;
d. 按照前面的介绍根据自己的应用修改server的.cfg文件。
执行XDC后先产生package.mak,XDC再运行package.mak生成包含可执行文件的package。
参考资料:
《如何搭建达芬奇的DSP SERVER》
作者:德州仪器半导体技术(上海)有限公司 通用DSP 技术应用工程师 崔晶
如有问题请指出,指正!谢谢!
阅读(3166) | 评论(0) | 转发(0) |