matlab嵌入式代码生成Word文件下载.docx
- 文档编号:18142264
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:31
- 大小:2.11MB
matlab嵌入式代码生成Word文件下载.docx
《matlab嵌入式代码生成Word文件下载.docx》由会员分享,可在线阅读,更多相关《matlab嵌入式代码生成Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
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创建自定义的存储类型,可使用内置图形用户界面进行设计、查看及验证复杂数据类型。
优化及打包代码
使用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仿真研究,并使您可以将每次运行的数据保存到唯一的输出文件中。
可以扩展这些目标以创建自定义的运行时接口和设备驱动程序文件,从而能以特定环境为目标,访问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为单维和多维信号生成高效且可读的代码。
在实时环境中执行代码
SimulinkCoder提供了实时执行生成的代码并将其合并到用户执行环境中的完整框架。
它根据用户在模型中指定的周期采样次数生成单采样率或多采样率代码。
执行模式:
在单任务、多任务或异步模式下部署代码,可使用或不使用RTOS。
单任务模式
在单任务模式下,简单的调度程序以单线程执行来调用生成的代码,防止不同速率之间的抢占。
多任务模式
在多任务模式下,通过确定性单调速率调度程序调用生成的代码,允许不同速率之间的抢占。
在裸机环境中以嵌套中断来抢占代码。
在RTOS环境中则使用任务优先级和任务抢占。
异步模式
在异步模式下,使用SimulinkS-函数指定非周期性采样率或异步采样率。
SimulinkCoder将这些采样率转换为用户执行环境所需的代码。
用户为硬件中断之类的事件建模并生成代码,然后作为独立的任务触发各子系统。
可以使用所含的异步块库作为模板,以创建适用于其他环境的库。
实时部署
Simulink和SimulinkCoder为实时部署提供了一整套独立于目标的功能。
其中包括:
可以为模型中的每个采样率指定的任务优先级
产品级质量计数器以及计算绝对时间和实耗时间的计时器
采样率转移块,用于指定各采样率之间的数据传输机制(例如信号量、互斥和双缓冲),从而使您可以权衡数据完整性、确定性和性能
对合并每种采样率的错误处理逻辑进行超限检测
继承代码集成
通过合并已有的用于仿真和代码生成的自定义C、Fortran、Ada和C++代码,可以自定义生成的代码及其运行时环境。
SimulinkCoder中的自定义工具包括目标语言编译器(TLC)、自定义代码块、模板联编文件(makefile)、构建过程API和S-函数生成器。
使用代码继承工具(LegacyCodeTool),可以快速地将现有C和C++函数集成到Simulink模块中,这对于集成通常用于嵌入式系统的离散时间代码特别有用。
调优参数和记录数据
SimulinkCoder使用户可以与生成的可执行文件交互并进行分析,从而帮助用户优化算法的性能并改进代码执行行为。
通过SimulinkCoder可以使用下列数据接口来监测和调优模块信号及参数:
基于目标的CAPI——允许用户编写的代码访问MATLAB和Simulink外部的模块输出和参数;
基于主机的ASAP2数据交换文件——允许将ASAP2标准数据描述用于MATLAB和Simulink外部的数据测量、校准和诊断系统;
Simulink外部模式——允许下载新的参数值和上传信号值,以便在Simulink内部查看或在MATLAB工作空间中进行记录。
(打开源模块的对话框会造成Simulink暂停。
尽管Simulink已暂停,但仍可编辑参数值。
必须关闭该对话框才能使更改生效并使Simulink继续运行。
)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 嵌入式 代码 生成