matlab嵌入式代码生成_第1页
matlab嵌入式代码生成_第2页
matlab嵌入式代码生成_第3页
matlab嵌入式代码生成_第4页
matlab嵌入式代码生成_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——matlab嵌入式代码生成

EmbeddedCoder

——为嵌入式系统生成优化的C/C++代码

Embeddedcoder可为嵌入式处理器、目标上的快速原型及产品中使用的微处理器生成可读的、集成的、高效的C/C++代码。Embeddedcoder扩展了Matlabcoder和Simulinkcoder配置选项和优化设置,来更好的控制生成代码的函数、文件和数据。这些优化设置提高了代码的执行效率,并能够集成产品应用时的外部代码、数据类型及标定参数。还可以将第三方开发环境集成到为嵌入式系统生成可执行文件的build过程中。

Embeddedcoder本身提供对AUTOSAR和ASAP2软件标准的支持。同时也提供可追溯性报告、代码接口文件和自动化的软件测试来支持DO-178B,IEC61508和ISO26262的软件开发。

特点:

?????

扩展了Matlabcoder和Simulinkcoder的优化和代码生成配置选项。?具有使用Simulink数据字典进行存储类型、数据类型和别名定义的能力。?针对具体目标平台的代码优化。?

无论有无RTOS的多速率、多任务和多核的代码执行。?

代码验证,包含SIL/PIL测试,自定义解释,具有模型和需求到代码双向追踪的代码报告。?

?集成TexasInstrumentsCodeComposerStudio?,Analog?Devices?VisualDSP++?及其它的第三方嵌入式开发环境。

?对标准的支持,包含ASAP2,AUTOSAR,DO-178,IEC61508,ISO26262,?andMISRAC。

一个生成代码的定点模型和它的设置为SIL执行的仿真模型。

EmbeddedCoder可进行产品级的嵌入式系统代码快速生成、归档和测试。

强大的功能

■配置目标平台

可使用MatlabCoder的工程用户界面及SimulinkModelExplore来设置EmbeddedCoder的代码生成的配置选项。也可以直接使用Matlab命令和脚本的形式对每个选项进行设置。

从MatlabCoder的工程用户界面,可进行:

????

为MATLAB文件和函数生成代码。?选择使用EmbeddedCoder特性。?为代码生成配置功臣设置选项。?创立、加载和重用多个工程。?

从SimulinkModelExplore,可进行:

????

为Simulink模型和子系统生成代码。?选择一个EmbeddedCoder目标。?为代码生成进行目标配置。?创立、加载和重用多个配置集。?

■选择目标

EmbeddedCoder使用配置对象和系统目标文件将MATLAB代码和Simulink模型转换为产品级的源代码和可执行文件。

对于一个MATLAB配置对象,需要说明如下的输出目标:

???

MEX文件?C/C++静态库?C/C++可执行文件?

对于Simulink系统目标文件,需要说明生成的代码即将运行在哪种实时环境中。

EmbeddedCoder包含多种配置的目标文件,也支持第三方和自定义目标。内置的目标

包括:

?EmbeddedReal-Time目标:为任意的产品级处理器生成具有定点和浮点数据的ANSI/ISO?C,C++代码,可进行高效的实时运行。

??

AUTOSAR目标:生成支持AUTOSAR软件组件的C代码和实时运行接口。?共享库目标:生成可在主机目标平台上运行的静态库,如windows的动态链接库(.dll),UNIX共享目标文件(.so)。?

?IDE?LINK目标:生成支持第三方集成开发环境编译和下载的代码,如(CCS)。

■定义嵌入式硬件特性

可从预定义的列表或者使用目标设置为MATLAB或者SIMULINK代码生成选择目标平台。可通过自定义环境来扩展这个预定义的列表。

可通过SimulinkModelExplore为代码部署设置预定义列表或者设置生成的微处理器选项。EmbeddedCoder可为任意的微处理器或者DSP生成代码,包括8位,16位,32位。

■定义及控制自定义数据

