Ext_U and Ext_Y structures created in code when signals are defined as extern (ImportFromFile or ImportedExtern)

2 次查看(过去 30 天)
I have multiple models for which the code is generated separately. They all use the same signals defined in a .m file as follows:
x1 = Simulink.Signal;
x1.CoderInfo.StorageClass = 'Custom';
x1.CoderInfo.CustomStorageClass = 'ImportFromFile';
x1.CoderInfo.CustomAttributes.HeaderFile = 'xx_data.h';
I have also tried
x1 = Simulink.Parameter;
and
x1.CoderInfo.StorageClass = 'ImportedExtern';
The appropriate storage is in the xx_data .h file
The generated .h file contains the structures as follows:
typedef struct {
uint32_T x1;
boolean_T y1;
} ExtU_modelx_T;
typedef struct {
boolean_T z1;
} ExtY_modelx_T;
I don't want the signals defined in the .c/.h file, as they are in the xx_data.h file
which is in the modelx_private_types.h file. (#include <xx_data.h>)
This worked correctly in 2008b, which is previous version of these models.
My codegen file had the following parameters set (from 2008b)
set_param(cs,'BlockReduction','on');
set_param(cs,'InlineParams','on');
set_param(cs,'BooleanDataType','on');
set_param(cs,'ConditionallyExecuteInputs','on');
set_param(cs,'ParameterPooling','on');
set_param(cs,'OptimizeBlockIOStorage','on');
set_param(cs,'BufferReuse','on');
set_param(cs,'CombineOutputUpdateFcns','on');
sset_param(cs,'ExpressionFolding','on');
set_param(cs,'ForceParamTrailComments','on');
set_param(cs,'GenCodeOnly','on');
set_param(cs,'GlobalDataDefinition','Auto'); % InSourceFile, InSeparateSourceFile
set_param(cs,'GlobalDataReference','Auto'); %InSourceFile, InSeparateHeaderFile
set_param(cs,'GRTInterface','off');
set_param(cs,'IgnoreCustomStorageClasses','off');
set_param(cs,'IncDataTypeInIds','off');
set_param(cs,'IncHierarchyInIds','off');
set_param(cs,'IncludeFileDelimiter','UseBracket'); %Auto, UseQuote
set_param(cs,'IncludeHyperlinkInReport','off');
set_param(cs,'IncludeMdlTerminateFcn','off');
set_param(cs,'InitialValueSource','Model'); %DataObject
set_param(cs,'InlineInvariantSignals','on');
set_param(cs,'InlinedParameterPlacement','Hierarchical'); %NonHierarchical
set_param(cs,'InlinedPrmAccess','Literals'); %Macros
set_param(cs,'DefaultParameterBehavior','Inlined'); %Macros
set_param(cs,'InsertBlockDesc','on');
set_param(cs,'LocalBlockOutputs','on');
set_param(cs,'LogVarNameModifier','none');
set_param(cs,'MangleLength','1');
set_param(cs,'MatFileLogging','off');
set_param(cs,'CodeInterfacePackaging','Nonreusable function');
set_param(cs,'MultiInstanceErrorCode','Error'); %None, Warning
sset_param(cs,'OptimizeModelRefInitCode','off');
set_param(cs,'ParamNamingRule','None'); %UpperCase, LowerCase, Custom
set_param(cs,'PrefixModelToSubsysFcnNames','on');
set_param(cs,'ShowEliminatedStatement','off');
set_param(cs,'SignalNamingRule','None');
set_param(cs,'ZeroExternalMemoryAtStartup','off');
set_param(cs,'ZeroInternalMemoryAtStartup','off');

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Deployment, Integration, and Supported Hardware 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by