1

我正在为该目标创建一个 Simulink(嵌入式编码器)目标和一些功能驱动程序。在主模板文件 (TLC) 中,如果模型中至少存在一个驱动程序块,我需要包含一些头文件并调用初始化函数。

例如,如果我的模型使用 IO 函数驱动程序块,在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>
    (...)
}

非常欢迎任何有关如何完成此任务的帮助。

4

1 回答 1

0

假设您的“gio”IO 驱动程序块是内联的 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
于 2013-06-21T07:07:18.433 回答