EmbeddedCoder可以定义及控制生成代码中的数据格式。为了便于软件集成,可以通过MATLABCoder工程用户界面说明入口函数和全局数据的类型、长度及是否是复数。

对于MATLAB代码,EmbeddedCoder支持所有的MATLABCoder的数据定义,包括定点数据对象。

对于Simulink模型,EmbeddedCoder生成代码支持如下的数据说明及数据字典定义:

?Simulinkdata?object—提供预定义存储类型,包括constant,volatile,exportedglobal,importedglobal,structure,bitfileld及获取和设置的方法。

?Modulepackagingdata?object—为高级的数据对象提供预定义的特性,主要用于多种产品,如内存分派来进行标定或者调理查表数据。

?Userdata?type-从繁杂的数据中创立抽象的数据类型,可确切控制生成代码中的模型数据,可与legacydata进行交互,同时也可替代simulink内置的数据类型。

如下的工具将有助于在simulink中设计和管理工程数据:

?CustomStorageClass?Designer-通过图形化的界面创立自定义的数据定义和声明,将数据结构导入到生成的代码中,或者是导出数据,分派内存,将自动生成与交换标准如ASAM或者ASAP2兼容的数据格式。

?SimulinkModel?Explore—显示simulink模型和stateflow图中所有用到的数据,可以以数据字典的格式查看所有自定义数据的信息。

?Embedded?Coder可以创立ASAP2的数据交换文件,能够使用ASAP2标准导出具有繁杂数据定义的模型数据。可修改内置的属性生成其它的数据交换机制文件。

通过CustomStorageClassDesigner创立自定义的存储类型,可使用内置图形用户界面进

行设计、查看及验证繁杂数据类型。

■优化及打包代码

使用EmbeddedCoder,可控制函数边界、保存表达式,对多个模块使用优化选项以减少代码量。数据通过全局变量或者函数参数的形式与生成的代码进行交换。可将生成的代码追溯到模型中的模块和信号。

从MATLAB代码和Simulink模型生成代码,EmbeddedCoder选项可进行:

????

为数学函数和操作符生成具体目标平台的代码。?生成导出到外部环境的可重用代码。?

减少不必要的初始化、终止、记录和错误处理的代码。?从整形应用中去除浮点型代码。?

EmbeddedCoder还为simulink模型提供额外的代码优化和配置选项,可进行:

从模型中生成具有处理器编译宏定义的代码变量。

按位存储布尔型数据和stateflow状态。

???

可控制每个生成文件的格式。?

控制全局变量数据是如何定义和引用的。?对解释的内容和放置位置进行说明。?

具有具体目标平台的数学扩展函数和重用函数优化选项的MATLAB例子和Simulink例子。EmbeddedCoder使用具体目标平台和可移植的代码优化选项来提高代码的执行效率。

■解释、追溯及记录代码

EmbeddedCoder提供多种方式来检查从MATLAB文件和函数或者Simulink模型和子系统生成的代码。使用这些方式,可进行:

???

生成代码生成报告,来描述模型和模块的配置选项。?控制生成代码中全局数据,数据烈性和函数的标识符。?

在生成的代码中可将MATLAB代码作为解释,包含函数帮助文档。?

EmbeddedCoder也可将高级需求作为代码解释插入到代码中,与需求文档可进行链接(需要SimulinkVerificationandValidation)。代码生成报告也包含代码接口描述文件,追溯性报告及可显示生成的源文件和代码。模型和代码间存在双向的链接,可以便利的在每行代码和相关的simulink模型间进行定位,包含子系统、模块、MATLAB函数和代码及Stateflow

状态图和转换。可点击一个链接以高亮显示相关的模型元素或者代码行,更加便利代码检查和调试。

Simulink代码生成报告,高亮现实算法和代码间的双向追踪。

■执行和验证代码

EmbeddedCoder可将生成的代码与代码执行环境进行集成,EmbeddedCoder对MATLAB生成的代码的执行与使用MATLABCoder生成的代码具有一致的执行框架。

