我是靠谱客的博主 激昂服饰,最近开发中收集的这篇文章主要介绍Simulink自定义目标系统文件配置(2)——callback_handler.m文件前言xx_callback_handler.m回调函数,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
前言
自定义目标系统文件由五大文件组成:
- xx.tlc 系统目标文件
- xx_callback_handler.m RTW工具箱回调函数
- xx_make_rtw_hook.m tlc文件调用
- xx_file_process.tlc 文件处理TLC文件
- xx_srmain.tlc 控制主函数文件的生成
xx_callback_handler.m回调函数
这个函数文件是用来配置模型的基本设置的,像Code Generation,Hardware Implementation等等都可以在这个回调函数中进行配置,因为在选中tlc之后,Simulink会自动执行tlc的回调函数xx_callback_handler进行配置。
这是我的部分配置:
function jxert_callback_handler(hDlg,hSrc)
slConfigUISetVal(hDlg,hSrc,'ModelReferenceCompliant','on');
slConfigUISetEnabled(hDlg,hSrc,'ModelReferenceCompliant',false);
slConfigUISetVal(hDlg,hSrc,'CompOptLevelCompliant','on');
slConfigUISetEnabled(hDlg,hSrc,'CompOptLevelCompliant',false);
% 设置硬件类型 F407 是ARM Cortex-M架构
slConfigUISetVal(hDlg,hSrc,'ProdHWDeviceType','ARM Compatible->ARM Cortex-M');
% slConfigUISetVal(hDlg,hSrc,'ProdHWDeviceType','ARM Cortex-M');
slConfigUISetEnabled(hDlg,hSrc,'ProdHWDeviceType',0);
% 指定用于测试从该模型生成的代码的硬件与代码最终在其上运行的硬件相同
slConfigUISetVal(hDlg,hSrc,'ProdEqTarget','on');
slConfigUISetEnabled(hDlg,hSrc,'ProdEqTarget',0);
slConfigUISetVal(hDlg,hSrc,'ZeroExternalMemoryAtStartup','off');%~ZeroExternalMemoryAtStartup off表示勾选
slConfigUISetVal(hDlg,hSrc,'ZeroInternalMemoryAtStartup','off');%~ZeroInternalMemoryAtStartup off表示勾选
% 删除超出范围的浮点数到整数转换的代码
slConfigUISetVal(hDlg,hSrc,'EfficientFloat2IntCast','on');
% 设置需要生成ERT主函数
slConfigUISetVal(hDlg,hSrc,'GenerateSampleERTMain','on');
slConfigUISetEnabled(hDlg,hSrc,'GenerateSampleERTMain',0);
% 不使用Makefile进行代码生成
slConfigUISetVal(hDlg,hSrc,'GenerateMakefile','off');
slConfigUISetEnabled(hDlg,hSrc,'GenerateMakefile',0);
% 创建一个SIL块来验证生成的代码
% slConfigUISetVal(hDlg,hSrc,'CreateSILPILBlock','SIL');
% 取消创建一个SIL/PIL块来验证生成的代码
slConfigUISetVal(hDlg,hSrc,'CreateSILPILBlock','None');
% 指定代码接口打包,设置Nonreusable function表示生成的代码不可用
slConfigUISetVal(hDlg,hSrc,'CodeInterfacePackaging','Nonreusable function');
slConfigUISetEnabled(hDlg,hSrc,'CodeInterfacePackaging',0);
% 不生成mat文件
slConfigUISetVal(hDlg,hSrc,'MatFileLogging','off');
slConfigUISetEnabled(hDlg,hSrc,'MatFileLogging',0);
% 配置用户自定义的模板文件
slConfigUISetVal(hDlg,hSrc,'ERTCustomFileTemplate','example_file_process.tlc');
slConfigUISetEnabled(hDlg,hSrc,'ERTCustomFileTemplate',0);
% 配置取消支持未与TLC文件内联的s函数
slConfigUISetVal(hDlg,hSrc,'SupportNonInlinedSFcns','off');
% 指定在何处生成实用函数、导出数据类型定义和导出数据的声明以及自定义存储类。
slConfigUISetVal(hDlg,hSrc,'UtilityFuncGeneration','Auto');
% 设置取消生成一个模型终止函数
slConfigUISetEnabled(hDlg,hSrc,'IncludeMdlTerminateFcn',0);
% 设置生成将浮点数据显示初始化为0.0
slConfigUISetVal(hDlg,hSrc,'InitFltsAndDblsToZero','off');
slConfigUISetVal(hDlg,hSrc,'PurelyIntegerCode','off');
% 取消在生成的代码中支持非有限值(inf, nan,-inf)
slConfigUISetVal(hDlg,hSrc,'SupportNonFinite','off');
% 只生成代码
slConfigUISetVal(hDlg,hSrc,'GenCodeOnly','on');
% 设置解析器为类型Fixed-step
slConfigUISetVal(hDlg,hSrc,'SolverType','Fixed-step');
slConfigUISetEnabled(hDlg,hSrc,'SolverType',0);
% 默认设置步长为0.02(20ms)
slConfigUISetVal(hDlg,hSrc,'FixedStep','0.02');% 后期可以修改,但不是修改代码,而是在选项中自行修改
% 设置模型编译优先目标,暂定效率优先
slConfigUISetVal(hDlg,hSrc,'ObjectivePriorities','Execution efficiency');
% 遇到警告继续编译,输出报告后找到问题fix就好
slConfigUISetVal(hDlg,hSrc,'CheckMdlBeforeBuild','Warning');
end
jxert_callback_handler(hDlg,hSrc)里面的hDlg和hSrc可以不用管,matlab会对他自动进行分配。
如何自定义修改需要的参数呢?
右键点击你想要修改的目标,选择what’s this:
然后就会显示脚本/函数文件的命令码:
然后可以点击Show more information看看参数的具体使用方法。
最后
以上就是激昂服饰为你收集整理的Simulink自定义目标系统文件配置(2)——callback_handler.m文件前言xx_callback_handler.m回调函数的全部内容,希望文章能够帮你解决Simulink自定义目标系统文件配置(2)——callback_handler.m文件前言xx_callback_handler.m回调函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复