我如何创建一个功能与动态类型输入,支持uint64仿真软件金宝app金宝app

22日视图(30天)
你好,
我想创建一个功能块模型的实时动态类型输入端口和还支持uint64。金宝app金宝app是这样的:
然而,构建模型时我总是得到以下错误:
dyn_64bit_input_port_model。cpp: 429:未定义的参考“ssRegisterDataTypeFxpFSlopeFixExpBias”
我可以设置输入端口固定uint64,和模型构建没有问题:
(]
#包括“simstruc.h”
#包括“fixedpoint.h”
静态孔隙mdlInitializeSizes (SimStruct *年代)
{
(]
/ /注册uint64数据类型
DTypeId uint64TypeId = INVALID_DTYPE_ID;
#如果定义了MATLAB_MEX_FILE
uint64TypeId = ssRegisterDataTypeInteger(年代,0,64,0);
如果(uint64TypeId = = INVALID_DTYPE_ID) {
ssSetErrorStatus(年代,“失败注册64位整数类型”);
返回;
}
#endif
ssSetInputPortDataType(年代,0,uint64TypeId);
(]
}
(]
#如果定义了MATLAB_MEX_FILE
#包括“金宝appsimulink.c”/ *墨西哥人胶* /
#包括“fixedpoint.c”
#其他的
#包括“cg_sfun.h”/ *代码生成胶* /
#endif
如果我配置端口数据类型是动态的,模型构建好一个uint32输入:
静态空白mdlInitializeSizes (SimStruct *年代)
{
(]
ssSetInputPortDataType(年代,0,DYNAMICALLY_TYPED);
(]
}
#如果定义了MATLAB_MEX_FILE
#定义MDL_SET_INPUT_PORT_DATA_TYPE
静态孔隙mdlSetInputPortDataType (SimStruct *年代,int港口,DTypeId数据类型)
{
ssSetInputPortDataType (S、端口、数据类型);
}
#定义MDL_SET_DEFAULT_PORT_DATA_TYPES
静态孔隙mdlSetDefaultPortDataTypes (SimStruct *年代)
{
/ /设置输入端口默认数据类型
int numInputPorts = ssGetNumInputPorts(年代);
(int i = 0;我< numInputPorts;我+ +){
如果(ssGetInputPortDataType (S i) = = DYNAMICALLY_TYPED) {
ssSetInputPortDataType (S, i, SS_UINT32);
}
}
}
#endif / / MATLAB_MEX_FILE
但是当我连接一个uint64输入端口,无论我是否注册uint64,仿真软件总是说这叫金宝app ssRegisterDataTypeFxpFSlopeFixExpBias () 对所生成的代码,然后未能建立,因为它不能找到它。
更详细的错误信息:
# # #创建独立的可执行文件C: / f / dyn_64bit_input_port / dyn_64bit_input_port_model_slrealtime_rtw / dyn_64bit_input_port_model
q + + -Vgcc_ntox86_64 - g化gnu 14 -stdlib = libstdc + + + + - o C: / f / dyn_64bit_input_port / dyn_64bit_input_port_model_slrealtime_rtw / dyn_64bit_input_port_model rt_matrx。o rt_printf。o dyn_64bit_input_port_model。o dyn_64bit_input_port_model_cal。o rtGetInf。o rtGetNaN。o rt_nonfinite。o slrealtime_datatype_ground。o rte_dyn_64bit_input_port_model_parameters。o主要。o dyn_64bit_input_port_sfunc。o host_timer_x86。o slrealtime_code_profiling_utility_functions.olc: / PROGRA ~ 1 / MATLAB / R2022a /工具箱/ slrealtime /目标/ win64 /目标/ lib -ltraceparser牧民联盟-lslrealtime_kernel -lslrealtime_platform -lslrealtime_rtps -lsocket -lboost_system -lboost_log -lpci -lopenblas -lpcap
C: \ ProgramData \ MAT金宝appLAB工具箱\ SupportPackages \ R2022a \ \ slrealtime \ \ supportpackage \ qnx710 \ \目标主机\ win64 \ x86_64 \ usr \ bin \ x86_64-pc-nto-qnx7.1.0-ld: dyn_64bit_input_port_model。o:函数dyn_64bit_input_port_model_initialize”:
C: / f / dyn_64bit_input_port / dyn_64bit_input_port_model_slrealtime_rtw / dyn_64bit_input_port_model。cpp: 429:未定义的参考“ssRegisterDataTypeFxpFSlopeFixExpBias”
答:C: / ProgramData / MATLA金宝appB / SupportPackages / R2022a /工具箱/ slrealtime /目标/ supportpackage / qnx710 / /主机/ win64 / x86_64 / usr / bin / x86_64-pc-nto-qnx7.1.0-ld抓住信号1
dyn_64bit_input_port_model。可:235:配方目标“C: / f / dyn_64bit_input_port / dyn_64bit_input_port_model_slrealtime_rtw / dyn_64bit_input_port_model '失败的
:* * * (C: / f / dyn_64bit_input_port / dyn_64bit_input_port_model_slrealtime_rtw / dyn_64bit_input_port_model)错误1
C: \ f \ dyn_64bit_input_port \ dyn_64bit_input_port_model_slrealtime_rtw \仪器>回声2使命令返回一个错误
2使命令返回一个错误
C: \ f \ dyn_64bit_input_port \ dyn_64bit_input_port_model_slrealtime_rtw \检测>退出/ B 1

