分类: C/C++
2011-08-16 20:37:52
从MATLAB代码生成C/C++代码
MATLAB Coder™ 可以从MATLAB®代码生成独立的、可读性强、可移植的C /C++代码。MATLAB Coder 支持程序控制结构,函数和矩阵操作。它可以生成MEX函数,该函数可以加速MATLAB代码的运行速度并且验证生成代码的属性。MATLAB Coder™结合 Simulink Coder™和 Embedded Coder™可以将含有MATLAB代码的Simulink®模型生成C代码,生成的C代码可以用来:
特点:
MATLAB Coder 工程管理界面(左)和代码生成报告(右),该报告显示了生成的C代码.
强大的功能
■ 可生成代码的MATLAB 语言子集
MATLAB Coder可以针对某些MATLAB 语言生成代码,这些语言一般都是设计工程师在开发大型系统的算法时经常用到的。这些支持的子集包括超过400个操作符和MATLAB中的函数。
MATLAB Coder支持对Aerospace Toolbox,Image Processing Toolbox™和Signal Processing Toolbox™中的部分函数生成代码,而且支持对Communications System Toolbox™,Computer Vision System Toolbox™和DSP System Toolbox™中的系统对象生成代码。
MATLAB Coder支持开发算法时用到的大部分MATLAB语言,包括:
MATLAB Coder的应用通过使用MATLAB Coder,设计工程师可以在MATLAB中开发算法,然后生成可读性强和可移植的C/C++代码,利用该代码可以:
MATLAB Coder应用情况
■ 从MATLAB中生成代码
将MATLAB语言转换成C代码在执行过程中需要确定一定的要求,MATLAB Coder可以在MATLAB语言环境中指导你完成这个过程。由于MEX函数需要调用编译好的C代码,所以可以通过生成MEX函数,然后在MATLAB中运行该函数来确保你的算法符合代码生成规则。MATLAB Coder 生成一个报告,这个报告中会指出在从MATLAB算法到生成代码过程中必须改正的错误。通过不断的修正错误、生成MEX函数这种迭代过程直到MATLAB算法满足代码生成的要求,这时就可以生成C/C++的源代码或者MEX函数了。
C 或者C++源代码可以用来:
MEX文件可以代替MATLAB代码被调用:
通过使用MATLAB Coder从MATLAB生成代码的三步迭代流程
■ MATLAB Coder 、Simulink Coder和Embedded Coder
用于仿真的MATLAB Function模块和代码生成可以让你将MATLAB算法生成算法集成到Simulink模型中。Simulink Coder可以将这些Simulink包含MATLAB代码的模型生成代码。
Simulink中的雷达跟踪模型,这个模型使用MATLAB Function模块
在这个模块中有用MATLAB编写的卡尔曼滤波算法
Embedded Coder可以针对支持的嵌入式处理器、面向目标的快速控制原型板,及微处理器的需要和微处理器生成代码,它提供了配置选项和可以更好的控制生成代码的函数、文件和数据的高级优化选项,因此它扩展了MATLAB Coder和Simulink Coder。Embedded Coder 提高了代码效率,并且能很方便的集成已有代码,数据类型和产品中的标定参数。
使用Embedded Coder生成的代码,可以导出到第三方的开发环境中,可以在嵌入式系统中自动创建可执行文件。生成的代码可以在处理器上执行用来验证性能,可以通过PIL仿真和代码剖析的方法来查看代码在硬件上的运行情况。