从零开始simulink自定义代码生成----自定义目标系统配置(4)
自定义目标系统配置文件之文件处理TLC文件
simulink支持自定义目标系统设置,需要以下几个文件:
1.xx.tlc 系统目标文件 主文件xx名称可自定义
2.xx_callback_handler.m RTW工具箱回调函数
3.xx_make_rtw_hook.m tlc文件调用,该文件后缀为_make_rtw_hook
4.xx_file_process.tlc 文件处理TLC文件
5.xx_srmain.tlc 用来控制主函数文件的生成
今天介绍xx_file_process.tlc文件。这个文件主要是用来控制,自动代码生成过程中,针对不同的情况,在各阶段生成什么样的代码。
该文件在callback_handler.m文件中配置,在Configuration Parameter中的也可以查看。
文件处理TLC文件的使用
回调函数文件中配置如下:
slConfigUISetVal(hDlg, hSrc, ‘ERTCustomFileTemplate’, ‘s12x_file_process.tlc’);%配置用户自定义的模板文件
slConfigUISetEnabled(hDlg, hSrc, ‘ERTCustomFileTemplate’, 0);%设置为不可改变
Configuration Parameter中配置
主要代码
%selectfile NULL_FILE
%%没有选择文件,这个也不用改,应该是格式要求 NULL_FILE表示无输出
%% Uncomment this TLC line to execute the example
%% || ||
%% || ||
%% \/ \/
%if !IsModelReferenceTarget()
%assign ERTCustomFileTest = TLC_TRUE
%%assign表示赋值
%assign CompiledModel.GenerateSampleERTMain = TLC_FALSE
%if EXISTS("ERTCustomFileTest") && ERTCustomFileTest == TLC_TRUE
%%这个条件一定满足 EXISTS表示存在
%% Need to set the template compliance flag before you can use the API
%<LibSetCodeTemplateComplianceLevel(1)>
%%设置模板遵循的等级 不用改
%%如果模型是单速率和单任务模式,那么就调用s12x_srmain.tlc文件中s12xSingleTaskingMain
%%函数来生成主函数文件 ert_main.c ,否则用else中
%if LibIsSingleRateModel() || LibIsSingleTasking()
%include "s12x_srmain.tlc"
%<s12xSingleTaskingMain()>
%else
%include "s12x_mrmain.tlc"
%<s12xFcnMultiTaskingMain()>
%endif
%endif
%endif
%<TgtLibS12XCCP()>
%%调用这个函数 该函数在s12xlib.tlc文件中定义
%<TgtLibS12XCreateS12XMcuHeader()>
%%调用这个函数 该函数在s12xlib.tlc文件中定义
上面的代码是官方给的s12单片机的tlc文件,一般都是用的单任务模式,通过在此文件中调用xx_srmain.tlc文件来生成主函数代码。关于TLC语言可以参考Simulink仿真及代码生成这本书,里面有讲一部分。
总结
该文件中通过调用函数及tlc文件来生成用户自定义的文件和代码。
TLC语言和内嵌的函数需要看的懂和会用,不然看的很费劲。该文件调用了生成主函数代码的tlc文件。
下一次详细介绍xx_srmain.tlc,及主函数文件生成的tlc文件。
欢迎正在学习自定义代码生成的童鞋一起交流~~WX/QQ:953509472
关联文章:
从零开始simulink自定义代码生成----自定义目标系统配置(1)
从零开始simulink自定义代码生成----自定义目标系统配置(2)
从零开始simulink自定义代码生成----自定义目标系统配置(3)