对于Simulink,EmbeddedCoder扩展了SimulinkCoder提供的实时执行的框架。默认状况下,代码可在具有或者没有实时操作系统、单任务多任务或者异步模式下执行。也可以使用软件在环(SIL)和处理器在环(PIL)的方式验证代码执行的结果。

◆生成主程序

EmbeddedCoder依照所提供的实时环境代码部署信息生成一个可扩展的主程序。这种特性可为模型生成和创立一个完整的自定义可执行文件。

◆速率分组

EmbeddedCoder依照模型中的采样时间设置生成单速率或者多速率代码。对于多速率多任务模型,依照速率分组为每个速率任务生成独立的函数。

◆使用链接和目标

第三方IDE、微处理器及RTOS包括WindRiverSystems?VxWorks支持生成代码的自动下载、集成、优化和执行。

◆SIL和PIL测试

EmbeddedCoder可在simulink中使用simulink仿真模型或者s-function模块自动执行生成代码进行SIL测试,或者在嵌入式目标平台上进行PIL测试。代码生成测试API可帮助自动测试的执行,并与之前的模型比较测试结果。与第三方工具的集成可进行代码结构覆盖度分析来确保测试的完整性。

SimulinkCoder

——从Simulink和Stateflow模型生成C和C++代码

SimulinkCode(之前版本为Real-TimeWorkshop)从Simulink框图、Stateflow图和MATLAB函数生成并执行C和C++代码。生成的代码可用于实时和非实时应用,包括仿真加速、快速原型建立和硬件在回路测试。可以使用Simulink对生成的代码进行调优和监测,或在MATLAB和Simulink之外运行代码并与之交互。

特点

离散、连续或混合Simulink和Stateflow模型的ANSI/ISOC和C++代码及可执行文件

用于大型模型的增量代码生成

支持整型、浮点型和定点型数据类型

针对单采样率、多采样率和异步模型的代码生成使用或不使用RTOS的单任务、多任务和多核代码执行用于参数调优和信号监测的外部模式仿真

强大的功能

■选择和使用目标

Simulink模型资源管理器在Simulink中提供了单一用户界面,用于配置所有代码生成设置。模型资源管理器可提供:

???

选择代码生成目标?配置目标以进行代码生成?为模型或子系统生成代码?

CodeGenerationAdvisor会检查模型和代码生成设置,然后根据需求针对如何改进配置提供建议。一旦为项目确定了最优设置之后,便可以将这些设置保存为配置集以重复用于其他模型。

使用Simulink建模的大型飞机系统。SimulinkCoder支持用于大规模建模的高级Simulink

功能,包括模型块、变量子系统和总线数组。

◆选择目标:

SimulinkCoder使用系统目标文件将模型转换为源代码和可执行文件。目标文件指定生成的代码将要在其中运行的环境。SimulinkCoder包括若干个准备好运行的配置的目标文件,还支持第三方目标和自定义目标。内置目标包括:

?一般实时目标——生成用于模型参数交互式调优的代码,记录和显示实时仿真结果并静态分派数据为进行高效的实时执行;?

?一般实时Malloc?目标——在生成的代码中使用动态内存分派,以便在一个可执行文件中包含同一模型的多个实例或包含多个模型;

?快速仿真目标(RSim)——提供快速灵活的测试平台用于使用定步长或变步长求解器执行批量或Monte?Carlo仿真研究,并使您可以将每次运行的数据保存到唯一的输出文件中。

可以扩展这些目标以创立自定义的运行时接口和设备驱动程序文件,从而能以特定环境为目标,访问SimulinkCoder的执行并调试其中的功能。

■编译和执行生成的代码

SimulinkCoder为使用常用桌面环境编译和执行生成的代码提供内置支持,包括:

????

Eclipse?IDE?

Microsoft?VisualC++?IDE?Linux?操作系统?Windows?操作系统?

可以使用EmbeddedCoder在实时嵌入式系统中生成和运用优化的C和C++代码。

■定义和控制数据

SimulinkCoder允许用户定义和控制模型数据在所生成代码中的出现方式。可通过以下方式管理数据:

