我正在为该目标创建一个Simulink(嵌入式编码器)目标和一些功能驱动程序。在主模板文件(TLC)中,如果模型中至少存在一个驱动程序块,我需要包含一些头文件并调用初始化函数。
例如,如果我的模型使用IO sfunction驱动程序块,在rpp_srmain.tlc
(我的模板文件的名称)中,我需要类似的东西:
%<LibSetSourceFileSection(cFile, "Includes", tmpBuf)>
%openfile tmpBuf
%<IfBlockPresentInModel("gio")>
#include "gio.h"
%<EndIf>
%closefile tmpBuf
(...)
%<LibSetSourceFileSection(cFile, "Declarations", tmpBuf)>
%openfile tmpBuf
void main(void)
{
%<IfBlockPresentInModel("gio")>
gioInit();
%<EndIf>
(...)
}
非常欢迎任何有关如何实现这一目标的帮助。
答案 0 :(得分:0)
假设您的“gio”IO驱动程序块是inlined S-Function(如果您使用Simulink / Embedded Coder通常就是这种情况),您可以在块的TLC中包含块特定代码而不是主TLC
例如,它看起来像这样:
%implements "gio" "C"
%function BlockTypeSetup(block, system) Output
%% include header files
%openfile buffer
#include "gio.h"
%closefile buffer
%<LibCacheIncludes(buffer)>
%endfunction
%function Start(block,system) Output
{
gioInit();
}
%endfunction