为C代码生成配置块状态
块州,如单位延迟块的状态,执行周期之间保持一个状态值的算法。当配置为代码生成一个模型,您可以配置状态数据:
减少在内存中存储的数据量。
控制代码生成器地方状态数据在内存中。
促进状态数据模型接口,以便其他组件和系统可以访问这些数据。
提高生成的代码的可读性和可追溯性。
代码生成,例子展示如何配置一块状态模型rtwdemo_configinterface
。您可以配置代码通过使用映射映射编辑器- C代码编程接口(或代码映射coder.mapping.api.CodeMapping
)。
选择代码配置选项
基于你的代码生成需求,决定如何代表状态数据。默认情况下,在一个模型出现在生成的代码作为全局数据结构的字段命名
。如果你没有配置自定义,代码生成器决定消除或改变国家的代表在生成的代码优化的目的。如果您配置的定制,决定:模型
_DW
是否要设置一个默认的配置
如果您需要获取大量的状态(例如,超过10),这是更有效的配置状态为默认设置,然后覆盖这些设置特殊的情况。如果您需要获得一些州,有独特的来源,命名,或位置的需求,可以考虑单独配置状态。
如何声明和处理状态数据在生成的代码吗
作为单独的全局变量
读取输入数据从外部代码中定义全局变量
作为访问函数的调用。需要嵌入编码器®
关于这些选项的更多信息,请参阅控制数据和功能接口生成的代码。
其他因素包括是否:
名字在生成的代码中使用状态标签出现在模型或通过使用独特的代码标识符。
包括
挥发性
类型限定符在全局变量定义和声明。需要嵌入式编码器。看到保护全球数据常量和不稳定类型限定符。状态数据到一个特定区域的内存。需要嵌入式编码器。看到控制数据和函数放置在内存中插入语法。
列表的界面需求相关的国家相应的存储类和存储类属性,看看选择存储类数据存储和存储类属性。
国家需求例如模型rtwdemo_configinterface
是:
保留状态数据延迟单元块的可访问性,而生成的代码执行。
代表国家作为一个单独的全局变量。
应用前缀
dtemp_
变量的名字,代表了国家。
对于本例,您的设置默认表示状态生成的代码的全局变量静态
类型限定符。然后,您配置单元的状态延迟块使用默认的存储类和一个独特的代码标识符,其中只包含必需的前缀dtemp_
。代码标识符功能使您能够指定代码生成标识符,而无需修改模型设计。
配置默认代码生成设置状态
默认的代码生成设置状态可以减少准备代码生成模型的努力,特别是如果一个模型有相当数量的状态,你想获得,而生成的代码执行。选择配置设置一次,代码生成器这些设置适用于整个模型。万博1manbetx动态仿真模块®商店缺省配置的模型。
考虑配置默认代码生成设置模型状态如果您的模型使用多个状态,没有独特的需求或者使用一个共享的嵌入式编码字典。
这个例子展示了如何使用映射编辑器- C代码配置默认设置状态。使用代码映射编辑器来设置默认存储类模型的状态rtwdemo_configinterface
来FileScope
。存储类设置,代码生成器将状态数据在生成的代码中表示为全局变量有静态
类型限定符。
开放模式
rtwdemo_configinterface
。将模型的副本保存到一个可写的位置。打开嵌入式编码器应用程序。
在C代码选项卡上,选择代码接口>默认的代码映射。
在代码映射编辑器中,信号,选择类别信号、状态和内部数据。设置默认存储类
FileScope
。保存模型。
为各州配置代码生成设置
您可以配置为代码生成单个国家。例如,如果一个模型有两个州,有独特的代码生成需求,单独配置状态。或者,如果你为国家配置默认设置,你可以覆盖这些设置为特定的状态。
如果你的模型符合至少一种标准,考虑配置代码生成单独设置状态:
使用多个国家有独特的来源、命名、或位置需求。
使用几个州。
有一个默认的配置状态,你需要覆盖一些具体的配置状态。
这个例子展示了如何使用映射编辑器的代码应用您的默认存储类设置单位延迟块的状态X
在模型rtwdemo_configinterface
。
示例还展示了如何配置一个代码标识符状态。您可以指定代码生成的标识符,例如集成,无需修改模型的设计。
如果您还没有这样做,完成这个步骤配置默认代码生成设置状态。
在代码映射编辑器中,单击信号/州选项卡。扩大州。状态设置为存储类
汽车
,这意味着代码生成器可能消除或改变的代表性相关代码进行优化。如果不可能优化,代码生成器模型适用于默认配置。对于这个示例,该模型默认配置指定存储类FileScope
。避免优化和强制代码生成器使用默认配置,设置存储类
模型的默认
。覆盖默认配置,指定符合代码生成的存储类要求。
在代码映射编辑器中,选择状态
X
。设置存储类模型默认值:FileScope
。配置状态的代码标识符名称包括前缀
dstate_
。在代码映射编辑器中,选择状态X
。单击图标和设置存储类属性标识符来dstate_X
。保存模型。
生成并查看代码。例如,在
rtwdemo_configinterface.c
状态数据,发现数据定义。静态MYTYPE dstate_X;
找到状态数据的步骤中使用的入口点函数。
。如果(模式){输出= (real_T) mp_K1 * dout_Table1;其他}{输出= dstate_X;}。dstate_X = dout_Table2;}
配置代码生成以编程方式设置状态
自动化配置的状态代码生成,使用代码的编程接口映射。例如,当创建自定义块库,或创建一个应用程序的一部分测试环境,使用编程接口自动化数据配置。
这个例子展示了如何使用编程接口配置状态模型rtwdemo_configinterface。设置默认的代表国家作为全局变量在生成的代码中有静态
类型限定符。然后,配置状态X
单位延迟代码块使用默认的存储类和独特的标识符,其中只包含必需的前缀dstate_
。
打开示例模型。
open_system (“rtwdemo_configinterface”)
创建对象
厘米
通过调用函数coder.mapping.api.get
。对象存储的代码生成配置数据和功能为模型rtwdemo_configinterface
。厘米= coder.mapping.api.get (“rtwdemo_configinterface”);
配置默认设置状态通过调用函数
setDataDefault
。对于参数,指定这些值:返回的对象
coder.mapping.api.get
InternalData
为默认类别属性名
StorageClass
与属性值FileScope
setDataDefault (cm,‘InternalData’,‘StorageClass’,‘FileScope’);
验证您的默认配置状态。问题的电话
getDataDefault
指定返回的对象coder.mapping.api.get
和类别InternalData
。第三个参数指定为属性StorageClass
。getDataDefault (cm, InternalData, StorageClass) ans =“FileScope”
缺省配置申请状态
X
。默认情况下,各州的存储类万博1manbetx仿真软件集
汽车
。代码生成器:决定消除数据生成的代码的优化目的。
如果保留数据,确定如何有效地表示数据在生成的代码中,考虑到默认配置设置。
控制的配置状态,调用函数
设置状态
。问题的电话
设置状态
指定:返回的对象
coder.mapping.api.get
国家的名字
X
默认的存储类之前设置的州通过使用属性
StorageClass
和属性值模型的默认
。财产
标识符
和属性值dstate_X
设置状态(厘米,“X”、“StorageClass”、“违约模型”,“标识符”,“dstate_X”);
通过调用函数验证您的配置更改
getState
。指定返回的对象coder.mapping.api.get
、国家名称和属性StorageClass
或标识符
。getState(厘米,“X”,“StorageClass”) ans =“模型默认”getState(厘米,“X”,“标识符”)ans =“dstate_X”
保存模型。
生成并查看代码。例如,在
rtwdemo_configinterface.c
为状态数据,发现数据定义。静态MYTYPE dstate_X;
找到状态数据的步骤中使用的入口点函数。
。如果(模式){输出= (real_T) mp_K1 * dout_Table1;其他}{输出= dstate_X;}。dstate_X = dout_Table2;}
选择存储类和存储类的属性状态
根据您的代码生成的需求,选择从这些存储类为块配置代码生成。
需求 | 存储类 |
---|---|
让代码生成器处理如何代表国家在生成的代码中。例如,对于优化目的,代码生成器可能消除或改变数据的表示。 | 汽车(仅个人映射) |
对于不能优化的数据元素,表示数据作为一个领域标准的数据结构。 | 默认的(仅默认映射) |
防止优化消除存储数据元素和使用的默认映射数据元素类别。 | 模型的默认(仅个人映射),词典默认 (仅个人映射) |
生成一个结构,将布尔数据存储在名为本。 | 设置(仅个人映射) |
生成一个全局变量的定义和声明挥发性 类型限定符。 |
挥发性 (见常量、挥发性和ConstVolatile) |
生成一个全局变量定义和声明。 | ExportedGlobal |
生成一个全局变量定义和声明到指定的文件中。 | ExportToFile |
生成一个全局变量的定义和声明静态 类型限定符。 |
FileScope(本地和共享本地数据存储的映射) |
通过调用您的自定义生成代码与数据访问功能。 | GetSet |
生成代码的读取和写入一个全局变量或全局变量指针定义为外部代码。 | ImportedExtern, ImportedExternPointer |
ExportToFile | ImportFromFile |
生成本地变量函数。 | 可以定位的 |
生成一个全球结构,有一个名称,您可以指定。 | 结构体(仅个人映射) |
生成一个全局变量,使缓冲重用。 | 可重用的(仅个人映射) |
可用存储类的列表可能包括其他具体项目的存储类中定义嵌入式编码字典。如果你有特殊要求没有得到满足的列存储类嵌入式编码软件,您可以定义一个存储类。看到定义服务接口、存储类、内存部分,为软件架构和功能模板。
对于单个状态,使用标识符存储类属性来配置变量的名称代表国家在生成的代码中。如果你离开标识符属性空白,代码生成器使用国家的名字参数块的状态。如果该参数为空,代码生成器使用的名称。
使用嵌入式编码器,这取决于你选择的存储类,您还可以配置这些性质。
财产 | 描述 | 存储类 |
---|---|---|
DefinitionFile |
定义文件,其中包含定义全局数据来源,由国家和外部代码阅读 | ExportToFile 和挥发性 |
GetFunction |
国家出现在生成的代码调用指定得到 函数 |
GetSet |
HeaderFile |
头文件包含声明为全局数据来源,由国家和外部代码阅读 | ExportToFile ,GetSet ,ImportFromFile ,挥发性 |
记忆的部分 (默认状态配置) |
内存部分,其中包含数据读取 | 默认的 |
老板 |
代码生成器将定义在多个模型的代码生成的一个共享的模型层次结构定义。您必须选择模型配置参数使用数据对象的所有者为数据定义的位置。看到控制位置的全局数据定义和声明生成的文件。 | ExportToFile 和挥发性 |
PreserveDimensions |
代码生成器保留维表示的状态数据作为一个多维数组生成的代码。必须设置配置参数模型阵列布局来行 。看到保护维度的多维数组生成的代码。 |
ExportToFile ,FileScope ,GetSet ,ImportFromFile ,可以定位的 和挥发性 |
SetFunction |
国家出现在生成的代码调用指定集 函数。 |
GetSet |
StructName |
名称生成的代码的结构状态。 | 设置 和结构体 |
另请参阅
映射编辑器- C代码|coder.mapping.api.CodeMapping