????

将数据类型声明为整型、浮点型和定点型?指定调优和校准参数或常数的存储区?指定监测和记录信号数据的存储区?重复使用存储区以最小化局部范围的数据?

SimulinkCoder从存储在Simulink框图或数据字典(通过Simulink模型资源管理器访问)中的数据生成代码。通过利用不同的数据字典集,可以将代码从一个模型重新运用到多个目标。

Simulink模型资源管理器可显示模型中使用的各种数据类型和存储类。

注意存储类要求EmbeddedCoder。

■生成代码

SimulinkCoder为Simulink和Stateflow功能和组件提供了全面的代码生成支持,包括:

???

模型块用于增量生成代码?

原子子系统和原子子图表,用于通过可重入C函数的重用代码?在代码中,总线对象和总线数组用于生成结构?

?S-函数,用于对已有代码进行仿真和对接?

Simulink中的MATLAB函数块和Stateflow中的MATLAB函数,用于从具有MATLAB组件的模型生成代码

SimulinkCoder还支持Simulink系列产品,包括定点建模、物理建模、信号处理和通信建模以及快速原型建立和硬件在回路(HIL)测试产品。

◆代码生成选项:

SimulinkCoder提供了用户可选择的选项,以便在桌面和仿真环境中执行生成的代码。选项包括:

??????

代码重用?表达式折叠?信号存储区重用?死路径消除?参数内联?

单精度和预制数学库(包括ISOC和GNUC)?

生成的代码,其中将For循环融合和表达式折叠用于一个10元素数组模型。

SimulinkCoder为单维和多维信号生成高效且可读的代码。

Simulink中合成前期和后期时序信息的关键路径突出显示。能够快速迭代设计,以规避时序限制瓶颈。

SimulinkHDLCoder能够生成可读的,独立于目标机的HDL代码,并且支持遗产代码集成。因此,用户能够根据设计需求在FPGA和ASIC的实现之间快速转换。

SimulinkPLCCoder

——生成PLCs和PACs的IEC61131结构化文本

SimulinkPLCCoder?能够将Simulink模型,Stateflow?图和EmbeddedMATLAB?函数,生成与硬件无关的IEC61131结构化文本。结构化文本可以是PLCopen规范的XML格式,也可以是广泛应用于集成开发环境(IDEs)的其他文件格式。因此,我们可以对各种可编程规律控制器(PLC)及可编程自动化控制器(PAC)设备进行应用程序的编译和配置。

SimulinkPLCCoder通过PLC和PACIDEs,以及仿真工具的使用,能够生成测试平台,帮助我们来验证结构化文本。特点

?????

自动生成IEC61131-3结构化文本;

支持Simiulink,包括可重复利用子系统,PID控制器模块及查找表;支持Stateflow,包括图形功能,真值表及状态机;

支持嵌入式MATLAB,包括if-else语句,循环结构及数学运算;

支持多种数据类型,包括布尔型、整数型、枚举类型、浮点型,以及向量、矩阵、总线和可调参数;

?支持IDE,包括B&RAutomation?,PLCopenXML,RockwellAutomation?RSlogix?5000,及3S-SmartSoftwareSolutionsCoDeSys;

?创立测试平台。

从模型到结构化文本再到应用,SimulinkPLCCoder将模型生成结构化文本,供IDE应用到工业控制系统。

SimulinkPLCCoder的使用

在Simulink环境中,利用SimulinkPLCCoder生成结构化文本,需右键点击Simulink子系统模块,在开启的右键菜单中选择PLCCoder>GenerateCodeforSubsystem选项。在MATLAB环境中,用户可以调用plcgeneratecode命令,来创立脚本文件,生成结构

化文本,使得结构化文本的生成过程自动化且可重复。

SimulinkPLCCoder支持130多个Smulink模块,包括所有的Stateflow结构以及大部分嵌入式MATLAB函数;对于包含了反馈环路,模型和状态规律以及繁杂数学算法的控制系统模型,Sim

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论