Cross-Release代码集成
如果你有一个嵌入式编码器®许可,你可以从以前版本整合生成C代码(R2010a后来)时从当前版本生成的代码生成的源模型是单频和C代码是:
使用那种一次性的顶级模特或子系统构建过程函数代码接口。
单个或多个实例模型参考构建过程,抑制错误状态监控(
SuppressErrorStatus
是在
)。
如果你可以重用现有代码没有修改,你可以减少批准暂予监外执行的成本。
工作流
考虑这个控制系统模型。
的控制器
模型块引用一个模型,该模型由三部分组成:
P1
是一个模型块,引用一个模型一个以前的版本,例如,R2015b。与独立的代码生成的模型代码,界面,在文件夹中P1_ert_rtw
。C1
是一个模型块,引用一个模型,您正在开发的当前版本。P2
是一个子系统块开发一个以前的版本,例如,R2016a。子系统生成的代码是在文件夹P2_ert_rtw
。P3
是一个模型块,引用一个模型一个以前的版本,例如,R2016b。生成的模型代码,与模型参考代码界面,在文件夹中slprj / ert / P3
。
将代码从以前版本与当前版本生成的代码,使用此工作流:
限制
cross-release代码集成工作流不支持:金宝app
导出功能模型ERT代码。
金宝app仿真软件的功能和函数调用者跨边界的ERT代码块所产生的不同版本。
生成的代码的集成R2010a之前发布。
进口从当前版本生成的代码到一个以前的版本(向前兼容性)。
导出的文件位于MATLAB®先前版本的根文件夹,例如,blockset库文件。
从模型生成代码的导出和导入noninlined S-functions。
在模型的构建过程结束时,代码生成的报告显示共享文件,直接使用的集成模型,例如,控制器
。这份报告并没有显示模型的共享文件使用的组件,例如,P1
和P2
。
如果你的模型有:
cross-release SIL或公益诉讼,你不能快速加速器模式运行模拟。
一个模型块,引用一个模型包含cross-release SIL或公益诉讼,你不能运行加速器模式或快速加速器模式模拟。
您可以运行:
顶级模特SIL的模拟模型,包含cross-release SIL或公益诉讼。必须不包含cross-release AUTOSAR的模型模型块。
模型块SIL的模拟模型,引用包含cross-release SIL或公益诉讼。被引用的模型必须不包含cross-release AUTOSAR模型块。
对于其他cross-release AUTOSAR代码信息集成的局限性,明白了进口AUTOSAR从以前版本的代码。
金宝appSimulink.Bus
金宝app
使用总线对象作为cross-release ERT数据类型代码集成,使用这些方法之一。
方法 | 代码出口 | 代码导入 |
---|---|---|
自动 | 在以前的版本中,在生成代码之前,设置 代码生成器创建的 |
在当前版本中,之前运行 当你建立的集成模型,构建过程使用 |
出口汽车 | 在以前的版本中,在生成代码之前,这些属性指定的
代码生成器创建 R2010a和R2010b |
在当前版本中,之前运行 当你创建集成模型,其中包括进口硅或公益诉讼,构建过程使用 如果导入的代码从R2010a或R2010b,指定这些属性的
当你建立的集成模型,构建过程使用 |
进口汽车 | 在以前的版本中,在生成代码之前,这些属性指定的
R2010a和R2010b |
在当前版本中,导入生成的代码后,您不需要更改 当你创建集成模型,其中包括进口硅或公益诉讼,构建过程使用 如果导入的代码从R2010a或R2010b,指定这些属性的
当你建立的集成模型,构建过程使用 |
根级I / O通过全局变量生成的代码
当进口ERT代码从先前版本实现了一个输入或输出端口通过一个全局变量,从集成模型生成的代码依赖于信号的属性连接到端口集成模型。
如果集成模型信号不映射到生成的代码变量有相同的名称作为信号导入代码,生成的代码:
如果声明的变量定义了但在导入的代码未定义。
创建额外的代码生成的变量之间复制数据的集成模型和变量导入的代码。
如果集成模型信号映射到一个变量名称相同的信号在导入的代码中,使用的变量使用的进口代码也从集成模型生成的代码。您必须使用一个兼容的存储类的信号。
存储类属性 | 属性值支持金宝app |
---|---|
类型 | 非结构化 只有 |
数据访问 | 不能连接端口实现为一个 不能连接端口实现为一个 |
数据范围 | 如果导入的代码声明但没有定义的变量(即从一个信号,使用代码生成
如果导入的代码定义了变量(即从一个信号,使用代码生成
|
通过全球当前和先前版本组件之间的通信数据存储
当前和先前版本的组件可以通过全球数据存储与沟通金宝appSimulink.Signal
对象在仿真软件MATLAB基础工作区或数据字典。金宝app这里描述的工作流程适用于cross-release ERT代码集成。
代码生成配置
生成模型组件代码之前在旧的版本中,配置数据存储内存使用存储类进口外部代码。
如果一个顶级模特或子系统构建过程生成代码,设置存储类财产的金宝appSimulink.Signal
对象的类:
ImportedExtern
ImportedExternPointer
ImportFromFile
定制的存储类
如果一个模型参考构建过程生成的代码,你也可以使用这些类:
ExportedGlobal
ExportToFile
定制的存储类
导入配置
在当前版本中,在你运行crossReleaseImport
,定义一个金宝appSimulink.Signal
对象在仿真软件MATLAB基础工作区或数据字典的每个全局数据存储组件,您想要导入:金宝app
对象名称和数据类型,复杂性,维对象属性,指定相应的值相匹配的值对象的组件,您想要导入的文件。
为存储类兼容的属性,指定一个值。如果先前版本值
ImportedExtern
,指定一个值为当前版本:ImportedExtern
ExportedGlobal
ImportFromFile
或ExportToFile
自定义存储类。
如果先前版本值
ImportedExternPointer
,然后指定ImportedExternPointer
为当前版本。为别名属性,指定一个匹配的值只有在对象的属性指定的组件,您想要导入的文件。
保存
金宝appSimulink.Signal
对象。每次模拟所需的对象是建立进口硅或公益诉讼。
有关更多信息,请参见数据存储在生成的代码(金宝app仿真软件编码器)。
参数调优
cross-release ERT代码集成工作流支持集成参数优化模型,其中包含组件代码以前版本的金宝app可调参数。
在当前版本中,在你运行crossReleaseImport
为每个组件的可调参数,您想要导入:
定义一个
金宝appSimulink.Parameter
对象在仿真软件MATLAB基础工作区或数据字典。金宝app对象名称和数据类型,复杂性,维对象属性,指定值相匹配的先前版本对象值。如果变量在导入源代码没有名称相同的对象,为别名属性,指定一个值相匹配的变量名。
如果先前版本对象使用
GetSet
自定义存储类,指定:一个匹配的值存储类对象属性。
定义的头文件
得到
和集
访问功能。有关详细信息,请参见控制数据表示通过配置自定义存储类属性和通过与自定义存储类GetSet函数访问数据。
金宝app的支持
GetSet
自定义存储类从一个以前的版本只适用于R2011a后来版本。
生成的代码的顶级模特或子系统构建过程在以前的版本中,这些限制适用:
如果一个指定的可调参数
金宝appSimulink.Parameter
先前版本的对象存储类设置ExportedGlobal
的存储类金宝appSimulink.Parameter
对象在当前版本ExportedGlobal
,出现一个错误当你构建的集成模型。在Mac操作系统上,如果一个可调参数的指定
金宝appSimulink.Parameter
先前版本的对象存储类设置ExportedGlobal
,你不能构建集成模型的存储类金宝appSimulink.Parameter
具有相同名称的对象在当前版本(或别名)ImportedExtern
。为了解决这个限制,修改默认设置:把默认的工具链的构建工具。
tc = coder.make.getDefaultToolchain;cComp = tc.getBuildTool (C编译器的);
提取标准C编译器选项。
stdMaps = cComp.金宝appSupportedStandard.getLangStandardMaps;用optionvalue = stdMaps.getCompilerOptions (‘*’);
删除
-fno-common
从标准C和c++编译器选项。optionToRemove =“-fno-common”;optionsToKeep = strrep(用optionvalue optionToRemove,”);c_standard_opts_id =“(C_STANDARD_OPTS)美元”;custToolChainOpts = get_param(模型,“CustomToolchainOptions”);custToolChainOpts {2} =…strrep (custToolChainOpts {2}, c_standard_opts_id optionsToKeep);set_param(模型,“CustomToolchainOptions”,custToolChainOpts);
使用生成的多个实例代码可重用模型引用
使用一个可重用的参考模型,您可以指定唯一的模型参数值(金宝app模型)的每个实例引用模型在父模型。以前生成的代码可重用的引用模型导入到当前版本作为一个参数化cross-release SIL或公益诉讼的块,然后插入块的多个实例集成模型。对于每个块实例,您可以指定唯一的模型参数值。
更新现有的共享代码文件夹。
sharedCodeUpdate (sourceFolder,destinationFolder)
生成的代码可重用的引用模型导入到当前版本作为一个参数化cross-release块,例如,银块。
handleSILBlock= crossReleaseImport (reusableReferencedModelcodeLocation,……configSetIntegrationModel、“SimulationMode”、“银”);
在集成模型,代替,例如,两个实例的引用的模型与实例cross-release硅块。
open_system (integrationModel);blockInstanceName1= 'refModelInstanceName1”;blockinstanceName2= 'refModelInstanceName2”;SILBlockFullName= getfullname (handleSILBlock);replace_block (integrationModel“名称”,blockInstanceName1,……SILBlockFullName、“noprompt”);replace_block (integrationModel“名称”,blockInstanceName2,……SILBlockFullName、“noprompt”);
假定引用的可重用模型具有模型参数
和paramA
引用的模型实例的值,paramB
和refModelInstanceName1
工作空间变量。在这种情况下,您可以指定参数值的工作区cross-release块实例变量。refModelInstanceName2
pathToBlockInstanceName1= (integrationModel' / ',blockInstanceName1];pathToBlockInstanceName2= (integrationModel' / ',blockInstanceName2];set_param (pathToBlockInstanceName1”,paramA”、“paramA_instName1”);set_param (pathToBlockInstanceName1”,paramB”、“paramB_instName1”);set_param (pathToBlockInstanceName2”,paramA”、“paramA_instName2”);set_param (pathToBlockInstanceName2”,paramB”、“paramB_instName2”);
指定唯一的模型参数值在集成块实例模型,到工作空间变量赋值,
,paramA_instName1
,paramB_instName1
,paramA_instName2
。paramB_instName2
比较仿真模型组件的行为在当前版本,从先前版本生成的代码
在以前的版本中,假设你开发了一个模型组件,组件生成的代码,测试和部署生成的代码。现在,在当前版本,你想添加特性模型组件,并使用模型组件的系统开发和代码生成。在你出发之前,你可以比较模型的功能行为组件和从先前版本生成的代码。
测试数值模型之间的等价组件和从先前版本生成的代码,使用金宝app仿真软件测试™。与测试经理(金宝app仿真软件测试),您可以执行连续测试和输出比较:
把模型组件为当前版本模型块的模拟模式块参数设置为
正常的
。与模型块,创建一个顶级模特,指定测试输入数据。
在以前的版本中生成的代码导入到当前版本作为硅块。
银块,创建另一个顶级模特,指定相同的测试输入数据。
测试经理,创建一个等价测试用例运行模拟的模型和比较输出。
运行测试案例和评审结果。
有关更多信息,请参见测试两个等价的模拟(金宝app仿真软件测试)。
请注意
如果你想要比较的行为从当前和先前版本生成的代码,在第1步中,指定这些模型块参数:
集模拟模式来
Software-in-the-loop(银)
或Processor-in-the-loop(公益诉讼)
。集代码接口来
顶级模特
。
进口AUTOSAR从以前版本的代码
如果你安装嵌入式编码支持包AUTOSAR标准,您可以导入到当前版本A金宝appUTOSAR组件代码生成的先前版本。
当您运行crossReleaseImport
,函数导入AUTOSAR代码cross-release模型块代替硅或公益诉讼。的模拟模式参数的模型块设置为Software-in-the-loop(银)
或Processor-in-the-loop(公益诉讼)
。把模型块到当前版本模型。
这些限制适用:
cross-release工作流不支持访问NVRAM每个内存。金宝app
可调参数必须映射到AUTOSAR校准参数或AUTOSAR内部校准参数。
如果原始模型使用变量或符号维度(维变异),导入的模型只能使用相同的变量和符号维度配置使用生成代码时在前面的版本。
另请参阅
crossReleaseImport
|sharedCodeMATLABVersions
|sharedCodeUpdate
相关的话题
- Cross-Release共享公用代码重用
- 生成共享工具代码(金宝app仿真软件编码器)
- 为定点生成共享公用代码功能(金宝app仿真软件编码器)
- 生成共享公用代码自定义数据类型(金宝app仿真软件编码器)
- 生成的代码使用Cross-Release工作流集成