主要内容

的数据引用模型.rtw文件

数据引用概述

a中的一些记录模型.rtw文件,例如对应于参数和常量块I/O的文件,可以嵌入非常大的数据值向量。在代码生成期间,这样的向量可能会导致巨大的内存开销,因为在此过程中,值必须作为文本保存在内存中。

为了避免这种开销,默认情况下,Simulink金宝app®软件不把整个数据值向量写出来模型.rtw.相反,它写了一个名为数据参考可用于在代码生成期间直接从Simulink访问数据。金宝app如果数据在代码生成期间没有发生变化,那么当包含数据值的实际代码被写入时,数据就会被有效地流到磁盘上。

数据引用具有以下格式SLData (指数,在那里指数是一个数字值,告诉Simulink正在引用哪个数据。TLC指金宝app令,例如GENERATE_FORMATTED_VALUE在内存中以未展开的格式存储数据引用。当生成的代码被写入磁盘时,数据值将扩展为实际值。

控制数据引用阈值

默认情况下,Simuli金宝appnk写入数据引用模型.rtw代替长度为10或10以上的数据向量。要更改可在文件中字面上显示的向量的最大长度,请使用:

set_param (0, ' RTWDataReferencesMinSize ',maxlen

金宝appSimulink替换一个长度等于或超过的向量maxlen在创建时使用数据引用模型.rtw.指定maxlen作为整数或作为inf.指定inf禁用数据引用。然后,每个向量的完整值集(无论长度如何)逐字地出现在模型.rtw并且在代码生成期间占用文本内存。

设定一个明确的maxlen仅对MATLAB电流有影响®会话。若要跨会话设置该值,请包含set_param命令你startup.m文件,或在启动MATLAB时自动执行命令。

扩展数据引用

属性可以显式扩展数据引用GENERATE_FORMATTED_VALUE内置函数与可选的第三扩大论点。命令,如函数宏指令可能导致将数据引用扩展为完整的表单。

避免数据引用扩展

在代码生成过程中,完全关闭数据引用或在TLC中展开选择参数都可能导致巨大的文本内存开销。在大多数常见的代码生成任务中,不需要将扩展的数据向量存储在内存中,并为此付出额外的开销。避免扩展数据向量,除非没有其他选择。

重新启动代码生成

一个模型.rtw不能单独使用包含数据引用的文件来重新启动自定义代码生成过程。一旦代码生成过程完成,其中的数据引用就会变得陈旧。尝试仅使用此文件启动代码生成过程可能会导致不可预测的行为和内存段错误。

相关话题