EmbeddedCoder——为嵌入式系统生成优化的C/C++代码Embeddedcoder可为嵌入式处理器、目标上的快速原型及产品中使用的微处理器生成可读的、集成的、高效的C/C++代码。Embeddedcoder扩展了Matlabcoder和Simulinkcoder配置选项和优化设置,来更好的控制生成代码的函数、文件和数据。这些优化设置提高了代码的执行效率,并能够集成产品应用时的外部代码、数据类型及标定参数。还可以将第三方开发环境集成到为嵌入式系统生成可执行文件的build过程中。Embeddedcoder本身提供对AUTOSAR和ASAP2软件标准的支持。同时也提供可追溯性报告、代码接口文件和自动化的软件测试来支持DO-178B,IEC61508和ISO26262的软件开发。特点:扩展了Matlabcoder和Simulinkcoder的优化和代码生成配置选项。具有使用Simulink数据字典进行存储类型、数据类型和别名定义的能力。针对具体目标平台的代码优化。无论有无RTOS的多速率、多任务和多核的代码执行。代码验证,包含SIL/PIL测试,自定义注释,具有模型和需求到代码双向追踪的代码报告。集成TexasInstrumentsCodeComposerStudio™,AnalogDevices™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/ISOC,C++代码,可进行高效的实时运行。AUTOSAR目标:生成支持AUTOSAR软件组件的C代码和实时运行接口。共享库目标:生成可在主机目标平台上运行的静态库,如windows的动态链接库(.dll),UNIX共享目标文件(.so)。IDELINK目标:生成支持第三方集成开发环境编译和下载的代码,如(CCS)。■定义嵌入式硬件特性可从预定义的列表或者使用目标设置为MATLAB或者SIMULINK代码生成选择目标平台。可通过自定义环境来扩展这个预定义的列表。可通过SimulinkModelExplore为代码部署设置预定义列表或者设置生成的微处理器选项。EmbeddedCoder可为任意的微处理器或者DSP生成代码,包括8位,16位,32位。■定义及控制自定义数据EmbeddedCoder可以定义及控制生成代码中的数据格式。为了便于软件集成,可以通过MATLABCoder工程用户界面说明入口函数和全局数据的类型、长度及是否是复数。对于MATLAB代码,EmbeddedCoder支持所有的MATLABCoder的数据定义,包括定点数据对象。对于Simulink模型,EmbeddedCoder生成代码支持如下的数据说明及数据字典定义:Simulinkdataobject—提供预定义存储类型,包括constant,volatile,exportedglobal,importedglobal,structure,bitfileld及获取和设置的方法。Modulepackagingdataobject—为高级的数据对象提供预定义的特性,主要用于多种产品,如内存分配来进行标定或者调节查表数据。Userdatatype-从复杂的数据中创建抽象的数据类型,可精确控制生成代码中的模型数据,可与legacydata进行交互,同时也可替代simulink内置的数据类型。如下的工具将有助于在simulink中设计和管理工程数据:CustomStorageClassDesigner-通过图形化的界面创建自定义的数据定义和声明,将数据结构导入到生成的代码中,或者是导出数据,分配内存,将自动生成与交换标准如ASAM或者ASAP2兼容的数据格式。SimulinkModelExplore—显示simulink模型和stateflow图中所有用到的数据,可以以数据字典的格式查看所有自定义数据的信息。EmbeddedCoder可以创建ASAP2的数据交换文件,能够使用ASAP2标准导出具有复杂数据定义的模型数据。可修改内置的属性生成其它的数据交换机制文件。通过CustomStorageClassDesigner创建自定义的存储类型,可使用内置图形用户界面进行设计、查看及验证复杂数据类型。hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh■优化及打包代码使用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)——提供快速灵活的测试平台用于使用定步长或变步长求解器执行批量或MonteCarlo仿真研究,并使您可以将每次运行的数据保存到唯一的输出文件中。可以扩展这些目标以创建自定义的运行时接口和设备驱动程序文件,从而能以特定环境为目标,访问Simuli