利用MATLAB调试及直接生成DSP目标代码
传统的DSP设计开发流程分为两个部分:开发设计和产品实现。在开发设计部分完成算法开发和方案设计,产品的实现用来验证开发设计的正确性,通常是在不同的部门相互独立地完成。这样的开发流程存在许多问题,如相互之间的协作,系统范围内的算法测试,系统设计的错误不能被及时发现等。
利用Matlab和Simulink系统级的设计方法和快速原型的自动化工具可以解决这些问题。 系统级设计方法的核心是将算法设计和系统级设计仿真在统一的开发环境中进行,从而有效地将开发流程的将两个部分结合在一起。进行系统级设计需要一个统一的开发环境,且在该开发环境中可以对系统结构、算法进行描述,还能够对系统不同层次,不同组件和不同数据类型进行建模;同时要有良好的移植性能。Simulink提供了这样一个很好的开发环境,它是基于图块的系统级仿真环境。分级系统的描述方式,提供了真正的自顶向下的设计方法,并且通过图块的方式实现移植。 利用RTW-EC(real-time workshop embedded coder)等工具为用户算法自动生成嵌入式代码,这是一种高效、实用的方法,目前国内外各大公司在进行新产品开发时已广泛采用。他的核心思想是让工程师把主要精力集中于算法的研究上,把枯燥、困难的代码编写工作留给计算机去自动完成,这样可以大大缩短产品的开发周期,降低市场风险。
利用RTW-EC生成DSP代码,可以利用Embedded IDE Link可将matlab 与ccs进行无缝链接,用户可以利用MATLAB脚本和simulink模型在TI系列DSP上调试、验证自动生成的嵌入式代码。利用RTW-EC等工具,从模型生成实时C代码,通过For Use with TI’s CCS自动调用CCS开发工具来编译链接生成的C代码,并自动下载到TI的目标板上执行生成的代码。
利用RTW-EC生成DSP代码的步骤: 1、 用户建立matlab/simulink/stateflow 模型model.mdl。RTW读取模型文件并对其进行编译,形成描述模型的model.rtw文件,该文件以ASCLL码的形式进行存储。 2、 TLC目标语言编译器读取model.rtw文件中的信息,将模型转化成源代码。TLC文件有两种形式,系统TLC文件和模块TLC文件,前者控制整个模型的代码生成,不同的目标使用不同的系统目标文件。比如一般实时目标使用grt.tlc,嵌入式实时目标使用ert.tlc,而后者仅针对某一模块,决定某一模块对应生成什么样的代码。 3、 生成指定目标代码。RTW代码生成器需要makefile模板,该文件指定合适的C或C++编译器及编译过程中的编译器选项,通过代码生成器将makefile模板文件生成目标makefile文件(model.mk),指导程序编译和链接模型中生成的源代码,主程序等。 4、 链接开发目标程序所需的环境。建立运行时的接口支持库,将模型生成的代码编译成在目标系统上直接运行的可执行文件。 通过TLC生成s-function代码,可以将用户手写代码嵌入到生成代码中。通过TLC生成的代码是高度优化的,注释完整;并且能够从任何包含线性的、非线性的、连续的、离散的或混合模块的模型生成代码,除了调用M文件编写的不符合embedded matlab子集的函数模块和s-function模块外,其他的模块都能自动转化成代码/。 而利用RTW-EC代码生成工具,从matlab/simulink/stateflow用户模型中产生的代码,是针对嵌入式器件生成的实时代码,其代码长度短,执行效率高等特点。
|