主要内容

理解C代码生成DSP系统工具箱

从DSP系统工具箱中的信号处理算法中生成C和c++代码MATLAB®编码器™而且金宝app®编码器下载188bet金宝搏产品。您可以将生成的代码作为源代码、静态库、动态库,甚至作为独立的可执行文件集成到项目中。您还可以生成针对ARM优化的代码®皮质®-M和ARM Cortex-A处理器使用嵌入式编码器®产品。

生成C和c++代码MATLAB代码

使用MATLAB编码器在DSP系统工具箱中,您可以从函数和系统对象生成高度优化的ANSI C和c++代码。有关支持代码生成的函数和系统对象的列表,请参见金宝appDSP系统工具箱中支持C代码生成的函数和系统对象金宝app.你可以使用MATLAB编码器App或codegen(MATLAB编码器)函数根据所选的构建类型生成代码。当构建类型是以下类型之一时:

  • 源代码——生成与外部项目集成的C源代码。

  • MEX代码——生成一个使用默认配置参数在MATLAB中运行的MEX函数。

  • 静态库(.lib)——生成一个二进制库,用于与另一个项目的静态链接。

  • 动态库(.dll)——生成一个二进制库,用于与外部项目进行动态链接。

  • 可执行——生成一个独立的程序(需要一个用C或c++编写的独立主文件)。

如果使用构建脚本指定输入参数类型和代码生成选项,请使用codegen函数。

方法演示代码生成工作流的示例codegen功能,请参阅从MATLAB代码生成C代码.有关每个代码生成步骤的详细信息,请参见使用MATLAB Coder App生成C代码(MATLAB编码器)而且在命令行生成C代码(MATLAB编码器)

为了提高所生成代码的执行速度和内存使用率,MATLAB编码器有几个优化选项。详情请参见生成代码中的MATLAB编码器优化(MATLAB编码器)

生成C和c++代码金宝app模型

使用金宝app仿真软件编码器,您可以从DSP系统工具箱中的Simulink块生成高度优化的ANSI C和c++代码。金宝app有关支持代码生成的块的列表,请参见金宝app金宝appDSP系统工具箱中的Simulink块支持C代码生成金宝app.或者,您可以在DSP系统工具箱的Simulink块数据类型支持表中找到此数据。金宝app金宝app要访问这个表,在MATLAB命令提示符中输入以下命令:

“代码生成支持”列下的“X”块支持代码生成。金宝app

您可以从Simulink模型生成代码,构建可执行文件,甚至在MA金宝appTLAB中运行可执行文件。有关示例,请参见从Simulink模型生成C代码金宝app

有关每个代码生成步骤的详细信息,请参见为模型生成C代码(金宝app仿真软件编码器)

生成的ANSIC代码优化

生成的C代码通常适用于嵌入式应用程序,并包括以下优化:

  • 函数重用(运行时库)-通过调用共享实用函数重用公共算法函数。共享效用函数是高度优化的ANSI/ISO C函数,实现FFT和卷积等核心算法。

  • 参数重用(金宝app仿真软件编码器运行时参数)-对于特定参数具有相同值的块的多个实例指向生成代码中的相同变量。这个过程减少了内存需求。

  • 块具有影响代码优化的参数-一些区块,如正弦波块,具有使您能够优化模拟内存或速度的参数。这些优化也适用于代码生成。

  • 其他优化使用连续的输入和输出数组、可重用的输入、可覆盖的数组和内联算法,可以生成更小的C代码,在运行时更有效。

共享库依赖关系

在大多数情况下,从DSP System Toolbox对象和块生成的C/ c++代码是可移植的。在生成代码之后,使用packand -go实用程序,可以将代码打包并重新定位到另一个没有安装MATLAB和Simulink的开发环境中。金宝app有关示例,请参见将MATLAB代码生成的代码迁移到另一个开发环境而且将从Simulink模型生成的代码重新定位到另一个开发环境金宝app

有一些DSP系统工具箱功能生成的代码具有有限的可移植性。从这些特性生成的可执行文件依赖于MATLAB中包含的预构建的动态库文件(.dll文件)。在外部环境中运行相应的可执行文件时,必须包含这些.dll文件。有关此类对象和块的列表以及如何在MATLAB之外运行这些可执行文件的信息,请参见如何在MATLAB之外运行生成的可执行文件

这两个金宝app仿真软件编码器而且MATLAB编码器提供函数来帮助您设置和管理模型的构建信息。例如,其中一个函数金宝app仿真软件编码器提供了,getNonBuildFiles(金宝app仿真软件编码器),允许您识别模型中的块所需的共享库。如果您的模型包含任何使用预编译共享库的块,您可以在目标系统上安装这些库。安装共享库的文件夹必须在系统路径上。目标系统不需要安装MATLAB,但需要得到MATLAB的支持。金宝app有关其他信息,请参见构建过程定制(金宝app仿真软件编码器).这个函数getNonBuildFiles也可以应用于MATLAB算法。有关更多信息,请参见构建过程定制(MATLAB编码器)

生成C代码手臂皮质- m和手臂皮质——一个处理器

DSP系统工具箱支持针对流行算法(如FIR滤波金宝app和FFT)的优化C代码生成手臂皮层- m和手臂皮层——一个处理器。要生成此优化代码,必须安装ARM Cortex-M处理器金宝app的嵌入式编码器支持包ARM Cortex-A处理器金宝app的嵌入式编码器支持包.此外,您还必须具备以下产品:DSP系统工具箱,下载188bet金宝搏MATLAB编码器、嵌入式编码器、Simulink和金宝app金宝app仿真软件编码器用于基于金宝appSimulink的工作流。

使用这些Embedded Coder支持包,您可以生成金宝app可以链接CMSIS库或调用Ne10库函数的C代码。可以对生成的代码进行编译,以提供可运行的优化的可执行文件手臂皮层- m或手臂皮层——一个处理器。

您还可以移植生成的手臂皮层-M CRL代码从MATLAB到KEIL μVision IDE和IAR Embedded Workbench。详细信息请参见将MATLAB生成的ARM Cortex-M CRL代码移植到KEIL μVision IDE中而且将生成的ARM Cortex-M CRL代码从MATLAB移植到IAR嵌入式工作台

下载嵌入式编码器支持包金宝app手臂皮层处理器,看到//www.tatmou.com/hardware-金宝appsupport.html

有关支持包和下载说明的详细信息,请参见金宝appARM Cortex-M处理器金宝app的嵌入式编码器支持包而且ARM Cortex-A处理器金宝app的嵌入式编码器支持包

为移动设备生成代码

使用Appl金宝appe iO金宝appS设备的Simulink支持包,您可以在iPhone、iPod Touch和iPad上创建和运行Simulink模型。您还可以监视和调整在Apple设备上运行的算法。有关示例,请参见阵列绘图与苹果iOS设备(金宝app苹果iO金宝appS设备的Simulink支持包)

使用金宝appAndr金宝appoid™设备的Simulink支持包,您可以在受支持的Android设备上创建和运行S金宝appimulink模型。金宝app有关示例,请参见Android设备阵列绘图

另请参阅

功能

相关的话题

外部网站