当您希望代码只使用单精度时,例如当您的目标是单精度处理器时,您可以使用模型配置参数和块参数来防止引入双
在模型中。
要设计和验证单精度模型,请参见验证浮点嵌入式模型.如果你有Fixed-Point Designer™,你可以使用Single Precision Converter应用程序(见单精度转换器(定点设计师)).
单
未指定类型的默认数据类型这个示例演示了如何避免在为单精度硬件目标生成的代码中引入双精度数据类型。
如果为信号指定继承的数据类型,但数据类型传播规则不能确定信号的数据类型,则信号数据类型默认为双
.可以使用模型配置参数指定默认数据类型为单
.
探索模型示例
打开示例模型rtwdemo_underspecified_datatype并配置它以显示生成的块的名称。
模型=“rtwdemo_underspecified_datatype”;load_system(模型)set_param(模型,“HideAutomaticNames”,“关闭”) open_system(模型);
根港口In2
,In3
,In4
指定继承:汽车
为数据类型块参数。下行块也使用继承的数据类型。
生成代码与双
作为默认数据类型
模型从配置参数开始系统目标文件设置为ert.tlc
,这需要嵌入式编码器。集系统目标文件来grt.tlc
代替。
set_param(模型,“SystemTargetFile”,“grt.tlc”)
从模型生成代码。
slbuild(模型)
### Starting build procedure for: rtwdemo_underspecified_datatype ###成功完成构建过程:模型重建行动的原因 ================================================================================================================ rtwdemo_underspecified_datatype代码生成和编译代码生成信息文件不存在。建造时间:0小时0米14.286秒
在代码生成报告中,查看该文件rtwdemo_underspecified_datatype.h
.代码使用双
定义变量的数据类型In2
,In3
,In4
因为模型中未充分指定import数据类型。
用= fullfile (“rtwdemo_underspecified_datatype_grt_rtw”,...“rtwdemo_underspecified_datatype.h”);rtwdemodbtype(用...'/*外部输入(默认存储的根输入信号)*/',...'/*外部输出(由默认存储的信号提供的根输出)*/',...1,0);
/*外部输入(root import signals with default storage) */ typedef struct {int8_T In1;/* '/In1' */ real_T In2;/* ' /In2' */ real_T In3;/* ' /In3' */ real_T In4;/* ' /In4' */} ExtU_rtwdemo_underspecified_d_T;
生成代码与单
作为默认数据类型
打开“配置参数”对话框。在数学和数据类型窗格中,选择单
在未指定数据类型的默认值下拉列表。
或者,在命令提示符处启用优化。
set_param(模型,“DefaultUnderspecifiedDataType”,“单一”);
从模型生成代码。
slbuild(模型)
### Starting build procedure for: rtwdemo_underspecified_datatype ###成功完成构建过程:模型重建行动的原因 =============================================================================================== rtwdemo_underspecified_datatype代码生成和编译生成的代码是过时了。建造时间:0小时0米11.127秒
在代码生成报告中,查看该文件rtwdemo_underspecified_datatype.h
.代码使用单
定义变量的数据类型In2
,In3
,In4
.
rtwdemodbtype(用...'/*外部输入(默认存储的根输入信号)*/',...'/*外部输出(由默认存储的信号提供的根输出)*/',...1,0);
/*外部输入(root import signals with default storage) */ typedef struct {int8_T In1;/* '/In1' */ real32_T In2;/* ' /In2' */ real32_T In3;/* ' /In3' */ real32_T In4;/* ' /In4' */} ExtU_rtwdemo_underspecified_d_T;