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