接受的答案

安迪·巴特利特
安迪·巴特利特 2022年6月6日
S-Functions处理特性,利用代码生成以多种方式。
我所熟悉的方式得到充分支持基于C / c++代码生成功能是提供一个同伴TLC文件。金宝app
如果没有TLC文件,然后一些功能可以解决这个利用s函数的DLL和生成代码块可以买其他的东西。金宝app仿真软件加速器功能可以做到这一点。
如果没有TLC文件,然后将试图重用一些其他特性函数的C代码源文件(如果可用)。有限制的支持尤其对情况迅速加速器设计的执行没有MATLAB和S金宝appimulink仿真exe或DLL服务。金宝app我相信模型实时快速加金宝app速器使用也有类似的限制。这意味着调用函数导出到定点DLL将不起作用。我相信是你面临的问题的根源。
我附上一个微不足道的TLC伴侣申请你的例子。我测试了它与快速加速和它工作得很好。
我前面提到的例子
编辑([matlabroot,“\工具箱\仿真软件金宝app\ fixedandfloat \ fxpdemos \ sfun_user_fxp_asr.c”])
编辑([matlabroot,“\工具箱\仿真软件金宝app\ fixedandfloat \ fxpdemos \ sfun_user_fxp_prodsum.c”])
有同伴tlc文件
编辑([matlabroot,“\工具箱\仿真软件金宝app\ fixedandfloat \ fxpdemos \ tlc_c \ sfun_user_fxp_asr.tlc”])
编辑([matlabroot,“\工具箱\仿真软件金宝app\ fixedandfloat \ fxpdemos \ tlc_c \ sfun_user_fxp_prodsum.tlc”])
示例sfun_user_fxp_prodsum可能有趣之处在于核心计算使用相同的C代码S-Functions C和薄层色谱。C代码做额外的工作来注册界面。TLC只是包装工作得到C代表输入和输出的文本。

更多的答案(2)

安迪·巴特利特
安迪·巴特利特 2022年6月3日
嗨,丹尼尔,
提供一个额外的参数
-lfixedpoint
当墨西哥人' ing SFunction应该解决连接问题。
一个例子从这个文件夹
工具箱\仿真软件金宝app\ fixedandfloat \ fxpdemos
墨西哥人会这么想吗
墨西哥人sfun_user_fxp_asr。c -lfixedpoint;
如果你有额外的麻烦与数据类型传播,这组视频可能会有所帮助。
问候,
安迪

丹尼尔·米尔
丹尼尔·米尔 2022年6月3日
嗨,安迪,
谢谢你的墨西哥人信息。我没有提到我最初的问题,但是我已经提供 -lfixedpoint 当墨西哥人在这一步也没有问题。
错误发生后,当我试图构建模型。
我附上一个最小的这篇文章的例子。我也会看一看YouTube视频。
问候,
丹尼尔

类别

找到更多的在金宝app仿真软件编码器帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!